为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

拉丁的传说 2023-12-26 15:34:21
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)

这不是一个美女吗?


查看完整回答
反对 回复 2023-12-26
?
有只小跳蛙

TA贡献1824条经验 获得超8个赞

从功能上来说,这两种方法应该是相同的;我认为您提供的任何意见都不会导致他们的行为有所不同。

主要区别在于技术 #2 涉及代码重复(您必须复制并粘贴输入语句),这很糟糕,因为如果您现在需要更改提示,则需要在两个位置进行更改。

name_in您可以通过不在循环之前进行初始化来稍微缩短技术 #1 的代码,因为在循环体内分配它之前从未使用过它。


查看完整回答
反对 回复 2023-12-26
?
月关宝盒

TA贡献1772条经验 获得超5个赞

那么你可以使用类似的东西:


name_in = ''

while name_in != "something":

    name_in = input('enter name or "something"')

print(n_name)


查看完整回答
反对 回复 2023-12-26
  • 3 回答
  • 0 关注
  • 57 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信