【问题标题】:Running while loop from user input and print list after that之后从用户输入和打印列表运行while循环
【发布时间】:2021-09-29 16:48:52
【问题描述】:

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

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

例子

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

我能感觉到答案就在那里,但我就是不能指望它=/

再次感谢您的帮助。

【问题讨论】:

  • 您需要将名称存储在列表中,然后打印该列表
  • 有什么问题?你只是没有得到名单。对吗?
  • 这能回答你的问题吗? Accepting input till newline in python

标签: python while-loop


【解决方案1】:

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

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(", "))

【讨论】:

  • 这给出了正确格式的答案。只需更改需要做的设置 count_names = -1 因此不计算输入并将 \n 从第一次打印中删除,因此之间没有空行。谢谢队友!
【解决方案2】:

你可以这样做:

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=', ')

【讨论】:

    【解决方案3】:

    就简单而言,使用列表是最好的主意。我也总是使用 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
    

    【讨论】:

      【解决方案4】:

      试试下面的代码,它会如你所愿地返回

          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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-02-12
        • 1970-01-01
        • 1970-01-01
        • 2014-08-12
        • 1970-01-01
        • 2013-11-16
        • 2020-02-15
        • 1970-01-01
        相关资源
        最近更新 更多