#input #while-loop #undefined
#ввод #во время цикла #не определено
Вопрос:
Я пытаюсь выполнить определяющий оператор с помощью цикла ввода. если ввод находится за пределами оператора, моя единственная проблема заключается в том, что он повторяет ввод дважды, что довольно странно. при вводе только внутри цикла while это выдает ошибку amt not defined .
def Loan_Amount(amt):
while True:
amt = int(input("Please put in the loan amount you would like to take out: "))
if amt < 500:
print("Sorry, we don't offer loans below 500 dollars")
continue
elif amt >= 500:
break
print(Loan_Amount(amt))
Другой способ, который выглядит странно
amt = int(input('Please put in the loan amount you would like to take out: '))
def Loan_Amount(amt):
while True:
amt = int(input("Please put in the loan amount you would like to take out: "))
if amt < 500:
print("Sorry, we don't offer loans below 500 dollars")
continue
elif amt >= 500:
break
print(Loan_Amount(amt))
Ответ №1:
Хорошо, я оставляю это на случай, если кто-нибудь еще столкнется с этой проблемой, но, просмотрев документацию, я понял это.
def Loan_Amount(prompt)
While True:
global amt
amt = int(input(prompt))
if amt < 500:
print("Sorry, we don't offer loans below 500 dollars")
continue
else:
break
Loan_Amount('Please put in the loan amount you would like to take out: ')
print(amt)
Я не уверен на 100 процентов, правильно ли я это объясню, поэтому примите мою интерпретацию свободно. По сути, вместо того, чтобы иметь amt внутри круглой скобки, как такой def Loan_Amount(amt), в результате чего он становится одновременно параметром и глобальной переменной, вместо этого он запрашивается, и вместо ввода ввода внутри цикла он вводится при вызове оператора. там есть глобальная часть amt, я почти уверен, поэтому, когда amt присваивается число, оно сделает amt глобальной переменной вместо того, чтобы сохранять ее локальной внутри цикла, чтобы вы могли распечатать ее вне цикла, и она по-прежнему остается определенной переменной. Надеюсь, это поможет всем, кто так же потерян, как и я!