运行 while 从用户输入循环然后打印列表

Running while loop from user input and print list after that

我正在学习 Python 和 Whosebug 的使用,所以这就是为什么这个问题对你来说可能微不足道。

所以;代码目标是询问用户名,直到用户按下回车键。在该代码之后应该计算给出了多少个名字,然后打印名字列表。

示例

Enter a name:Jack
Enter a name:Dack
Enter a name:Nack
Enter a name:
Name count 3
Jack, Dack, Nack

我已经为姓名计数创建了 While true 循环,但现在我只能弄清楚如何像上面那样简单地打印这些姓名。

我的代码是:

count_names = 0

while True:
    given_names = input("Enter a name: ")
    
    if given_names == "":
            print(f"Name count {count_names}")
            break

    count_names += 1 

结果是:

Enter a name:Jack
Enter a name:Dack
Enter a name:Nack
Enter a name:
Name count 3

我能感觉到答案就在那里,但我就是摸不着头脑=/

再次感谢您的帮助。

你可以这样做:

count_names = 0
names = []

while True:
    given_names = input("Enter a name: ")
    names.append(given_names)

    
    if given_names == "":
            print(f"Name count {count_names}")
            names.remove('')
            
            break

    count_names += 1

for name in names:
    print(name, end=', ')

这是另一种打印结果的方法

count_names = 0
given_names, result = "abc", ""
while given_names != "":
    given_names = input("Enter a name: ")
    result += f"{given_names}, "
    count_names += 1 
    
print(f"Name count {count_names}")
print(result.rstrip(", "))

就简单性而言,使用列表是最好的主意。我也总是使用 join() 方法用逗号分隔列表元素。

nameList = []

count = 0

while True:
    name = input('Enter a name: ')
    if name:
        nameList.append(name)
        count += 1
    else:
        print(f'Name count: {count}')
        print(', '.join(nameList))
        break

试试下面的代码,它会return如你所愿

    names = '' 
    count_names = 0 
while True:
    given_names = input("Enter a name: ")
    if given_names == "":
        print(f"Name count {count_names}")
        print(names[:-1])
        break
    names += given_names + ','
    count_names += 1