Python 为什么这是一个无限循环 a=原始输入(“输入数字”) i=0 数字=[] 而我
所以我在跟踪lpthw,只是在搞乱代码,为什么我使用原始输入并输入一个像6这样的数字,这个循环会变成一个无限循环?i=i+1是否应该阻止这种情况发生?raw\u输入返回一个字符串。变量a是字符串,在python中字符串大于整数。Python 为什么这是一个无限循环 a=原始输入(“输入数字”) i=0 数字=[] 而我,python,python-2.7,Python,Python 2.7,所以我在跟踪lpthw,只是在搞乱代码,为什么我使用原始输入并输入一个像6这样的数字,这个循环会变成一个无限循环?i=i+1是否应该阻止这种情况发生?raw\u输入返回一个字符串。变量a是字符串,在python中字符串大于整数。 您需要将a转换为int: a = raw_input ("enter a number") i = 0 numbers = [] while i < a: print "At the top i is %d" % i numbers.append
您需要将a转换为int:
a = raw_input ("enter a number")
i = 0
numbers = []
while i < a:
print "At the top i is %d" % i
numbers.append(i)
i = i + 1
print "Numbers now:", numbers
print "At the bottom i is %d" % i
print "The numbers: "
for num in numbers:
print num
原始输入返回一个字符串。变量a是字符串,在python中字符串大于整数。
您需要将a转换为int:
a = raw_input ("enter a number")
i = 0
numbers = []
while i < a:
print "At the top i is %d" % i
numbers.append(i)
i = i + 1
print "Numbers now:", numbers
print "At the bottom i is %d" % i
print "The numbers: "
for num in numbers:
print num
在Python2.7中,
raw_input
返回一个str
(字符串)。因此,当你比较i
时,你是在比较一个整数和一个字符串,它会
要解决此问题,请将输入转换为整数:
a = int(raw_input("enter a number"))
注意:正如@AshwiniChaudhary评论的那样,在Python 3.x中比较(与=
)一个整数和一个字符串将引发一个异常:
a = int(raw_input(...))
TypeError:无序类型:int()str()
在Python2.7中,raw_input
返回一个str
(字符串)。因此,当你比较i
时,你是在比较一个整数和一个字符串,它会
要解决此问题,请将输入转换为整数:
a = int(raw_input("enter a number"))
注意:正如@AshwiniChaudhary评论的那样,在Python 3.x中比较(与=
)一个整数和一个字符串将引发一个异常:
a = int(raw_input(...))
TypeError:无序类型:int()str()
如果使用原始输入
,则a
将是一个字符串。您需要一个int
,以便i
比较按预期工作。使用input
代替raw\u input
作为将来的参考,Python3中删除了
input
,并将raw\u input
重命名为input
,因此在Py3中需要int(input(…)
。如果使用raw\u input
,那么a
将是一个字符串。您需要一个int
,以便i
比较按预期工作。使用input
代替raw\u input
作为将来的参考,Python3中删除了
input
,并将raw\u input
重命名为input
,因此您需要在Py3中使用int(input(…)
。您正在做两件事,这会导致无限循环
a=int(原始输入(“输入一个数字”)您正在做两件事,这两件事可能导致无限循环
a=int(原始输入(“输入一个数字”)因为在Python2中整数总是小于字符串。我错认为这是答案,但你混合了制表符和空格。这很糟糕。我不知道它为什么会跑;也许这只是复制/粘贴到SO时的一个问题,但请确保只使用空格。顺便说一句,修复缩进。。。这样,代码甚至不会编译。
i=i+1
是否在while循环中?请修正你的缩进。最好将其写成i+=1
。因为在Python 2中,整数总是小于字符串。我错认为这是答案,但您将制表符和空格混合在一起。这很糟糕。我不知道它为什么会跑;也许这只是复制/粘贴到SO时的一个问题,但请确保只使用空格。顺便说一句,修复缩进。。。这样,代码甚至不会编译。i=i+1
是否在while循环中?请修正你的缩进。最好将其写成i+=1
。还要提到这样的比较在Python3中会产生错误的事实。还要提到这样的比较在Python3中会产生错误的事实。