【问题标题】:How do I remove a trailing comma from a while loop?如何从 while 循环中删除尾随逗号?
【发布时间】:2020-11-02 00:38:19
【问题描述】:

我正在尝试为一个有 50 个数字的类编写代码,每个数字以 10 个为一组,用逗号分隔每个数字,但在行尾没有逗号。 目前从我的代码中,我得到了下面第一个块的输出,但我需要它在 19、39、59、79 和 99 之后没有逗号。有人可以帮我吗?这是蟒蛇。

1, 3, 5, 7, 9, 11, 13, 15, 17, 19,
21, 23, 25, 27, 29, 31, 33, 35, 37, 39,
41, 43, 45, 47, 49, 51, 53, 55, 57, 59,
61, 63, 65, 67, 69, 71, 73, 75, 77, 79,
81, 83, 85, 87, 89, 91, 93, 95, 97, 99,
num=1
while num < 100:
  num2 = 10
  while num2 > 0:
    print(num, end=", ")
    num2 = num2 - 1
    num = num + 2
  print () 

【问题讨论】:

  • 你从哪里得到这些数据?
  • 将每一行存储为字符串数组并使用join(),然后打印结果。

标签: python loops


【解决方案1】:

一种简单的方法是将每一行存储在 list 中,然后打印由 , 连接的列表项 - 在此之前将整数值映射到 str (或在附加之前/同时将值转换为 str到列表中)。

num=1
while num < 100:
    out = []
    num2 = 10
    while num2 > 0:
        out.append(num)
        num2 = num2 - 1
        num = num + 2
    print(", ".join(map(str, out)))

输出:

1, 3, 5, 7, 9, 11, 13, 15, 17, 19
21, 23, 25, 27, 29, 31, 33, 35, 37, 39
41, 43, 45, 47, 49, 51, 53, 55, 57, 59
61, 63, 65, 67, 69, 71, 73, 75, 77, 79
81, 83, 85, 87, 89, 91, 93, 95, 97, 99

【讨论】:

    【解决方案2】:

    只是不要在每行的最后一个元素后打印逗号

    num=1
    while num < 100:
      num2 = 10
      while num2 > 1:
        print(num, end=", ")
        num2 = num2 - 1
        num = num + 2
      print(num)
      num = num + 2
    

    【讨论】:

      【解决方案3】:

      这是一个建议:

      a = [str(x) for x in list(range(1,100,2))]
      print("\n".join([", ".join(a[10*i:10*(i+1)]) for i in range(5)]))
      

      【讨论】:

        猜你喜欢
        • 2021-11-24
        • 1970-01-01
        • 2020-06-08
        • 2014-03-31
        • 1970-01-01
        • 2021-01-25
        • 2018-06-24
        • 2019-01-10
        • 1970-01-01
        相关资源
        最近更新 更多