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
。幸運を