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

I need to print without comma in last position

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

当我尝试这个程序时,在输出中我在最后一个位置有一个逗号。但我不想要这个逗号。如何删除逗号? 我只是将它编码为 乘法 table.

输出: 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)

最好的方法是使用 Join 函数

using 使用生成器表达式:

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)]))

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

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

使用自定义分隔符生成一个系列,您一次性将其传递给 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=',')