Python:下面的兩個代碼示例都使用 while 循環來允許多個輸入。到目前為止,兩者都為我工作。未來,什么情況會導致一種技術相對于另一種技術失???print( "Technique #1 - *while True:*")name_in = ''while True:??? ? name_in = input('enter name or "done"')? ? if name_in=='done': break? ? print(name_in) #do some taskprint( " Technique #2 - *while expression:*")name_in = input('enter name or "done"')? # first timewhile name_in != 'done':?? ? print(name_in) #do some task? ? name_in = input('enter name or "done"') #subsequents?
3 回答

繁星點點滴滴
TA貢獻1803條經驗 獲得超3個贊
Python 3.8 引入了walrus operator :=
# Loop-and-a-half (see https://www.python.org/dev/peps/pep-0572/#capturing-condition-values)
while (name_in := input('enter name or "done"')) != "done":
print(name_in)
這不是一個美女嗎?

有只小跳蛙
TA貢獻1824條經驗 獲得超8個贊
從功能上來說,這兩種方法應該是相同的;我認為您提供的任何意見都不會導致他們的行為有所不同。
主要區別在于技術 #2 涉及代碼重復(您必須復制并粘貼輸入語句),這很糟糕,因為如果您現在需要更改提示,則需要在兩個位置進行更改。
name_in
您可以通過不在循環之前進行初始化來稍微縮短技術 #1 的代碼,因為在循環體內分配它之前從未使用過它。

月關寶盒
TA貢獻1772條經驗 獲得超5個贊
那么你可以使用類似的東西:
name_in = ''
while name_in != "something":
name_in = input('enter name or "something"')
print(n_name)
添加回答
舉報
0/150
提交
取消