我需要在最后位置不带逗号的打印

  • 本文关键字:打印 位置 最后 python
  • 更新时间 :
  • 英文 :

n = int(input("Enter a number :-"))
for i in range(1, 11):
print(i*n, end = ",")

当我尝试这个程序时,在输出中,我在最后一个位置得到一个逗号。但是我不需要这个逗号。如何去掉逗号?我只是为乘法表编写了代码.

输出:8、16、24、32、40、48、56岁,64年,72年,80,

您可以在打印前检查索引

n = int(input("Enter a number :-"))
for i in range(1, 11):
end = "," if i < 10 else ""
print(i*n, end = end)

使用自定义分隔符一次性生成传递给print的序列,而不是要求在单独的print调用中找出正确的行尾:

print(*(i*n for i in range(1, 11)), sep=',')

这个*解包生成器(i*n for i in range(1, 11))作为print的参数,本质上相当于:

print(8, 16, 24, ..., sep=',')

Python允许您轻松地使用join:

n = int(input("Enter a number: "))
print(','.join(str(i*n) for i in range(1, n)))  # surely, range(1, n) not range(1, 11)

对于更复杂的情况,常见的解决方案是在除第一个项之外的每个项前面加上

n = int(input("Enter a number: "))
sep = ""
for i in range(1, n):  # same fix here
print("%s%i" % (sep, i*n), end = "")
sep = ","   # add a delimiter on each subsequent iteration

最好的方法是使用Join函数

using using generator expression:

def gen_num(n,count):
for i in range(1, count):
yield str(i*n)
print(",".join(list(gen_num(8,11))))

使用列表推导式

n = 8
print(",".join([str(x*n) for x in range(1,11)]))

Result:8,16,24,32,40,48,56,64,72,80

最新更新