演示4:python的币值转换-含tkinter
演示4:python的币值转换-含tkinter
- 1 说明
- 2 知识点
- 2.1 汇率与币种
- 2.2 元组
- 2.3 if 的用法
- 2.3.1 if 的单独用法
- 2.3.2 if else 的组合用法
- 2.3.3 if else 的一行写法
- 3 python代码实现
- 3.1 人民币转欧元
- 3.2 港币转人民币
- 3.3 美元转泰铢
- 3.4 用tkinter做的界面源码
- 4 效果
1 说明
币值的转换,此处以2020年10月20日的某时刻的币种汇率来演示。
2 知识点
2.1 汇率与币种
由于汇率在币种转换时会由一点误差,所以用两种方向的转换来互相弥补,但是也不能完全保证正确,故以代码的实现为主。
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=Truefor i in money:if i<'0' or i>'9':isok=Falseif len(money)<1:isok=Falseif isok:money=float(money)*OthertoCNY[combo.current()]else:money=0a1["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("<KeyRelease>",ercmoney)
combo.bind("<<ComboboxSelected>>",ercmoney)tk.mainloop()
4 效果
演示4:python的币值转换-含tkinter相关推荐
- python image 转成字节_(推荐)谈谈Python生态圈图像格式转换问题:含实例解析
今天为大家带来的内容是:(推荐)谈谈Python生态圈图像格式转换问题:含实例解析 天气冷了,码字手都不利索了!先哈一哈气,各位也要多穿衣服注意保暖哈.话不多说,就直接进入主题了. 在Python生态 ...
- Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Menu的Command)
Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Menu的Command) 目录 tkinter应用案例 1.添加菜单栏组件 2.tkinter应用案例:添 ...
- Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Menu/Menu的Command)
Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Menu/Menu的Command) 目录 tkinter应用案例 1.添加右键弹出菜单 2.点击一个按钮弹 ...
- Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Canvas)
Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Canvas) 导读 动态演示调用python库的tkinter带你进入GUI世界(Canvas) 目录 t ...
- Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Find/undo事件)
Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Find/undo事件) 导读 动态演示调用python库的tkinter带你进入GUI世界(Find/un ...
- Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(text.insert/link各种事件)
Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(text.insert/link各种事件) 导读 动态演示调用python库的tkinter带你进入GUI世 ...
- Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Button展示图片事件)
Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Button展示图片事件) 导读 动态演示调用python库的tkinter带你进入GUI世界(Button ...
- Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Scale/Scale的Command)
Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Scale/Scale的Command) 导读 动态演示调用python库的tkinter带你进入GUI世界 ...
- Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Listbox/Scrollbar)
Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Listbox/Scrollbar) 导读 动态演示调用python库的tkinter带你进入GUI世界(L ...
最新文章
- python线程,进程,协程
- 浅谈一个缓存小实践,另外还有更多案例,欢迎关注~
- 【终极办法】Client does not support authentication protocol requested by server; consider upgrading mysql
- javaone_虚拟化Java应用程序:最佳实践(JavaOne 2011)
- 国内首家,每周到岗上班3天,携程率先推出“3+2”混合办公模式
- 【Go语言】【15】GO语言的面向对象
- 大数据量下高并发同步的讲解(不看,保证你后悔!)
- AWS中国区同时上线两款新产品,补齐存储服务“全家桶”!
- .NET框架图解之五:System.Reflection
- InnoDB如何实现多版本
- Linux 空间占用100%,查找大文件命令(亲测有效)
- Linux readelf命令
- MSM7225 600MHZ CPU和高通MSM 7201A 528MHz CPU的比较
- NOIP2012 模拟试题二 腾讯大战360
- debian下配置防火墙iptables
- 支付宝出安全漏洞,买了账户安全险的也要小心
- android 文字锯齿,android自定义view锯齿状效果
- phobos 2.015
- 全国著名大学在线精品课程网站大全
- 从大盘数据看A股是否为政策市
热门文章
- 顺丰php下单,顺丰订单查询
- 【Android 事件分发】MotionEvent.ACTION_DOWN 按下事件分发流程( Activity | ViewGroup | View )
- 使用Minisforum UM560小主机办公一周体验
- 你不是真正的快乐---纪念即将完结的青春和陪伴我的阿星和星仔和星爷
- vc 鲜为人知的 __if_exists
- 西门子S7200plc通信不上实际问题和解决方法
- 编程常用单词1500个
- 怎么用计算机求数值等于log,怎么用计算器上的log?
- EEPROM,NAND,NOR,QSPI FLASH的区别
- 栅格地图矢量化的一个思路