循环并附加名称列表

Tur*_*rbo 3 python for-loop python-3.x

我正在编写一个程序,一直要求用户输入名称,直到输入单词END,此时它会打印出名称列表.

代码:

import getpass
import time
import sys
print("Welcome " + getpass.getuser() + "...")
time.sleep(0.25)
print("This program, powered by Python, it will ask you to enter names...")
time.sleep(0.5)
print("...once you have finished, enter END to print off your list")
names = []
for i in names:
    name = input("Please enter a name: ")
    if name == "END":
        print(names)
        sys.exit()
    names.append(name)
Run Code Online (Sandbox Code Playgroud)

问题是程序在尝试执行for循环之前退出.

为什么会发生这种情况,我该如何解决?

K D*_*awG 10

之所以发生这种情况,是因为变量names是空的,因此无需迭代

所以使用while循环代替:

while True:
    name = input("Please enter a name: ")
    if name == "END":
        print(names)
        break   
    names.append(name)
Run Code Online (Sandbox Code Playgroud)

注意:要退出循环使用break而不是sys.exit()毕竟: 简单比复杂更好