python 實(shí)現(xiàn)一個(gè)圖形界面的匯率計(jì)算器
調(diào)用的api接口:
https://api.exchangerate-api.com/v4/latest/USD
完整代碼
import requestsfrom tkinter import *import tkinter as tkfrom tkinter import ttkclass RealTimeCurrencyConverter(): def __init__(self,url): self.data = requests.get(url).json() self.currencies = self.data[’rates’] def convert(self, from_currency, to_currency, amount): initial_amount = amount if from_currency != ’USD’ : amount = amount / self.currencies[from_currency] amount = round(amount * self.currencies[to_currency], 4) return amountclass App(tk.Tk): def __init__(self, converter): tk.Tk.__init__(self) self.title = ’Currency Converter’ self.currency_converter = converterself.geometry('500x200') self.intro_label = Label(self, text = ’Welcome to Real Time Currency Convertor’, fg = ’blue’, relief = tk.RAISED, borderwidth = 3) self.intro_label.config(font = (’Courier’,15,’bold’)) self.date_label = Label(self, text = f'1 Indian Rupee equals = {self.currency_converter.convert(’INR’,’USD’,1)} USD n Date : {self.currency_converter.data[’date’]}', relief = tk.GROOVE, borderwidth = 5) self.intro_label.place(x = 10 , y = 5) self.date_label.place(x = 160, y= 50)valid = (self.register(self.restrictNumberOnly), ’%d’, ’%P’) self.amount_field = Entry(self,bd = 3, relief = tk.RIDGE, justify = tk.CENTER,validate=’key’, validatecommand=valid) self.converted_amount_field_label = Label(self, text = ’’, fg = ’black’, bg = ’white’, relief = tk.RIDGE, justify = tk.CENTER, width = 17, borderwidth = 3)self.from_currency_variable = StringVar(self) self.from_currency_variable.set('INR') self.to_currency_variable = StringVar(self) self.to_currency_variable.set('USD') font = ('Courier', 12, 'bold') self.option_add(’*TCombobox*Listbox.font’, font) self.from_currency_dropdown = ttk.Combobox(self, textvariable=self.from_currency_variable,values=list(self.currency_converter.currencies.keys()), font = font, state = ’readonly’, width = 12, justify = tk.CENTER) self.to_currency_dropdown = ttk.Combobox(self, textvariable=self.to_currency_variable,values=list(self.currency_converter.currencies.keys()), font = font, state = ’readonly’, width = 12, justify = tk.CENTER)self.from_currency_dropdown.place(x = 30, y= 120) self.amount_field.place(x = 36, y = 150) self.to_currency_dropdown.place(x = 340, y= 120)self.converted_amount_field_label.place(x = 346, y = 150) self.convert_button = Button(self, text = 'Convert', fg = 'black', command = self.perform) self.convert_button.config(font=(’Courier’, 10, ’bold’)) self.convert_button.place(x = 225, y = 135) def perform(self): amount = float(self.amount_field.get()) from_curr = self.from_currency_variable.get() to_curr = self.to_currency_variable.get() converted_amount = self.currency_converter.convert(from_curr,to_curr,amount) converted_amount = round(converted_amount, 2) self.converted_amount_field_label.config(text = str(converted_amount)) def restrictNumberOnly(self, action, string): regex = re.compile(r'[0-9,]*?(.)?[0-9,]*$') result = regex.match(string) return (string == '' or (string.count(’.’) <= 1 and result is not None))if __name__ == ’__main__’: url = ’https://api.exchangerate-api.com/v4/latest/USD’ converter = RealTimeCurrencyConverter(url) App(converter) mainloop()
運(yùn)行效果:
以上就是python 實(shí)現(xiàn)一個(gè)圖形界面的匯率計(jì)算器的詳細(xì)內(nèi)容,更多關(guān)于python 匯率計(jì)算的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!
相關(guān)文章:
1. jstl 字符串處理函數(shù)2. JSP動(dòng)態(tài)網(wǎng)頁開發(fā)原理詳解3. XHTML 1.0:標(biāo)記新的開端4. Vue中使用Echarts儀表盤展示實(shí)時(shí)數(shù)據(jù)的實(shí)現(xiàn)5. 深入理解JavaScript中的Base64編碼字符串6. java 字符串轉(zhuǎn)化為字符數(shù)組的3種實(shí)現(xiàn)案例7. JSP頁面的靜態(tài)包含和動(dòng)態(tài)包含使用方法8. WAP建站W(wǎng)ML語言語法基礎(chǔ)教程第1/6頁9. 基于python實(shí)現(xiàn)判斷字符串是否數(shù)字算法10. PHP擴(kuò)展之URL編碼、解碼及解析——URLs
