Python入门基础-四、案例1 汇率兑换 #分支语句if else# 循环语句while#函数#lambda函数
(课程相关的所有资料代码,已上传至CSDN,请自行下载
https://download.csdn.net/download/qq_34243930/10764180 )
汇率兑换 1.0(只考虑一种外币情况)
案例描述
案例分析
上机实验
"""作者:xpt功能:汇率兑换版本号:1.0日期:05/11/2018
"""# 人名币的输入
rmb_str_value = input('请输入人民币(CNY)金额:')
# 将字符串转换为数字
rmb_value = eval(rmb_str_value)
# 汇率
USD_VS_RMB = 6.77
# 汇率计算
usd_value = rmb_value / USD_VS_RMB
print('美元金额为', usd_value)
• 能否根据输入的货币判断是人民币还是美元,然后进行相应的转换?
汇率兑换 2.0(增加功能:根据输入判断是人民币还是美元,进行相应的转换计算)
1、要取单位:取后三位
涉及到字符串的操作(见Python语言的基本语法https://blog.csdn.net/qq_34243930/article/details/83748085)
2、 如何实现分支结构?
分支语句if else
先写框架:用pass占位
"""作者:xpt功能:汇率兑换版本号:2.0日期:05/11/2018新增功能:根据输入判断是人民币还是美元,进行相应的转换计算
"""
# 汇率
USD_VS_RMB = 6.77
# 带单位的货币输入
currency_str_value = input('请输入带单位的货币金额:')
# 获取货币单位
unit = currency_str_value[-3:]if unit == 'CNY':# 输入的是人民币rmb_str_value = currency_str_value[:-3]# 将字符串转换为数字rmb_value = eval(rmb_str_value)# 汇率计算usd_value = rmb_value / USD_VS_RMB# 输出结果print('美元金额(USD)为', usd_value)
elif unit == 'USD':# 输入的是美元usd_str_value = currency_str_value[:-3]# 将字符串转换为数字usd_value = eval(usd_str_value)# 汇率计算rmb_value = usd_value * USD_VS_RMB# 输出结果print('人民币(CNY)金额为', rmb_value)
else:# 其他情况print("目前版本尚不支持该种货币")
• 能否使程序一直执行,直到用户选择退出?
汇率兑换 3.0(增加功能:程序可以一直运行,直到用户选择退出)
1、用循环语句来实现
2、注意循环体里也要在最后让用户输入!!
循环语句while
循环要有条件,不然就是死循环了。
while 后条件没有括号!!!加冒号!!!
"""作者:xpt功能:汇率兑换版本号:3.0日期:05/11/2018新增功能2.0:根据输入判断是人民币还是美元,进行相应的转换计算增加功能3.0:程序可以一直运行,直到用户选择退出
"""
# 汇率
USD_VS_RMB = 6.77
# 带单位的货币输入
currency_str_value = input('请输入带单位的货币金额(退出程序请输入Q):')
while currency_str_value != 'Q':# 获取货币单位unit = currency_str_value[-3:]if unit == 'CNY':# 输入的是人民币rmb_str_value = currency_str_value[:-3]# 将字符串转换为数字rmb_value = eval(rmb_str_value)# 汇率计算usd_value = rmb_value / USD_VS_RMB# 输出结果print('美元金额(USD)为', usd_value)elif unit == 'USD':# 输入的是美元usd_str_value = currency_str_value[:-3]# 将字符串转换为数字usd_value = eval(usd_str_value)# 汇率计算rmb_value = usd_value * USD_VS_RMB# 输出结果print('人民币(CNY)金额为', rmb_value)else:# 其他情况print("目前版本尚不支持该种货币")print('*******************************************')currency_str_value = input('请输入带单位的货币金额(退出程序请输入Q):')print('程序已退出')
• 如果程序中多次用到兑换功能,代码量会增加,如何简化?
汇率兑换4.0(将汇率兑换功能封装到函数中)
函数
"""作者:xpt功能:汇率兑换版本号:4.0日期:05/11/2018新增功能2.0:根据输入判断是人民币还是美元,进行相应的转换计算增加功能3.0:程序可以一直运行,直到用户选择退出增加功能4.0:将汇率兑换功能封装到函数中"""def convert_currency(im, er):"""汇率兑换函数"""out = im*erreturn out# 汇率
USD_VS_RMB = 6.77
# 带单位的货币输入
currency_str_value = input('请输入带单位的货币金额:')# 获取货币单位
unit = currency_str_value[-3:]if unit == 'CNY':exchange_rate= 1 / USD_VS_RMB
elif unit == 'USD':exchange_rate = USD_VS_RMB
else:# 其他情况exchange_rate = -1if exchange_rate != -1:in_money = eval(currency_str_value[:-3])# 调用函数out_money=convert_currency(in_money, exchange_rate)print('转换后的金额:', out_money)
else:print('不支持该种货币!')
• 如果复用的功能很简单(一句话能完成任务),是否有更简洁的写法?
汇率兑换5.0(增加功能:1、使程序结构化;2、将简单的函数改造成lambda函数)
1、使程序结构化;
调用main()函数:
注意:都是两个下划线!!!
"""作者:xpt功能:汇率兑换版本号:5.0日期:05/11/2018新增功能2.0:根据输入判断是人民币还是美元,进行相应的转换计算增加功能3.0:程序可以一直运行,直到用户选择退出增加功能4.0:将汇率兑换功能封装到函数中增加功能5.0:(1)使程序结构化(2)
"""def convert_currency(im, er):"""汇率兑换函数"""out = im*erreturn outdef main():"""主函数"""# 汇率USD_VS_RMB = 6.77# 带单位的货币输入currency_str_value = input('请输入带单位的货币金额:')# 获取货币单位unit = currency_str_value[-3:]if unit == 'CNY':exchange_rate= 1 / USD_VS_RMBelif unit == 'USD':exchange_rate = USD_VS_RMBelse:# 其他情况exchange_rate = -1if exchange_rate != -1:in_money = eval(currency_str_value[:-3])# 调用函数out_money=convert_currency(in_money, exchange_rate)print('转换后的金额:', out_money)else:print('不支持该种货币!')# 调用main()函数
if __name__ == '__main__':main()
2、将简单的函数改造成lambda函数
lambda函数
"""作者:xpt功能:汇率兑换版本号:5.0日期:05/11/2018新增功能2.0:根据输入判断是人民币还是美元,进行相应的转换计算增加功能3.0:程序可以一直运行,直到用户选择退出增加功能4.0:将汇率兑换功能封装到函数中增加功能5.0:(1)使程序结构化(2)将简单的函数改造成lambda函数
"""def main():"""主函数"""# 汇率USD_VS_RMB = 6.77# 带单位的货币输入currency_str_value = input('请输入带单位的货币金额:')# 获取货币单位unit = currency_str_value[-3:]if unit == 'CNY':exchange_rate= 1 / USD_VS_RMBelif unit == 'USD':exchange_rate = USD_VS_RMBelse:# 其他情况exchange_rate = -1if exchange_rate != -1:in_money = eval(currency_str_value[:-3])# 使用lambda定义函数convert_currency = lambda x: x*exchange_rate# 调用lambda函数out_money=convert_currency(in_money)print('转换后的金额:', out_money)else:print('不支持该种货币!')# 调用main()函数
if __name__ == '__main__':main()
思考:
• 能否保存多个货币的汇率,而不是单一的汇率?
• 能否获取实时的汇率?
提示:
• Python中的集合操作(案例5 判断第几天)
• 网络爬虫(案例8 空气质量指数)
Python入门基础-四、案例1 汇率兑换 #分支语句if else# 循环语句while#函数#lambda函数相关推荐
- 【目录】Python 入门基础篇 <(^-^)>
Python 入门基础篇 一.关于Python的介绍与准备工作 Python基础介绍 Jupyter notebook基础介绍 Jupyter notebook打开问题 Jupyter noteboo ...
- python异常处理_Python基础语法案例(Fibonacci):选择结构、循环结构、异常处理结构、代码优化...
推荐图书: <Python程序设计基础(第2版)>,ISBN:9787302490562,董付国,清华大学出版社,第16次印刷,清华大学出版社2019年度畅销图书 图书购买链接(京东):配 ...
- Python基础语法案例(Fibonacci):选择结构、循环结构、异常处理结构、代码优化
推荐图书: <Python程序设计基础(第2版)>,ISBN:9787302490562,董付国,清华大学出版社,第16次印刷,清华大学出版社2019年度畅销图书 图书购买链接(京东): ...
- 微课|《Python编程基础与案例集锦(中学版)》第5章例题讲解(1)
适用教材:<Python编程基础与案例集锦(中学版)>,董付国,应根球著,电子工业出版社 京东图书地址:https://item.jd.com/12571990.html 当当图书地址:h ...
- 微课|《Python编程基础与案例集锦(中学版)》第4章例题讲解(3)
适用教材:<Python编程基础与案例集锦(中学版)>,董付国,应根球著,电子工业出版社 例4-10 把十进制数转换为其他进制形式. 例4-11 验证6174猜想. 例4-12.例4- ...
- 微课|《Python编程基础与案例集锦(中学版)》第4章例题讲解(2)
适用教材:<Python编程基础与案例集锦(中学版)>,董付国,应根球著,电子工业出版社 例4-4 例4-5 例4-6 微课|中学生可以这样学Python(例4.3):百钱买百鸡 例4-7 ...
- python入门基础教程-Python入门基础教程:WSGI
原标题:Python入门基础教程:WSGI WSGI 简介 WSGI 是什么 WSGI 是 Python Web Server Gateway Interface 的缩写,是描述 Web 服务器与 P ...
- B站马士兵python入门基础版详细笔记(6)
前言: 这篇文章是B站学习python入门基础班的视频的第五 六章内容,主要讲述的是列表,主要包括列表的创建,以及他的元素的增.删.查.改操作命令. 一.列表的初始化 为什么要使用列表? 列表就好比C ...
- B站马士兵python入门基础版详细笔记(4)
前言: 这篇文章是B站学习python入门基础班的视频的第四章内容,主要讲述的是if-else语句,但是不包括循环结构,循环结构在下一章笔记中有记叙 一.顺序结构 什么是顺序结构呢?比如说 '''把大 ...
最新文章
- 互联网思维-产品思维(1)
- c语言表达式和表达式语句的区别,C语言中表达式和表达式语句的区别(什么又叫做表达式)?...
- 可视化Linux性能监控
- 《Hive编程指南》14.3 投影变换的实践出错原因分析
- java类变量什么时候初始化_Java类变量的初始化时机
- oracle EXP-00028
- hdu 1255 覆盖的面积 (扫描线求矩形交)
- git指令如何葱master转到dev_看完这篇还不会用Git,那我就哭了
- 网络创业成功的7堂课(读书笔记)
- C++17之std::any
- Java8-排序方法(正序、倒序)
- JS实现打印遇到的各种问题处理,JavaScript拉取浏览器print()方法打印遇到的问题解决,html实现打印机打印
- 使用JDK的 keytool 生成JKS,修改查看JKS信息
- Redis设计与实现之跳跃表
- OpenSIPS配置脚本结构
- python pdfminer用法演示
- java查询城市区号,java根据手机号获取归属地
- 虚拟现实技术会带来网吧的新春天吗?
- 1.1.2 三角形余弦定理
- 插入数据库时报错:Duplicate entry ‘AAA-BBB‘ for key ‘uk_XXX‘