如何在不提前准备{}位置的情况下打印字符串行。因为现在我的函数只需要6个位置,但是如果我更改输入(n,m)
,我将需要不同数量的{}。如何定义呢?
def all_pairs_sum(m,n):
sum = 0
mult = []
for m in range(1,m+1):
for n in range(1,n+1):
l = m*n
mult.append(l)
sum = sum + m*n
print(m," * ", n, " = ", l)
print("{}+{}+{}+{}+{}+{} =".format(*mult))
return sum
print (all_pairs_sum(2,3))
答案 0 :(得分:1)
如果使用方法format()
,则有一定数量的替换字段{}
。您可以使用以下解决方案:
l = list(range(5))
print(' + '.join(str(i) for i in l), ' = ', sum(l))
# 0 + 1 + 2 + 3 + 4 = 10
答案 1 :(得分:1)
您可以使用Python 3.6中添加的f-string功能。另请注意,sum
是Python标准库中的函数。最好不要用您的变量来命名。如您在示例中所见,我将其称为total
def all_pairs_sum(m,n):
total = 0
mult = []
for m in range(1, m + 1):
for n in range(1 , n + 1):
l = m * n
mult.append(l)
total += l
print(f"{m} * {n} = {l:>2d}")
print(f"{' + '.join(map(str, mult))} = {sum(mult)}")
return total
print(all_pairs_sum(2, 5))
输出:
1 * 1 = 1
1 * 2 = 2
1 * 3 = 3
1 * 4 = 4
1 * 5 = 5
2 * 1 = 2
2 * 2 = 4
2 * 3 = 6
2 * 4 = 8
2 * 5 = 10
1 + 2 + 3 + 4 + 5 + 2 + 4 + 6 + 8 + 10 = 45
45
答案 2 :(得分:0)
怎么样:
def get_msg_template(n):
tmp = '{}+' * n
return tmp[:-1]
print(get_msg_template(4))
输出:
{}+{}+{}+{}
答案 3 :(得分:0)
如果您要打印出总和值的字符串表示形式,则可以使用以下内容:
print("+".join(str(x) for x in mult))