我正在尝试使其在用户使用while循环和中断功能输入来宾姓名的地方,当循环结束时我希望列表按编号顺序打印出来
但是对可以输入多少个名称没有设置限制
我已经尝试了while true循环,但是当我使用
时print("\nMy Wedding Attendees are: " "\n", extra)
仅打印出我的婚礼参加者是: 但没有名字
print("Now enter the names of other people you are inviting to your wedding\n")
counter = 1
extra = input("Guest's Name(or press Enter to quit): ")
while counter >= 1: #WHILE loop
extra = input("Guest's Name(or press Enter to quit): ")
counter = counter + 1
if extra == "":
break #break Statement
print("\nMy Wedding Attendees are: " "\n", extra)
我希望它看起来像
我的婚礼参加者是: 1.名字 2.名称 3.名称 4.名称
答案 0 :(得分:0)
您可以使用以下代码完成此操作:
counter = 1
extra=[' '] #initializing a random value for extra at the start.
a=[]
while extra != '':
extra = input("Guest's Name(or press Enter to quit): ")
a.append(extra)
counter += 1
print("\nMy Wedding Attendees are: " "\n")
a.pop(-1) #removing the '' from the list, as we do not need it
j=1
for i in range(0,len(a)):
print(str(j)+'. '+a[i])
j+=1
答案 1 :(得分:0)
您基本上在每次循环迭代中都覆盖extra
,这就是为什么不打印名称的原因。建议您在列表中收集所有来宾名称(带有分配的计数器),然后打印出来。例如:
print("Now enter the names of other people you are inviting to your wedding\n")
counter = 0
guest_names = list()
while True:
guest_name = input("Guest's name (or press Enter to quit): ")
if guest_name == "":
break
counter += 1
guest_names.append(str(counter) + ". " + guest_name) # record all names
print("\nMy wedding attendees are:\n" + " ".join(guest_names))
然后将输出(在Jupyter笔记本中测试):
Now enter the names of other people you are inviting to your wedding
Guest's name (or press Enter to quit): John
Guest's name (or press Enter to quit): Marie
Guest's name (or press Enter to quit): Sebbe
Guest's name (or press Enter to quit): David
Guest's name (or press Enter to quit):
My Wedding Attendees are:
1. John 2. Marie 3. Sebbe 4. David
如果要在名称之间使用换行符,则应在join()
中使用换行符:
print("\nMy wedding attendees are:\n" + "\n".join(guest_names))
在这种情况下,输出将是:
My wedding attendees are:
1. John
2. Marie
3. Sebbe
4. David
希望有帮助。
答案 2 :(得分:0)
如注释中所述,您没有将数据保存在任何地方。我使用enumerate编写了代码,这消除了您情况下对count变量的需要。您可以在文档中阅读。代码是
代码
print("Now enter the names of other people you are inviting to your wedding\n")
attendes = [] # Keep names of guest
flag = True # To keep loop control
while flag is True:
name = input("Guest's Name(or press Enter to quit): ")
if name is not "": # If not empty then add to list
attendes.append(name)
else: # stop the loop
flag = False
print("\nMy Wedding Attendees are: " "\n")
# No need for count when using enumerate
for no, name in enumerate(attendes, 1):
print('{}. {}'.format(no, name), end=', ')
# If you don't want the , in output just use end=' '
提供输出
Now enter the names of other people you are inviting to your wedding
Guest's Name(or press Enter to quit): A
Guest's Name(or press Enter to quit): B
Guest's Name(or press Enter to quit): C
Guest's Name(or press Enter to quit): D
Guest's Name(or press Enter to quit):
My Wedding Attendees are:
1. A, 2. B, 3. C, 4. D,