我想在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
事情是它没有完成循环。我认为这个问题有一个简单的答案,但我找不到。 提前致谢
答案 0 :(得分:2)
我认为问题在于:
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
。)
请注意,编写类似
的内容会更像Pythonicfor term_i in range(num_terms):
s = raw_input()
l.append(s)
大多数情况下,您不需要手动跟踪指数“+1”,所以如果您发现自己这样做,可能会有更好的方法。
答案 1 :(得分:1)
那是因为我有一个字符串值类型,而int&lt; “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
答案 2 :(得分:0)
您应该尝试将代码更改为:
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
更好。祝你好运