首页 > 解决方案 > 如果超出剪辑限制,我如何确保我的货币转换器显示?(Python)

问题描述

我正在尝试为货币创建一个转换器,以考虑国家/地区的剪辑限制。

我什至创建了一个根据修复变量显示剪辑级别状态的函数:

input1 = str(input('Enter Currency [CZK or PLN]: '))
value1 = float(input('Enter Value: '))

if input1 == 'PLN' or 'Pln' or 'pln':
    value2 = value1/3
    if input1 == 'CZK' or 'Czk' or 'czk':
        value2 = value1/20
else: print('Some error occurred, try again.')

round(value2,2)
print('The conversion of ', value1, input1, 'is: ', value2,'USD \n')

if value2 >= 20:
    print('ABOVE Clip level - EU PO is required')
else: print('BELOW clip level')
print('value ',value2,'USD matches expected.')

如您所见,代码非常简陋,并考虑了虚构的转化率。我想要实现的是该函数根据所选国家/地区返回该值高于/低于剪辑级别。例如,我将 CKZ 和 PLN 作为货币,因此我将使用 CZ 和 PL)。

这样的功能还没有在代码中实现,因为我不知道如何继续。你能帮忙吗?谢谢!

由 Younes 编辑 > 运行代码: 输出

标签: pythonpython-3.xfunctioncurrencyconverters

解决方案


这一行在这里:

else: print('Some error occurred, try again.')

需要一个循环开始。您想创建一个函数,然后在循环中调用它,这可能会:

def f(country,value):

    if "PL" in country.upper():
        value2 = value/3
    elif "CZ" in country.upper():
        value2 = value/20
    else: 
        raise ValueError
    round(value2,2)
    print('The conversion of ', value1, input1, 'is: ', value2,'USD \n')

    if value2 >= 20:
        print('ABOVE Clip level - EU PO is required')
        return('ABOVE Clip level')
    else: 
        print('value {} USD matches expected.'.format(value2))
        return('BELOW clip level')
    
while True:

    input1 = str(input('Enter Currency [CZK or PLN]: '))
    value1 = float(input('Enter Value: '))

    try :
        f(input1,value1)
        break
    except ValueError:
        print('Some error occurred, try again.')

推荐阅读