我有一个打印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
答案 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='')