编写一个函数,返回具有汇率最大值的货币名称



我必须编写一个函数,使用服务返回货币名称('name'字段(和汇率的最大值https://www.cbr-xml-daily.ru/daily_json.js.

以下是我迄今为止所做的:

import requests
class Rate:
def __init__(self, format_='value'):
self.format = format_
def exchange_rates(self):
self.r = requests.get('https://www.cbr-xml-daily.ru/daily_json.js')
return self.r.json()['Valute']
def make_format(self, currency):
response = self.exchange_rates()
if currency in response:
if self.format == 'full':
return response[currency]
if self.format == 'value':
return response[currency]['Value']
return 'Error'
def eur(self):
return self.make_format('EUR')
def usd(self):
return self.make_format('USD')
def brl(self):
return self.make_format('BRL')
r = Rate(format_='value')
r.brl()  # 14.1581
r.eur()  # 88.1397

但我不知道如何返回最大价值的货币。

我不确定为什么要创建一个class来执行此操作,也不确定您到底想要什么,但如果它是最大"Value"所有货币的"Name",则可以定义如下所示的max_rate()类方法:

from operator import itemgetter
import requests

class Rate:
def __init__(self, format_='value'):
self.format = format_
def exchange_rates(self):
self.r = requests.get('https://www.cbr-xml-daily.ru/daily_json.js')
return self.r.json()['Valute']
def max_rate(self):
getter = itemgetter('Name', 'Value')
rates = [getter(info) for info in self.exchange_rates().values()]
return max(rates, key=itemgetter(1))  # Return Name, Value with max Value.

r = Rate()
print(r.max_rate())

我想你需要这样的

import requests
class Rate:
def __init__(self, format_='value'):
self.format = format_

def exchange_rates(self):
self.r = requests.get('https://www.cbr-xml-daily.ru/daily_json.js')
return self.r.json()['Valute']

def make_format(self, currency):
response = self.exchange_rates()

if currency in response:
if self.format == 'full':
return response[currency]

if self.format == 'value':
return response[currency]['Value']

return 'Error'

def eur(self):
return self.make_format('EUR')
def usd(self):
return self.make_format('USD')
def brl(self):
return self.make_format('BRL')
def max(self):

x = self.brl()# 14.1581
y = self.eur()# 88.1397
z = self.usd()
if max(x,y,z)==x:
return "Brl"
elif max(x,y,z)==y:
return "EUR"
else:
return "USD"
r = Rate(format_='value')
x = r.brl()# 14.1581
y = r.eur()# 88.1397
z = r.usd()
Max = r.max()
print("Brl ",x)  
print("Eur ",y)
print("Usd ",z)
print("Maximum = ",Max)

最新更新