2013-06-30 113 views
4

只是想編寫一個程序,將採取用戶輸入,並將其添加到列表「數字」:如何使用的raw_input()與while循環

print "Going to test my knowledge here" 
print "Enter a number between 1 and 20:" 

i = raw_input('>> ') 
numbers = [] 

while 1 <= i <= 20 : 
    print "Ok adding %d to numbers set: " % i 
    numbers.append(i) 

    print "Okay the numbers set is now: " , numbers 

然而,當我執行程序,只運行到raw_input()

Going to test my knowledge here 
Enter a number between 1 and 20: 
>>> 4 

是否有我在這裏失蹤的一些基本規則?

回答

7

raw_input返回一個字符串,而不是一個整數:

所以,

>>> 1 <= "4" <= 20 
False 

使用int()

i = int(raw_input('>> ')) 

使用剛剛if,如果你只考慮從用戶的單一輸入:

if 1 <= i <= 20 : 
    print "Ok adding %d to numbers set: " % i 
    numbers.append(i) 

    print "Okay the numbers set is now: " , numbers 

使用while多輸入:

i = int(raw_input('>> ')) 
numbers = [] 

while 1 <= i <= 20 : 
    print "Ok adding %d to numbers set: " % i 
    numbers.append(i) 
    i = int(raw_input('>> '))     #asks for input again 
print "Okay the numbers set is now: " , numbers 
2

爲了增加阿什維尼的答案,你會發現,會的raw_input只運行一次。如果要繼續提示用戶,請將raw_input放入while循環中:

print "Going to test my knowledge here" 
print "Enter a number between 1 and 20:" 

numbers = [] 
i = 1 
while 1 <= i <= 20 : 
    i = int(raw_input('>> ')) 
    print "Ok adding %d to numbers set: " % i 
    numbers.append(i) 

    print "Okay the numbers set is now: " , numbers