提示使用两个值 A 和 B。生成表 AxB,其中每个值是 A 和 B 之间所有数字的总和(如果 B < A,则为 B 和 A)。创建生成每一行的函数,以及打印所有行的函数。
我使用“if”运算符解决了这个问题,但我不知道如何使用函数解决。我的方式:
a = input("Enter A:")
b = input("Enter B:")
k = 0
for i in range(1,a+1):
for j in range(1,b+1):
if i != j:
k = 0
if j < i:
m = j
ma = i
else:
m = i
ma = j
for m in range(m,ma+1):
k += m
print k,
else:
print i,
print
简单示例:
Enter A: 3
Enter B: 4
结果应该是:
1 3 6 10
3 2 5 9
6 5 3 7
最佳答案
这可能是你想要的
from itertools import product
from math import log10
def foo(row, col):
table = [[0]*col for _ in range(row)]
for i, j in product(range(row), range(col)):
table[i][j] = sum(range(i+1, j+2)) if i < j else sum(range(j+1, i+2))
_max = max(row, col)
_max = int(log10(_max*(_max+1) / 2)) + 3
formatstr = ("{{:^{}}}".format(_max))*col
for row in table:
print formatstr.format(*row)
>>> foo(3,4)
1 3 6 10
3 2 5 9
6 5 3 7
>>> foo(10,10)
1 3 6 10 15 21 28 36 45 55
3 2 5 9 14 20 27 35 44 54
6 5 3 7 12 18 25 33 42 52
10 9 7 4 9 15 22 30 39 49
15 14 12 9 5 11 18 26 35 45
21 20 18 15 11 6 13 21 30 40
28 27 25 22 18 13 7 15 24 34
36 35 33 30 26 21 15 8 17 27
45 44 42 39 35 30 24 17 9 19
55 54 52 49 45 40 34 27 19 10
关于python - 任务是创建一个包含 2 行的表,其中每个值是 2 行之间所有数字的总和。用函数求解程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19323782/