user_input = ''
user_values = []
while True:
if user_input in ['q' ,'Q']:
break
else:
user_input = input('input:')
user_values.append(user_input)
print(user_values)
這段代碼的問題在于,我希望它在我的串列中添加回圈中輸入的所有值,并在用戶輸入 q 或 Q 時中斷,但它以某種方式將 q 添加到串列中,我該如何防止這種情況發生。
uj5u.com熱心網友回復:
if user_input == 'q' and 'Q':
這并沒有做什么,你認為它(一),試試這個來代替:
if user_input in ['q', 'Q']:
更好的方法是按如下方式重構回圈:
while True:
user_input = input('input:')
if user_input in ['q' ,'Q']:
break
user_values.append(user_input)
(a)這是因為求值的方式and,如果第一個子運算式為真,則整體的結果是第二個子運算式。這適用于真正的布林值,但具有為您提供第二個子運算式的值的副作用,而不是保證的真/假值。
例如,在互動式 Python 會話中嘗試以下操作:
>>> 1 == 1 and 'Q'
'Q'
uj5u.com熱心網友回復:
首先,按照@paxdiablo 的回答,并替換if user_input == 'q' and 'Q':為if user_input in ['q', 'Q']:.
然后,移動陳述句user_input之前if,并user_values在else子句中列印:
user_input = ''
user_values = []
x = 0
while x == 0:
user_input = input('input:')
if user_input in ['q', 'Q']:
break
else:
user_values.append(user_input)
print(user_values)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/334327.html
標籤:Python
上一篇:串列python的排列
