python:while循环不检查条件
这是我的密码:python:while循环不检查条件,python,Python,这是我的密码: l=raw_input() x=l.split(' ') n=x[0] w=x[1] l=raw_input() i=0 print n while(i<n): print "1 %d" %i i=i+1 它给出了一个运行时错误 虽然n被分配为6,并且i从0开始,但是为什么当i=6时不结束呢?i的值增加了超过n直到无穷大。n是一个字符串raw_input()返回字符串,并在空格上拆分i是一个整数。Python在比较时不强制字符串为整数,并且总是将数字排序在
l=raw_input()
x=l.split(' ')
n=x[0]
w=x[1]
l=raw_input()
i=0
print n
while(i<n):
print "1 %d" %i
i=i+1
它给出了一个运行时错误
虽然
n
被分配为6,并且i
从0开始,但是为什么当i=6时不结束呢?i
的值增加了超过n
直到无穷大。n
是一个字符串raw_input()
返回字符串,并在空格上拆分i
是一个整数。Python在比较时不强制字符串为整数,并且总是将数字排序在字符串之前,因此打印n
6.
>>>类型(n)
>>>打印1n
是一个字符串,不应与数字进行比较。发生的情况是split()
函数返回一个字符串,并且在您的条件下
while(i < n):
注意:另外,请记住
raw_input()
将返回字符串。n
和w
是字符串。使用int
将它们转换为整数,很有可能会很好。您必须记住,在Python中,一切都是一个对象。所以字符串不仅仅是一个字符数组,它还是一个对象。Python也是强类型的,因此(通常)必须对所有内容进行类型转换,才能将其视为所需的对象类型。可能是输入错误,但该比较(int
)将始终返回True
@TyrantWave edited。谢谢,非英语母语人士:)
>>> 6 < '6'
True
n = int(x[0])
>>> print n
6
>>> type(n)
<type 'str'>
>>> print 1 < n
True
>>> print 100 < n
True
while(i < n):
n = int(x[0])