演示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相关推荐

  1. python image 转成字节_(推荐)谈谈Python生态圈图像格式转换问题:含实例解析

    今天为大家带来的内容是:(推荐)谈谈Python生态圈图像格式转换问题:含实例解析 天气冷了,码字手都不利索了!先哈一哈气,各位也要多穿衣服注意保暖哈.话不多说,就直接进入主题了. 在Python生态 ...

  2. Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Menu的Command)

    Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Menu的Command) 目录 tkinter应用案例 1.添加菜单栏组件 2.tkinter应用案例:添 ...

  3. Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Menu/Menu的Command)

    Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Menu/Menu的Command) 目录 tkinter应用案例 1.添加右键弹出菜单 2.点击一个按钮弹 ...

  4. Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Canvas)

    Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Canvas) 导读 动态演示调用python库的tkinter带你进入GUI世界(Canvas) 目录 t ...

  5. Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Find/undo事件)

    Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Find/undo事件) 导读 动态演示调用python库的tkinter带你进入GUI世界(Find/un ...

  6. Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(text.insert/link各种事件)

    Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(text.insert/link各种事件) 导读 动态演示调用python库的tkinter带你进入GUI世 ...

  7. Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Button展示图片事件)

    Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Button展示图片事件) 导读 动态演示调用python库的tkinter带你进入GUI世界(Button ...

  8. Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Scale/Scale的Command)

    Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Scale/Scale的Command) 导读 动态演示调用python库的tkinter带你进入GUI世界 ...

  9. Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Listbox/Scrollbar)

    Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Listbox/Scrollbar) 导读 动态演示调用python库的tkinter带你进入GUI世界(L ...

最新文章

  1. python线程,进程,协程
  2. 浅谈一个缓存小实践,另外还有更多案例,欢迎关注~
  3. 【终极办法】Client does not support authentication protocol requested by server; consider upgrading mysql
  4. javaone_虚拟化Java应用程序:最佳实践(JavaOne 2011)
  5. 国内首家,每周到岗上班3天,携程率先推出“3+2”混合办公模式
  6. 【Go语言】【15】GO语言的面向对象
  7. 大数据量下高并发同步的讲解(不看,保证你后悔!)
  8. AWS中国区同时上线两款新产品,补齐存储服务“全家桶”!
  9. .NET框架图解之五:System.Reflection
  10. InnoDB如何实现多版本
  11. Linux 空间占用100%,查找大文件命令(亲测有效)
  12. Linux readelf命令
  13. MSM7225 600MHZ CPU和高通MSM 7201A 528MHz CPU的比较
  14. NOIP2012 模拟试题二 腾讯大战360
  15. debian下配置防火墙iptables
  16. 支付宝出安全漏洞,买了账户安全险的也要小心
  17. android 文字锯齿,android自定义view锯齿状效果
  18. phobos 2.015
  19. 全国著名大学在线精品课程网站大全
  20. 从大盘数据看A股是否为政策市

热门文章

  1. 顺丰php下单,顺丰订单查询
  2. 【Android 事件分发】MotionEvent.ACTION_DOWN 按下事件分发流程( Activity | ViewGroup | View )
  3. 使用Minisforum UM560小主机办公一周体验
  4. 你不是真正的快乐---纪念即将完结的青春和陪伴我的阿星和星仔和星爷
  5. vc 鲜为人知的 __if_exists
  6. 西门子S7200plc通信不上实际问题和解决方法
  7. 编程常用单词1500个
  8. 怎么用计算机求数值等于log,怎么用计算器上的log?
  9. EEPROM,NAND,NOR,QSPI FLASH的区别
  10. 栅格地图矢量化的一个思路