Привет всем, я пытаюсь сделать конвертер валют для универа, у меня есть API, получающий данные, и я могу напечатать результат конвертации, например, 4 доллара США в евро.Однако я не могу заставить пользователя выбрать валюту, а затем включить эту валюту в уравнение и отобразить ее пользователю. Я пробовал много разных способов, но просто ничего не получилось.Любая помощь будет отличной.
import tkinter as tk
from tkinter import ttk
from tkinter import *
import tkinter as tk
from functools import partial
import urllib.request
import json
class CurrencyConverter:
rates = {}
def __init__(self, url):
req = urllib.request.Request("http://data.fixer.io/api/latest?access_key=7cf0cd1118b95f44d00a6c262240bce3", headers={'User-Agent': 'howCode Currency Bot'})
data = urllib.request.urlopen(req).read()
data = json.loads(data.decode('utf-8'))
self.rates = data["rates"]
def convert(self, amount, from_currency, to_currency):
initial_amount = amount
if from_currency != "EUR":
amount = amount / self.rates[from_currency] # converts the currenct into the bas currency hen the desierd e.g pounds to euros to dollars
if to_currency == "EUR":
return initial_amount, from_currency, '=', amount, to_currency
else:
return initial_amount, from_currency, '=', amount * self.rates[to_currency], to_currency
converter = CurrencyConverter("http://data.fixer.io/api/latest?access_key=7cf0cd1118b95f44d00a6c262240bce3")
###### the above is the api that gets the conversion rates
def call_result(label_result, n1, n2):
num1 = (n1.get())
num2 = (n2.get())
result = float(num1)*float(num2) + 100 # same as below chang 100 to be the exhcange rate
label_result.config(text="Result is %f" % result) # made float so you can use decimals
return
### i can get user information but i am not sure how to get them to choose a conversion rate and then input it into the result equation
root = tk.Tk()
root.geometry('400x200+100+200')
root.title('Simple Converter')
number1 = tk.DoubleVar()
number2 = tk.DoubleVar()
labelTitle = tk.Label(root, text=" Converter ").grid(row=0, column=2)
labelNum1 = tk.Label(root, text="Amount").grid(row=1, column=0)
labelNum2 = tk.Label(root, text="Enter another number").grid(row=2, column=0)
labelResult = tk.Label(root)
labelResult.grid(row=7, column=2)
entryNum1 = tk.Entry(root, textvariable=number1).grid(row=1, column=2)
entryNum2 = tk.Entry(root, textvariable=number2).grid(row=2, column=2)
call_result = partial(call_result, labelResult, number1, number2)
buttonCal = tk.Button(root, text="Calculate", command=call_result).grid(row=3, column=0)
root.mainloop()
print(converter.convert(1.0, "USD", "CAD"))
print(converter.convert(1.0, "EUR", "JPY"))
print(converter.convert(1.0, "JPY", "USD"))
print(converter.convert(1.0, "USD", "CAD"))
print(converter.convert(1.0, "CAD", "JPY"))
print(converter.convert(1.0, "EUR", "USD"))
print(converter.convert(1.0, "JPY", "CAD"))
print(converter.convert(1.0, "USD", "EUR"))
print(converter.convert(1.0, "CAD", "USD"))
print(converter.convert(1.0, "EUR", "CAD"))
print(converter.convert(1.0, "JPY", "EUR"))
print(converter.convert(1.0, "USD", "JPY"))