3 回答
TA贡献1801条经验 获得超16个赞
您可以使用以下代码完成它:
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
TA贡献1815条经验 获得超6个赞
如评论中所述,您没有将数据保存在任何地方。我已经使用 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,
TA贡献1864条经验 获得超2个赞
您基本上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 notebook 中测试):
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
希望能帮助到你。
添加回答
举报