Skip to main content
 首页 » 编程设计

python之任务是创建一个包含 2 行的表,其中每个值是 2 行之间所有数字的总和。用函数求解程序

2025年05月04日7落叶

提示使用两个值 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