Python while 循环获取多个输入。两种技术 - 失败的情况?

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 task



print( " Technique #2 - *while expression:*")

name_in = input('enter name or "done"')  # first time

while name_in != 'done': 

    print(name_in) #do some task

    name_in = input('enter name or "done"') #subsequents 


拉丁的传说
浏览 110回答 3
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)这不是一个美女吗?

有只小跳蛙

从功能上来说,这两种方法应该是相同的;我认为您提供的任何意见都不会导致他们的行为有所不同。主要区别在于技术 #2 涉及代码重复(您必须复制并粘贴输入语句),这很糟糕,因为如果您现在需要更改提示,则需要在两个位置进行更改。name_in您可以通过不在循环之前进行初始化来稍微缩短技术 #1 的代码,因为在循环体内分配它之前从未使用过它。

月关宝盒

那么你可以使用类似的东西:name_in = ''while name_in != "something":    name_in = input('enter name or "something"')print(n_name)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python