1.案例描述

设计一个汇率换算程序,其功能是将美元换算成人民币,或者相反。

2.0增加功能:根据输入判断是人民币还是美元,进行相应的转换计算

3.0增加功能:程序可以一直运行,知道用户选择退出

4.0将汇率转换功能封装到函数中

5.0将简单函数改为lambda函数

2.案例分析

3.Lambda函数(匿名函数)

用于简单的、能够在一行内表示的函数,计算结果为返回值。

<函数名称> = lambda <参数列表>:<表达式>

4.上机实验

"""
作者:梁斌
功能:汇率兑换
版本:5.0
日期:02/08/2017
2.0 新增功能:根据输入判断是人民币还是美元,进行相应的转换计算
3.0 增加功能:程序可以一直运行,直到用户选择退出
4.0 增加功能:将汇率兑换功能封装到函数中
5.0 增加功能:(1) 使程序结构化 (2) 简单函数的定义 lambda
""" # def convert_currency(im, er):
# """
# 汇率兑换函数
# """
# out = im * er
# return out def main():
"""
主函数,形参为空
"""
# 汇率
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 = -1 if exchange_rate != -1:
in_money = eval(currency_str_value[:-3])
# 使用lambda定义函数(一个参数x)
convert_currency2 = lambda x: x * exchange_rate # # 调用函数
# out_money = convert_currency(in_money, exchange_rate) # 调用lambda函数
out_money = convert_currency2(in_money)
print('转换后的金额:', out_money)
else:
print('不支持该种货币!') if __name__ == '__main__':
main()

编程技巧 

1.主要的逻辑处理全部都写到main函数中,使用固定的调用方式。

if __name__ == '__main__':
main()

2.定义lambda函数和调用lambda函数

# 使用lambda定义函数(一个参数x)
convert_currency2 = lambda x: x * exchange_rate
# 调用lambda函数
out_money = convert_currency2(in_money)
# 使用lambda定义函数(两个参数x,y)
convert_currency2 = lambda x,y: x * y
# 调用lambda函数
out_money = convert_currency2(in_money,exchange_rate)

最新文章

  1. linux centos 6.5下安装nodejs
  2. MIT 6.828 JOS学习笔记8. Exercise 1.4
  3. linux上安装mysql
  4. 使用树莓派和kali Linux打造便携式渗透套件
  5. IE内存泄露与无法回收研究小结
  6. one-to-many many-to-one配置解释
  7. 用 SQL 脚本读取Excel 中的sheet数量及名称
  8. Java中的枚举类型详解
  9. 更改Oracle实例的字符集
  10. android基础-界面开发注意事项
  11. Spring Security(二十八):9.4 Authentication in a Web Application
  12. restful 规范(建议)
  13. OC屏幕手势解锁
  14. datatabe 与string
  15. Html的本质及在web中的作用
  16. spring事务管理实现原理-源码-传播属性
  17. Django的Modelforms的介绍
  18. Apache+PHP配置PATHINFO的一个小问题
  19. 一文读懂BERT中的WordPiece
  20. Unity3D之预设

热门文章

  1. 『Tarjan算法 有向图的强连通分量』
  2. 关于HotSpot VM以及Java语言的动态编译 你可能想知道这些
  3. Python:Selenium 2:使用
  4. 2018年Fintech金融科技关键词和入行互金从业必懂知识
  5. 设计模式总结篇系列:适配器模式(Adapter)
  6. ROS笔记3 理解nodes
  7. 【转】什么是.Net以及.Net的基本语法
  8. 解决MySQL报错The server time zone value &#39;&#214;&#208;&#185;&#250;&#177;&#234;&#215;&#188;&#202;&#177;&#188;&#228;&#39; is unrecognized or represents .....
  9. ASP.NET SignalR介绍
  10. Spring boot入门(二):Spring boot集成MySql,Mybatis和PageHelper插件