使我的While循环以“Done”的输入终止

2024-05-18 23:31:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在为我的编程课程简介编写一个程序。要求是让用户输入名人名单,将他们添加到名单中,打印出输入的名人数量,然后打印出输入的名人名单。我必须使用一个循环,所以我使用了while循环;但是当用户将Done输入到names输入字段时,我不能使它结束。在

下面是代码,以及我尝试使用if-else语句控制循环。在

def main():
    celebs = []

    again = 'y'

    while again == 'y':
        name = input('Enter a name: ')
        if name == 'Done':
            again == 'n'
        else:
            again == 'y'


        celebs.append(name)



    print('You entered ',len(celebs), 'celebrities to the list')
    print('   ')
    print('The ',len(celebs),'celebrities you entered were: ')

    for name in celebs:
        print(name)
main()

Tags: 用户namelenifmain名人elseprint
3条回答

使用==进行比较,=用于分配。这应该能解决问题。在

在if/else中的语句中将double equals更改为单个equals。你需要给'again'赋值,但是double equals只是比较而已。在

或者,您可以查找“break”语句的用法。在

若要避免将“完成”添加到列表中,请跳到下一个迭代:

while again == 'y':
    name = input('Enter a name: ')
    if name == 'Done':
        again = 'n'
        continue
    else:
        again = 'y'
    celebs.append(name)

可以简化为:

^{pr2}$

最好在此处使用bool值:

again = True
while again:
    name = input('Enter a name: ')
    if name == 'Done':
        again = False
        continue
    celebs.append(name)

也可以使用break

while True:
    name = input('Enter a name: ')
    if name.strip() == 'Done':
        break
    celebs.append(name)

相关问题 更多 >

    热门问题