3 回答
TA貢獻(xiàn)1803條經(jīng)驗(yàn) 獲得超3個(gè)贊
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)
這不是一個(gè)美女嗎?
TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超8個(gè)贊
從功能上來(lái)說(shuō),這兩種方法應(yīng)該是相同的;我認(rèn)為您提供的任何意見都不會(huì)導(dǎo)致他們的行為有所不同。
主要區(qū)別在于技術(shù) #2 涉及代碼重復(fù)(您必須復(fù)制并粘貼輸入語(yǔ)句),這很糟糕,因?yàn)槿绻F(xiàn)在需要更改提示,則需要在兩個(gè)位置進(jìn)行更改。
name_in您可以通過(guò)不在循環(huán)之前進(jìn)行初始化來(lái)稍微縮短技術(shù) #1 的代碼,因?yàn)樵谘h(huán)體內(nèi)分配它之前從未使用過(guò)它。
TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超5個(gè)贊
那么你可以使用類似的東西:
name_in = ''
while name_in != "something":
name_in = input('enter name or "something"')
print(n_name)
添加回答
舉報(bào)
