(Python 3)避免在print的末尾打印逗号(variableName,end =',')

时间:2016-11-07 18:30:48

标签: python printing

我有一个打印x个数字的代码。首先,我问了很长的问题。然后打印所有以前的数字(从0到x)。

我的问题是: 打印这些号码时,我想用逗号分隔它们。我使用了 print(a,end =','),但最后也打印了一个逗号。例如。像这样打印1,2,3,4,5,而最后一个逗号不应该在那里。

我使用if语句来克服这个问题,但不知道是否有更容易的方法。

n=int(input("enter the length "))
a=0
if n>0:      
    for x in range(n):
        if x==n-1:
            print(a,end='')
        else:
            print(a,end=',')
        a=a+1

2 个答案:

答案 0 :(得分:1)

最恐怖的做法是使用列表理解和join

n = int(input("enter the length "))
if (n > 0):
    print(','.join([str(x) for x in range(n)]))

<强>输出:

0,1,2

<强>解释

  • ','.join(...) 加入使用字符串传递的任何可迭代内容(在本例中为',')。如果您希望在数字之间加上空格,可以使用', '.join(...)

  • [str(x) for x in range(n)] list comprehension。基本上,对于x中的每个range(n)str(x)都会添加到列表中。这基本上转化为:

    data = []
    for (x in range(n))
        data.append(x)
    

答案 1 :(得分:0)

Pythonic方法是在列表中收集值,然后一次打印出来。

n=int(input("enter the length "))
a=0
to_print = []  # The values to print
if n>0:      
    for x in range(n):
        to_print.append(a)
        a=a+1
print(*to_print, sep=',', end='')

最后一行打印由to_print分隔的*(以','展开)并且不以换行符结尾的项目。

在这种特定情况下,代码可以缩短为:

print(*range(int(input('enter the length '))), sep=',', end='')