【问题标题】:Currency calculation program - Nested Lists and Table货币计算程序 - 嵌套列表和表格
【发布时间】:2020-05-14 15:42:13
【问题描述】:

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

第一个函数 funcOne(currency) 获取所有汇率,并在 range(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


    【解决方案1】:

    你可以的

    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)
    

    【讨论】:

    • 谢谢,这很有帮助。在表格中显示它的第二个功能我该怎么办?
    • 您可以使用print('\t'.join(listName)) 打印制表符分隔列表
    【解决方案2】:

    可能是这样的吗?

    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
    

    【讨论】:

    • 我不认为它与函数调用一起正常工作。货币 = [['Euro', 0.2],['GBP', 0.3],['AUD', 0.4],['USD', 0.5]] t = funcOne(currency) funcTwo(currency, t)
    • 如果你使用我的解决方案,你不再需要funcOne
    • 同样funcTwo只需要1个参数
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-07
    • 2018-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-09
    相关资源
    最近更新 更多