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