Пит, ты не нужен рекурсию в этом случае, а лишь петлю.
Предлагаю вам поместить основную часть логики этой программы (часть, которая задает проблему с множественностью и проверит ваш ответ), в функцию. Скажите одну проблему(). Эта функция может вернуть 0, если вы ответили неправильно, 1, если вы ответили правильно, и -1, если вы ввели какой-то ключ, указывающий, что вы хотите остановить. (BTW, эта функция вводится, чтобы помочь вам структурировать программу, сделать ее более понятной, но она не нужна для введения цикла, вы можете сохранить все это внутри цикла. Кроме того, вы должны знать, что существуют другие конструкции цикла в питона, для exampe в то время как петли)
Тогда вам просто необходимо в главном разделе что-то подобное:.
GoodReplyCtr = 0
for i in range(0, 10): # or 100 or 1000 if you feel ambitious...
cc = OneProblem()
if cc < 0:
break
GoodReplyCtr += cc
print(GoodReplyCtr)
понятие рекурсии (опять-таки здесь не нужна), то, когда вызовы функций сам. Это обычная практика при навигации по графикам (например, структура каталогов на вашем диске C :) или с некоторыми математическими проблемами. Обычно нам не нужно освещать рекурсию на ранних этапах изучения концепций компьютерных языков, но как только вы хорошо овладеете вещами, вы можете найти ее весьма полезной (и сложной во времени ;-))
Храните у нее! Математика и питон классные.
Edit: Последний трюк:
Вы можете обнаружить, что вы должны работать на некоторых умножения таблиц больше, чем другие. Вместо использования randint вы можете использовать метод random.choice() случайного метода для поддержки некоторых чисел или для устранения других. например
import random
X = random.choice((2, 3, 4, 6, 7, 8, 9, 7, 9)) # see, no 0, 1,or 5 but more chance to get 7 or 9
Вы на самом деле не говорить о рекурсии, где результат операции зависит от повторения операции с, предполагается, что другой вход. Факториалы определяются рекурсивно (где n! = N * (n-1)!). –
Фактически факториалы - один очень плохой пример для рекурсии, поскольку они более эффективны как петля. – freiksenet
Факториалы - это классический пример рекурсии, даже если они более эффективно реализованы как циклы. –