我想打印所有的數字,直到給定的用戶輸入使用while循環。例如:輸入:5 ==> 1 2 3 4 5但下面的程序永遠循環。python字符串和整數比較
user = str(input("Enter : "))
i = 1
while i < user:
print(i)
i = i + 1
我想打印所有的數字,直到給定的用戶輸入使用while循環。例如:輸入:5 ==> 1 2 3 4 5但下面的程序永遠循環。python字符串和整數比較
user = str(input("Enter : "))
i = 1
while i < user:
print(i)
i = i + 1
ummm while i < int(user):
?
試試這個:
try:
user = int(raw_input('Enter: ')) # Cannot compare a string with an integer.
except ValueError:
print('Input should be an integer!')
i = 1
while True:
i += 1
if i > user:
break
print(i)
注:在你的代碼,即使我們明確聲明input
爲整數它仍然沒有完全工作,你希望它的方式。這是因爲在您的代碼中,while
循環一旦停止,即i
等於user
(條件是,而小於...,因此不會打印出最終值user
。因此,我對其進行了修改,使其在點i
大於user
更大,這意味着最後打印值將等於user
實施例前面的輸出,其中user = 5
:
1
2
3
4
,並用新的代碼:
然而1
2
3
4
5
這是更好地在這裏使用一個for
循環,如果你不使用while
循環設置:
for i in range(1, user+1):
print(i)
你是比較一個int的STR,這就是爲什麼你得到一個無限循環。你應該比較同類型的變量
user = int(input("Enter: "))
應該工作
.7輸入爲你提供了一個評估版本的字符串(在這種情況下是一個int ...),,,我猜測OP有一些理由把它轉換成一個字符串......(儘管不知道可能是什麼) –
倒不如做'用戶= INT(輸入( 「輸入:」))'代替 – lejlot
@lejlot:在Python 2 ,使用'int(raw_input(「Enter:」))'代替。 'input()'已經在輸入中調用了'eval()',所以在任何情況下它都會返回一個只包含數字的輸入的整數。 –
我只是提到這樣一個事實,即將用戶轉換爲int一次比在循環中更好。 – lejlot