Я не уверен, правильно ли я понял проверьте, но, похоже, это не имеет отношения к логике моей программы. Может ли кто-нибудь помочь разъяснить, почему выполняется эта проверка и как я могу ее исправить?
Буду очень признателен за любую помощь!
это моя код
Код: Выделить всё
import random
import sys
levels = {'1','2','3'}
random.seed(0)
def main():
level = get_level()
numbers = generate_integer(level)
score = 0
for i in range(10):
lifes = 3
x = random.choice(numbers)
y = random.choice(numbers)
calculation = (f"{x} + {y} = ")
while lifes > 0:
answer = (input(calculation))
if answer.isalpha() or int(answer) != (x + y):
print("EEE")
lifes -= 1
else:
score = score + 1
break
if lifes == 0:
print(f"{x} + {y} = {x + y}")
sys.exit(f"Score: {score}")
def get_level():
output = input("Level: ")
while output not in levels:
output = input('Level: ')
return int(output)
def generate_integer(level):
# 0-9, 10-99, 100-999
if level == 1:
numbers = range(0, 9)
elif level == 2:
numbers = range(10, 99)
elif level == 3:
numbers = range(100, 999)
return numbers
if __name__ == "__main__":
main()
"В файле профессора.py реализуйте программу, которая:
Запрашивает у пользователя уровень.
- Если пользователь не вводит 1, 2 или 3, программа должна запросить еще раз.
- Случайным образом генерирует десять (10) математических задач в формате X + Y = , где каждый из X и Y представляет собой неотрицательное целое число с цифрами. Нет необходимости поддерживать другие операции, кроме сложения (+).
- Предлагает пользователю решить каждую из этих задач. Если ответ неверен (или даже не число), программа должна вывести EEE и снова запросить у пользователя, позволяя пользователю в общей сложности сделать до трех попыток для решения этой проблемы. Если после трех попыток пользователь все еще не ответил правильно. программа должна выдать правильный ответ.
- В конечном итоге программа должна выводить оценку пользователя: количество правильных ответов из 10.
Программа ожидает три попытки на каждый вопрос, но предоставление неправильного ответа и предоставление только 10 входных данных всегда приводит к ожиданию выхода. Это создает противоречие в логике программы.
Подробнее здесь: https://stackoverflow.com/questions/793 ... blem-set-4
Мобильная версия