为了账号安全,请及时绑定邮箱和手机立即绑定

使用计数器的 While 循环

使用计数器的 While 循环

RISEBY 2022-05-24 17:14:42
我试图让它在用户使用while循环和break函数输入客人姓名的地方,当循环结束时,我希望列表以编号顺序打印出来詹姆士卡尔丽莎布莱恩但是可以输入多少个名字没有限制我已经尝试过 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 = 1extra = 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 Statementprint("\nMy Wedding Attendees are: "  "\n", extra)我希望它看起来像我的婚礼参加者是: 1. 姓名 2. 姓名 3. 姓名 4. 姓名
查看完整描述

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


查看完整回答
反对 回复 2022-05-24
?
红糖糍粑

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,


查看完整回答
反对 回复 2022-05-24
?
慕斯王

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

希望能帮助到你。


查看完整回答
反对 回复 2022-05-24
  • 3 回答
  • 0 关注
  • 126 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信