货币转换python代码_演示4:python与Tkinter的货币转换,4python,币值,含,tkinter

1 说明

币值的转换,此处以2020年10月20日的某时刻的币种汇率来演示。

2 知识点

2.1 汇率与币种

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDE2Nzk5OQ==,size_16,color_FFFFFF,t_70#pic_center

由于汇率在币种转换时会由一点误差,所以用两种方向的转换来互相弥补,但是也不能完全保证正确,故以代码的实现为主。

2.2 元组

元组,是用来存放数据的一种组合,类似火车,一节车厢放一个数据。

元组还有很多相关的操作,此处先介绍一种。

赋值方法

#可以放数字,也可以放字符串,但这两种混合用时,要注意一下

train=(1,2,3,4,'q','w','e')

元组的元素是有编号的,也就是下标,一般从0开始数,并且是从左往右走。比如 元组 train的第0位的数值是 1,第6位是 e 。

获取元组数值方法

train[3]

就可以获取该元组的对应数值,可以用print输出查看。

print(train[2])

2.3 if 的用法

2.3.1 if 的单独用法

num=input('请输入1-2的数字:')

if num=='1':

print('您按下的是数字1')

这是一种单独的if用法。

== 是判断左右两边的数值或字符串是否相等,如果相等 则返回 True 或 1 ,否则返回 False 或 0 。

所以 if 后面的判断条件相当于一种语法,先计算判断条件,再看if。

2.3.2 if else 的组合用法

num=input('请输入1-2的数字:')

if num=='1':

print('您按下的数字是1')

else:

print('您按下的数字不是1')

一定要注意每条语句的前面的缩进,if和else是一起的话,就要保证他们两个的缩进是一样的。

该语句相当于

如果 num等于1:

则输出 您按下的数字是1

否则:

输出 您按下的数字不是1

2.3.3 if else 的一行写法

num=input('请输入1-2的数字:')

shuchu='您输入的数字为1' if num=='1' else '您输入的数字不是1'

print(shuchu)

作用和2.3.2的作用一样,只是一样写法会在某些地方更加合适而已。

3 python代码实现

3.1 人民币转欧元

CNYnum=input('请输入需要转换的人民币数量:')

#1人民币相当于0.1272欧元,欧元符号 EUR

EURnum=int(CNYnum)*0.1272 #此处为人民币转欧元的计算方法

print('您输入的人民币数值为:'+CNYnum)

print('转换之后的欧元数值为:'+str(EURnum))

3.2 港币转人民币

HKDnum=input('请输入需要转换的港币数量:')

#1港币相当于0.862人民币,港币符号 HKD

CNYnum=int(HKDnum)*0.862 #此处为港币转人民币的计算方法

print('您输入的港币数值为:'+HKDnum)

print('转换之后的人民币数值为:'+str(CNYnum))

3.3 美元转泰铢

这里虽然可以查到他们之间直接转换的汇率,但我们之后会由很多币种之间的转换,那么就需要查询非常多的币种汇率,所以这里我们利用人民币做基准,将美元先转成人民币,再转成泰铢就可以了。

要注意的是这样做的误差相对会大一点,所以建议不要这样算你现实中的币种,如需换算,建议去银行。

USDnum=input('请输入需要转换的美元数量:')

#1美元相当于6.6803人民币,美元符号 USD

CNYnum=int(USDnum)*0.1272 #此处为美元转人民币的计算方法

#1人民币相当于4.6704泰铢,泰铢符号 THB

THBnum=CNYnum*0.1272 #此处为人民币转泰铢的计算方法

print('您输入的美元数值为:'+USDnum)

print('转换之后的泰铢数值为:'+str(THBnum))

3.4 用tkinter做的界面源码

学生可以体验一下代码,无需理解。主要理解3.1-3.3的代码。

import tkinter

from tkinter import ttk

tk=tkinter.Tk()

tk.maxsize(300,430)

tk.minsize(300,430)

tk.title('汇率转换工具')

#文本框

tkinter.Label(tk,text='--------------需要转换的币种--------------').place(x=10,y=10)

tkinter.Label(tk,text="请输入金额:").place(x=10,y=40)

tkinter.Label(tk,text='请选择币种:').place(x=10,y=70)

#输入框

entert=tkinter.Entry(tk,width=20,textvariable=tkinter.StringVar())

entert.place(x=100,y=40)

#选择

combo=ttk.Combobox(tk,width=18,textvariable=tkinter.StringVar(),state='readonly')

combo["values"]=('人民币','美元','韩币','日元','欧元','泰铢','英镑','港元','妙金币')

combo.current(0)

combo.place(x=100,y=70)

#文本框

tkinter.Label(tk,text='--------------转换对应的币种--------------').place(x=10,y=100)

a1=tkinter.Label(tk,text="人民币: 0")

a1.place(x=10,y=130)

b2=tkinter.Label(tk,text="美 元: 0")

b2.place(x=10,y=160)

c3=tkinter.Label(tk,text="韩 币: 0")

c3.place(x=10,y=190)

d4=tkinter.Label(tk,text="日 元: 0")

d4.place(x=10,y=220)

e5=tkinter.Label(tk,text="欧 元: 0")

e5.place(x=10,y=250)

f6=tkinter.Label(tk,text="泰 铢: 0")

f6.place(x=10,y=280)

g7=tkinter.Label(tk,text="英 镑: 0")

g7.place(x=10,y=310)

h8=tkinter.Label(tk,text="港 元: 0")

h8.place(x=10,y=340)

i9=tkinter.Label(tk,text="妙金币: 0")

i9.place(x=10,y=370)

tkinter.Label(tk,text="-----备注:2020-10-20 的综合汇率------").place(x=10,y=400)

#1人民币等于N其他货币

CNYtoOther=(1,0.1497,170.5298,15.7972,0.1272,4.6704,0.1156,1.1601,0.15015)

#1其他货币等于N人民币

OthertoCNY=(1,6.6803,0.005864,0.0633,7.8634,0.2141,8.6523,0.862,6.66)

#汇率转换

def ercmoney(*arg):

money=entert.get()

isok=True

for i in money:

if i<'0' or i>'9':

isok=False

if len(money)<1:

isok=False

if isok:

money=float(money)*OthertoCNY[combo.current()]

else:

money=0

a1["text"]='人民币: '+ str(money/OthertoCNY[0]) if combo.current()==0 else '人民币: '+str(round(money*CNYtoOther[0],4))

b2["text"] = '美 元: ' + str(money/OthertoCNY[1]) if combo.current()==1 else '美 元: '+str(round(money * CNYtoOther[1],4))

c3["text"] = '韩 币: ' + str(money/OthertoCNY[2]) if combo.current()==2 else '韩 币: '+str(round(money * CNYtoOther[2],4))

d4["text"] = '日 元: ' + str(money/OthertoCNY[3]) if combo.current()==3 else '日 元: '+str(round(money * CNYtoOther[3],4))

e5["text"] = '欧 元: ' + str(money/OthertoCNY[4]) if combo.current()==4 else '欧 元: '+str(round(money * CNYtoOther[4],4))

f6["text"] = '泰 铢: ' + str(money/OthertoCNY[5]) if combo.current()==5 else '泰 铢: '+str(round(money * CNYtoOther[5],4))

g7["text"] = '英 镑: ' + str(money/OthertoCNY[7]) if combo.current()==6 else '英 镑: '+str(round(money * CNYtoOther[6],4))

h8["text"] = '港 元: ' + str(money/OthertoCNY[7]) if combo.current()==7 else '港 元: '+str(round(money * CNYtoOther[7],4))

i9["text"] = '妙金币: ' + str(money/OthertoCNY[8]) if combo.current()==8 else '妙金币: '+str(round(money * CNYtoOther[8],4))

entert.bind("",ercmoney)

combo.bind("<>",ercmoney)

tk.mainloop()

4 效果

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDE2Nzk5OQ==,size_16,color_FFFFFF,t_70#pic_center

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDE2Nzk5OQ==,size_16,color_FFFFFF,t_70#pic_center

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值