3 回答

TA貢獻(xiàn)1803條經(jīng)驗(yàn) 獲得超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貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超8個贊
從功能上來說,這兩種方法應(yīng)該是相同的;我認(rèn)為您提供的任何意見都不會導(dǎo)致他們的行為有所不同。
主要區(qū)別在于技術(shù) #2 涉及代碼重復(fù)(您必須復(fù)制并粘貼輸入語句),這很糟糕,因?yàn)槿绻F(xiàn)在需要更改提示,則需要在兩個位置進(jìn)行更改。
name_in
您可以通過不在循環(huán)之前進(jìn)行初始化來稍微縮短技術(shù) #1 的代碼,因?yàn)樵谘h(huán)體內(nèi)分配它之前從未使用過它。

TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超5個贊
那么你可以使用類似的東西:
name_in = ''
while name_in != "something":
name_in = input('enter name or "something"')
print(n_name)
添加回答
舉報(bào)