(课程相关的所有资料代码,已上传至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函数相关推荐

  1. 【目录】Python 入门基础篇 <(^-^)>

    Python 入门基础篇 一.关于Python的介绍与准备工作 Python基础介绍 Jupyter notebook基础介绍 Jupyter notebook打开问题 Jupyter noteboo ...

  2. python异常处理_Python基础语法案例(Fibonacci):选择结构、循环结构、异常处理结构、代码优化...

    推荐图书: <Python程序设计基础(第2版)>,ISBN:9787302490562,董付国,清华大学出版社,第16次印刷,清华大学出版社2019年度畅销图书 图书购买链接(京东):配 ...

  3. Python基础语法案例(Fibonacci):选择结构、循环结构、异常处理结构、代码优化

    推荐图书: <Python程序设计基础(第2版)>,ISBN:9787302490562,董付国,清华大学出版社,第16次印刷,清华大学出版社2019年度畅销图书 图书购买链接(京东): ...

  4. 微课|《Python编程基础与案例集锦(中学版)》第5章例题讲解(1)

    适用教材:<Python编程基础与案例集锦(中学版)>,董付国,应根球著,电子工业出版社 京东图书地址:https://item.jd.com/12571990.html 当当图书地址:h ...

  5. 微课|《Python编程基础与案例集锦(中学版)》第4章例题讲解(3)

    适用教材:<Python编程基础与案例集锦(中学版)>,董付国,应根球著,电子工业出版社 例4-10  把十进制数转换为其他进制形式. 例4-11  验证6174猜想. 例4-12.例4- ...

  6. 微课|《Python编程基础与案例集锦(中学版)》第4章例题讲解(2)

    适用教材:<Python编程基础与案例集锦(中学版)>,董付国,应根球著,电子工业出版社 例4-4 例4-5 例4-6 微课|中学生可以这样学Python(例4.3):百钱买百鸡 例4-7 ...

  7. python入门基础教程-Python入门基础教程:WSGI

    原标题:Python入门基础教程:WSGI WSGI 简介 WSGI 是什么 WSGI 是 Python Web Server Gateway Interface 的缩写,是描述 Web 服务器与 P ...

  8. B站马士兵python入门基础版详细笔记(6)

    前言: 这篇文章是B站学习python入门基础班的视频的第五 六章内容,主要讲述的是列表,主要包括列表的创建,以及他的元素的增.删.查.改操作命令. 一.列表的初始化 为什么要使用列表? 列表就好比C ...

  9. B站马士兵python入门基础版详细笔记(4)

    前言: 这篇文章是B站学习python入门基础班的视频的第四章内容,主要讲述的是if-else语句,但是不包括循环结构,循环结构在下一章笔记中有记叙 一.顺序结构 什么是顺序结构呢?比如说 '''把大 ...

最新文章

  1. 互联网思维-产品思维(1)
  2. c语言表达式和表达式语句的区别,C语言中表达式和表达式语句的区别(什么又叫做表达式)?...
  3. 可视化Linux性能监控
  4. 《Hive编程指南》14.3 投影变换的实践出错原因分析
  5. java类变量什么时候初始化_Java类变量的初始化时机
  6. oracle EXP-00028
  7. hdu 1255 覆盖的面积 (扫描线求矩形交)
  8. git指令如何葱master转到dev_看完这篇还不会用Git,那我就哭了
  9. 网络创业成功的7堂课(读书笔记)
  10. C++17之std::any
  11. Java8-排序方法(正序、倒序)
  12. JS实现打印遇到的各种问题处理,JavaScript拉取浏览器print()方法打印遇到的问题解决,html实现打印机打印
  13. 使用JDK的 keytool 生成JKS,修改查看JKS信息
  14. Redis设计与实现之跳跃表
  15. OpenSIPS配置脚本结构
  16. python pdfminer用法演示
  17. java查询城市区号,java根据手机号获取归属地
  18. 虚拟现实技术会带来网吧的新春天吗?
  19. 1.1.2 三角形余弦定理
  20. 插入数据库时报错:Duplicate entry ‘AAA-BBB‘ for key ‘uk_XXX‘

热门文章

  1. Android Studio ADB5037端口被vschost.exe占用
  2. KVM虚拟化详解以及如何创建KVM虚拟机
  3. ucosii入门验证
  4. 台式机电脑开机进不了系统
  5. 【CF 应用开发大赛】副食品进销存系统
  6. PPLive计划私募融资2000万美元
  7. JVM,Jdk和Jre的关系
  8. 艾永亮:好的用户体验决定企业能否成为超级产品
  9. PhotoShop入门到精通(三)之 钢笔工具
  10. [JavaWeb]_[初级]_[如何更换免费网站字体]