此问题已经在这里有了答案:
我正在尝试编写要求用户输入数字的代码。如果输入的数字与其他数字匹配(例如,一些已存储的数字),则将打印任何消息。如果不是,则用户应尝试再次输入数字。如果我将“输入”功能放在while循环的开始并将其分配给变量,则该循环可以完美地工作。现在,如果我在while循环外使用输入函数,而通过使用另一个变量对其进行引用,则当输入的数字与存储的数字不匹配时,我的循环将崩溃并无限打印“请重试”。
a = 3
b = input('enter a digit: ')
while True:
c = b
if a == c:
print('good')
else:
print('please, try again')
如果输入4,程序将无限打印“请再试一次”。
我的问题:1)为什么呢?2)因为不想在while循环中使用输入功能(我的作业需要这样做),我该怎么做才能使它工作?
问题是您假设b包含功能
input('输入数字:')
但实际上它只是包含初始输入调用的输出。因此,您一开始就要求输入一次,然后无限制地检查该输入数字,即使它没有变化。
也输入输出字符串类型,因此即使用户输入3也会进行检查
3 =='3';假
您会想要类似的东西
a = 3
while True:
c = int(input('enter a digit: '))
if a == c:
print('good')
break
else:
print('please, try again')