The*_*tor 2 python while-loop python-3.x
如果用户键入'end',则应该打印列表,并且'end'不应该添加到列表中while name != "end":,因为它是.
name = "";
names = []
while name != "end":
name = input("Please enter a name")
names.append(name)
print("hi")
print(names)
Run Code Online (Sandbox Code Playgroud)
如果我输入鲍勃,吉姆,结束,列表应该是['Bob', 'Jim'],但它是['Bob', 'Jim', 'end']
当然,因为你在输入名字后立即追加
喜欢在中间进行测试的无限循环(这样做可以节省双重测试/双重input调用):
while True:
name = input("Please enter a name")
if name == "end":
break
names.append(name)
Run Code Online (Sandbox Code Playgroud)
对于一线成瘾者,你可以itertools.takewhile和itertools.repeat,但是当你不习惯时,这更难以理解,但有趣的是:
import itertools
names = list(itertools.takewhile(lambda x : x != "end",(input("Please enter a name") for _ in itertools.repeat(None))))
Run Code Online (Sandbox Code Playgroud)
或者更好更简单,感谢评论:
names = list(iter(lambda:input("Please enter a name"), 'end'))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
46 次 |
| 最近记录: |