我想限制python 2.7中列表的大小我一直在尝试用while循环来做,但它不起作用
l=[]
i=raw_input()//this is the size of the list
count=0
while count<i:
l.append(raw_input())
count=count+1
问题是它没有完成循环。我认为这个问题有一个简单的答案,但我找不到。提前致谢
我想限制python 2.7中列表的大小我一直在尝试用while循环来做,但它不起作用
l=[]
i=raw_input()//this is the size of the list
count=0
while count<i:
l.append(raw_input())
count=count+1
问题是它没有完成循环。我认为这个问题有一个简单的答案,但我找不到。提前致谢
我认为问题出在这里:
i=raw_input()//this is the size of the list
raw_input()
返回一个字符串,而不是整数,因此 和 之间的比较i
没有count
意义。[在 Python 3 中,您会收到错误消息TypeError: unorderable types: int() < str()
,这会使事情变得清楚。] 如果您转换i
为 int,但是:
i = int(raw_input())
它应该做你所期望的。(我们将忽略错误处理等,并可能在需要时转换您添加的内容l
。)
请注意,编写类似的东西会更像 Pythonic
for term_i in range(num_terms):
s = raw_input()
l.append(s)
大多数情况下,您不需要通过“+1”手动跟踪索引,因此如果您发现自己这样做,可能会有更好的方法。
那是因为 i 有一个字符串值类型,并且 int < "string" 总是返回 true。
你想要的是:
l=[]
i=raw_input() #this is the size of the list
count=0
while count<int(i): #Cast to int
l.append(raw_input())
count=count+1
您应该尝试将代码更改为:
l = []
i = input() //this is the size of the list
count = 0
while count < i:
l.append(raw_input())
count+=1
raw_input() 返回一个字符串,而 input() 返回一个整数。也是count+=1
比count = count + 1
. 祝你好运