货币计算程序 - 嵌套列表和表格

问题描述 投票:-1回答:2

我有一个小程序,它有一个货币列表和两个函数。

第一个函数funcOne(currency)接收所有的汇率,并在范围(10, 101, 10)内计算每个数字。

第二个函数funcTwo(currency, t)在格式化的表格中显示所有信息。

def funcOne(currency):
    matrix = []
    for i in range(10, 101, 10):
        aud = i * currency[0][1]
        usd = i * currency[1][1]
        eur = i * currency[2][1]
        gbp = i * currency[3][1]
        curList = [i, aud, usd, eur, gbp]
        matrix.append(curList) 
    return(matrix)

def funcTwo(currency, t):
    print("$NZ \t{} \t{} \t{} \t{} \t".format(currency[0][0], currency[1][0], currency[2][0], currrency[3][0]))
    for i in t:
        print("%0.2f" % i[0], "\t%0.2f" % i[1], "\t%0.2f" % i[2], "\t%0.2f" % i[3], "\t%0.2f" % i[4], "\t")

currency = [['Euro', 0.2],['GBP', 0.3],['AUD', 0.4],['USD', 0.5]]
t = funcOne(currency)
funcTwo(currency, t)

结果看起来像这样。

$NZ     Euro    GBP     AUD     USD     
10.00   2.00    3.00    4.00    5.00    
20.00   4.00    6.00    8.00    10.00   
30.00   6.00    9.00    12.00   15.00   
40.00   8.00    12.00   16.00   20.00   
50.00   10.00   15.00   20.00   25.00   
60.00   12.00   18.00   24.00   30.00   
70.00   14.00   21.00   28.00   35.00   
80.00   16.00   24.00   32.00   40.00   
90.00   18.00   27.00   36.00   45.00   
100.00  20.00   30.00   40.00   50.00   

问题是如果增加了额外的货币,程序就不能显示它。

例如

currency = [['Euro', 0.2],['GBP', 0.3],['AUD', 0.4],['USD', 0.5],['RUB', 0.12]]

我可以做什么改变来使表格显示任意数量的货币?

对不起,如果不是很清楚,请问清楚。我没办法了,怎么才能让事情顺利进行。将感谢任何帮助。

python
2个回答
0
投票

你可以做

def funcOne(currency):
    matrix = []
    for i in range(10, 101, 10):
        curList =[]
        for j in range(len(currency)):
            curList.append(currency[j][1] * i)
        matrix.append(curList) 
    return(matrix)

0
投票

也许是这样的?

def funcTwo(currency):
    names = [c[0] for c in currency]
    print("$NZ\t" + ' \t'.join(names))
    for i in range(10, 101, 10):
        print(i, end='\t')
        curList = [str(i * c[1]) for c in currency]
        print(" \t".join(curList))

currency = [['Euro', 0.2],['GBP', 0.3],['AUD', 0.4],['USD', 0.5],['RUB', 0.12]]
funcTwo(currency)

print()
currency = [['Euro', 0.2],['GBP', 0.3],['AUD', 0.4],['USD', 0.5]]
funcTwo(currency)

输出。

$NZ Euro    GBP     AUD     USD     RUB
10  2.0     3.0     4.0     5.0     1.2
20  4.0     6.0     8.0     10.0    2.4
30  6.0     9.0     12.0    15.0    3.5999999999999996
40  8.0     12.0    16.0    20.0    4.8
50  10.0    15.0    20.0    25.0    6.0
60  12.0    18.0    24.0    30.0    7.199999999999999
70  14.0    21.0    28.0    35.0    8.4
80  16.0    24.0    32.0    40.0    9.6
90  18.0    27.0    36.0    45.0    10.799999999999999
100 20.0    30.0    40.0    50.0    12.0

$NZ Euro    GBP     AUD     USD
10  2.0     3.0     4.0     5.0
20  4.0     6.0     8.0     10.0
30  6.0     9.0     12.0    15.0
40  8.0     12.0    16.0    20.0
50  10.0    15.0    20.0    25.0
60  12.0    18.0    24.0    30.0
70  14.0    21.0    28.0    35.0
80  16.0    24.0    32.0    40.0
90  18.0    27.0    36.0    45.0
100 20.0    30.0    40.0    50.0
© www.soinside.com 2019 - 2024. All rights reserved.