While循环不适用于分配给循环外另一个变量的变量[重复]

问题描述 投票:-2回答:1

此问题已经在这里有了答案:

我正在尝试编写要求用户输入数字的代码。如果输入的数字与其他数字匹配(例如,一些已存储的数字),则将打印任何消息。如果不是,则用户应尝试再次输入数字。如果我将“输入”功能放在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循环中使用输入功能(我的作业需要这样做),我该怎么做才能使它工作?

python python-3.x
1个回答
0
投票

问题是您假设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')
© www.soinside.com 2019 - 2024. All rights reserved.