1. Примеры по математике для 2-го класса.
Условие:
Программа должна запросить порядок цифр (2 или 3 цифры) для генерации листа примеров по математике для второго класса и вывести результат в текстовый файл, который уже будет готов для печати.
Пример для 2 цифр:
24 + 69 = 47 + 46 = 41 - 9 = 69 - 39 = 89 - 76 = 68 - 10 =
88 - 85 = 87 - 9 = 58 - 2 = 71 + 29 = 18 + 29 = 52 + 92 =
...
...
Пример для 3 цифр:
859 - 531 = 595 + 767 = 827 + 7 = 394 + 255 = 761 - 231 = 55 + 270 =
770 - 705 = 933 - 634 = 842 - 827 = 812 - 203 = 996 - 45 = 621 - 84 =
...
...
Код:
import random
def my_def(digit):
if digit == 2:
sign = random.randint(1, 2) # генерация знака
sign = "+" if sign == 1 else "-"
a = random.randint(1, 99) # генерация числа
b = random.randint(1, 99)
if sign == "-":
result = f"{max(a, b)} {sign} {min(a, b)} = "
else:
result = f"{a} {sign} {b} = "
elif digit == 3:
sign = random.randint(1, 2) # генерация знака
sign = "+" if sign == 1 else "-"
a = random.randint(1, 999) # генерация числа
b = random.randint(1, 999)
if sign == "-":
result = f"{max(a, b)} {sign} {min(a, b)} = "
else:
result = f"{a} {sign} {b} = "
return result
# ввод данных
while True:
try:
digit = input("%100s" % "Введите порядок числа (2 или 3): ")
print()
digit = int(digit)
except:
print("%99s" % "Вы ввели не цифры.")
print()
else:
if 2 <= digit <= 3:
break
else:
print("%99s" % "Вы ввели не тот порядок.")
print()
continue
buf = open("./6.001.task.txt", "w")
for a in range(55): # количество строк на листе
for b in range(6): # количество столбцов
s = "%15s" % my_def(digit)
buf.write(s) # дописываем строку с каждой новой итерацией в цикле
s = "\n" # с окончанием вложенного цикла, заканчивается и строка примеров, переходим на новую строку
buf.write(s) # здесь происходит запись по-строчно
buf.close()