Я пытаюсь написать программу, предлагающую пользователям ввести положительное целое число и рассчитать факторный.Попытка рассчитать факторный, но у меня есть ошибка типа [python]
Это то, что я сделал
def main():
getN()
fact()
print (n,"! is ",num)
def fact():
num=1
while n>=1:
num=num*n
n=n-1
return num
def getN():
n=input("Enter a positive integer: ")
if not n%1==0:
print("Enter a positive integer: ")
return n
main()
Но когда я запускаю этот код, я получил сообщение об ошибке сказав тип ошибку: не все аргументы преобразуются во строке форматирования.
Мне нужно получить целое число postivie и вы хотите использовать функцию getN, чтобы гарантировать, что это положительный результат.
Пожалуйста, помогите мне.
Заранее спасибо.
Какая часть кода действительно относится ошибка к? –
1) См. [Здесь] (http://stackoverflow.com/questions/23294658/asking-the-user-for-input-until-they-give-a-valid-response) о том, как получить подтвержденный ввод пользователя. 2) Переменные, определенные в функции, не видны вне функции. Как упоминает Ослик Конг, вы должны передавать 'num' в' fact', и вам нужно сохранить значения, возвращаемые вашими функциями, в переменные. –