我是新來的python編程,我正在做一些實驗。希望我的問題不是太愚蠢:我正在編寫一個小程序,它將輸入添加到列表中,並在輸入等於4時使用while循環打印它。問題是它永遠不會停止添加輸入並打印列表。 我的代碼是:將用戶輸入附加到循環中的列表
S=input()
L=[]
while S!=4:
L.append(S)
if S==4:
break
print(L)
我是新來的python編程,我正在做一些實驗。希望我的問題不是太愚蠢:我正在編寫一個小程序,它將輸入添加到列表中,並在輸入等於4時使用while循環打印它。問題是它永遠不會停止添加輸入並打印列表。 我的代碼是:將用戶輸入附加到循環中的列表
S=input()
L=[]
while S!=4:
L.append(S)
if S==4:
break
print(L)
這將考慮'4'
作爲一個字符串作爲平等將舉行您已經創建了您的代碼無限循環。進入循環後,您不會改變S的值。你應該從循環中,像這樣添加得到另一個輸入:
S=input()
L=[]
while S!=4:
L.append(S)
S = input()
print(L)
此外,如果你的代碼的條件是無用的,因爲它是在while循環聲明
定義inp
不同的值小於4,並保持通話input()
一個循環中。
inp = 0
lst = []
while inp != 4:
try:
inp = int(input()) # raw_input on python2
lst.append(inp)
except ValueError:
pass
print(lst)
更常見的成語是提供一種拆分空格隔開的整數,並轉換爲整數:
lst = list(map(int, input().split())) # omit list() on python2
1 2 3 4 5
print(lst)
[1, 2, 3, 4, 5]
也許也是一個'嘗試 - 除了'塊轉換爲'int()'?.. –
@ Ev.Kounis當然,爲什麼不。好建議。 –
的問題是,因爲你一次例如讀取輸入S = 1
,後那S
永遠是1所以S
永遠不會是4,你的循環永不彎腰,你必須添加你的輸入到while
:
list = []
number = -1
while number != 4:
number = int(input())
list.append(number)
print(list)
如果你檢查S!= 4 while
你不t need
if statement in
while`。
input()函數返回字符串對象,所以它們永遠不可能等於4,它是一個int對象。
要解決問題,請用替換4
。
,當你進入4輸入
已經設置有一個很大的問題與您的代碼,你再也不會更新S上更正確的答案應該是:
S=input()
L=[]
while S!=4:
L.append(S)
if S=="4":
break
S = input()
print(L)
如果你不想要的一切阻塞以等待新的輸入,那麼你可以考慮扔在線程,但如果它只是允許用戶將值添加到數組並停止這樣做通過添加4可以幫助
如果您希望數組包含int,那麼這與int cast是offcourse,創建者 –
沒有具體提及謝謝!!!!!! – Franz
輸入始終爲'string'類型。當你輸入'4'時,你不會在列表中添加'4',而是會添加'4'。你必須先將它轉換爲int。像'int(input())' –
您正在使用哪個版本的Python? –
我正在使用python 3.6 – Franz