我正在为我的编程类简介编写一个程序。要求是让用户输入名人姓名列表,将他们添加到列表中,打印输入了多少名人,然后打印输入的名人列表。我必须使用一个循环,所以我使用了一个while循环;但是,当用户将Done
输入到名称输入字段时,我无法结束。
下面是代码,我尝试使用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()
答案 0 :(得分:5)
在if / else中的语句中将double equals更改为单个equals。您需要再次为'分配一个值,但是双等于仅仅是比较。
或者,您可以查看“休息”的使用情况。声明。
答案 1 :(得分:1)
使用==
进行比较,使用=
进行分配。这应该可以解决问题。
答案 2 :(得分:1)
避免添加'完成'到列表中,跳到下一个迭代:
while again == 'y':
name = input('Enter a name: ')
if name == 'Done':
again = 'n'
continue
else:
again = 'y'
celebs.append(name)
可以简化为:
while again == 'y':
name = input('Enter a name: ')
if name == 'Done':
again = 'n'
continue
celebs.append(name)
最好在这里使用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)
答案 3 :(得分:0)
如果名字=="完成",你应该这样做:
again = 'n' # not again == 'n'
(类似于再次设置=' y',虽然我认为该行是不必要的,因为再次已经等于' y'。)
答案 4 :(得分:0)
您的代码中有比较运算符而不是赋值。
将again == 'n'
更改为again = 'n'
和
again == 'y'
至again = 'y'