我有此特定代码,用于首先将特定货币转换为EUR值。这部分代码已被整理:
country = ['CZ', 'PL']
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. BELOW Clip level'.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.')
您会注意到检索到的值输入了第二个条件:如果value2> = 20:
if value2 >= 20:
print('ABOVE Clip level - EU PO is required')
return ('ABOVE Clip level')
else:
print('value {} USD matches expected. BELOW Clip level'.format(value2))
return ('BELOW clip level')
我想在国家(或货币)与特定值之间建立关联。因此,假设我想拥有:value2 = 20作为国家/地区的限制= PL;value2 = 10作为国家/地区= CZ的限制。
我知道应该以某种方式将其集成到函数f中,但是我不知道该怎么做。我试图嵌套它以及分别编写它,但是它没有返回正确的值。我想我可以创建一个剪辑级别列表,但似乎令人困惑。另一个选择是包括一张表格,其中包含每个国家/地区的价值对应关系,但老实说,我不知道这是否可行。最后,最后一个选择(我现在正在尝试的那个选择似乎仍然不起作用)是将函数cliplimit嵌套在函数f中:
def cliplimit(cliplim):
for country in f:
if country == 'PL':
cliplim = 20
elif country == 'CZ':
cliplim = 10
else:
raise ValueError
round(cliplim,0)
return cliplim
if value2 >= cliplimit():
print('ABOVE Clip level - EU PO is required')
return ('ABOVE Clip level')
else:
print('value {} USD matches expected. BELOW Clip level'.format(value2))
return ('BELOW clip level')
到目前为止,我得到的错误与位置参数cliplim有关:
line 37, in <module> f(input1, value1)
line 23, in f
if value2 >= cliplimit(): TypeError: cliplimit() missing 1 required positional argument: 'cliplim'
我希望它不会太令人困惑,但是要注意的是,我需要为特定的国家/地区/货币分配特定的值来限制片段。感谢您的任何帮助!
根据第一个答案的注释和您的原始代码...
仍然需要适当的错误处理
#Take in a country and a Value
#Do the conversion based on country
#Determine need for EU PO based on clip level
cliplims = {"PL" : 20, "CZ" : 30}
def convert(country, value):
if country.upper() == "PL":
return round(value / 3, 2)
elif country.upper() == "CZ":
return round(value / 20, 2)
def above_cliplim(country, value):
return value >= cliplims[country]
my_country = str(input("Enter Country: "))
my_value = float(input("Enter Value: "))
converted_value = convert(my_country, my_value)
print('The conversion of', my_value, my_country, 'is:', converted_value, 'USD')
if above_cliplim(my_country, converted_value):
print('ABOVE Clip level - EU PO is required')
else:
print('value {} BELOW Clip level'.format(converted_value))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句