【每天学点Python】案例一:汇率换算
2018-09-18 06:44:29来源:博客园 阅读 ()
汇率换算V1.0
案例描述:
设计一个汇率换算器程序,其功能是将外币换算成人民币,或者相反
案例分析:
分析问题:分析问题的计算部分;
确定问题:将问题划分为输入、处理及输出部分;
设计算法:计算部分的核心(输出 = 输入 / 汇率);
上机实验:
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 # author: Kevin.Wang 4 # time : 2018/9/13 5 6 rmb_str_value = input('请输入人民币(CNY)金额:') 7 rmb_value = eval(rmb_str_value) 8 usd_vs_rmb = 6.77 9 usd_value = rmb_value / usd_vs_rmb 10 print('美元(USD)金额是:',usd_value)
补充说明:
1. 多行注释:“”“……”“”
1 # 多行注释 2 """ 3 作者:王鑫正 4 功能:汇率兑换 5 版本:1.0 6 日期:2018/9/14 7 """
2. 查看Python关键字方法:
1 import keyword 2 print(keyword.kwlist)
V2.0增加功能:
案例描述:
根据输入判断是人民币还是美元,进行相应的转换计算
案例分析:
输入:带单位的货币金额
上机实验:
1 """ 2 作者:王鑫正 3 功能:汇率兑换 4 版本:2.0 5 日期:2018/9/14 6 新增功能:根据输入判断是人民币还是美元,进行相应的转换计算 7 """ 8 9 # 汇率 10 usd_vs_rmb = 6.77 11 12 # 带单位的货币的输入 13 currency_str_value = input('请输入带单位的货币金额:') 14 15 # 获取货币单位 16 unit = currency_str_value[-3:] 17 18 if unit == 'CNY': 19 # 输入的是人民币 20 rmb_str_value = currency_str_value[:-3] 21 # 将字符串转换为数字 22 rmb_value = eval(rmb_str_value) 23 # 汇率计算 24 usd_value = rmb_value / usd_vs_rmb 25 # 输出结果 26 print('美元(USD)金额是:', usd_value) 27 28 elif unit == 'USD': 29 # 输入的是美元 30 usd_str_value = currency_str_value[:-3] 31 # 将字符串转换为数字 32 usd_value = eval(usd_str_value) 33 # 汇率计算 34 rmb_value = usd_value * usd_vs_rmb 35 # 输出结果 36 print('人民币(CNY)金额是:', rmb_value) 37 38 else: 39 # 其他情况 40 print('该程序目前版本尚不支持该种货币!')
补充说明:
1. 字符串索引:
①. 正向索引(从左向右,以0开始):
1 s = 'PYTHON' 2 s[2] # 获取s的第2个字符
②. 负向索引(从右向左,以-1开始):
1 s = 'PYTHON' 2 s[-4] # 获取s的倒数第4个字符
③. 区间索引([A:B],从位置A到B的部分字符串,不包含位置B):
记忆方法:获取字符串长度为B-A
1 s = 'PYTHON' 2 s[0:3] # 正向获取第一个到第三个字符串 3 s[:3] # 从0开始,0可以省略 4 s[-3:-1] # 负向获取倒数第二到倒数第一个字符串 5 s[-3:] # 负向到末尾,-1可以省略
V3.0增加功能:
案例描述:
程序可以一直运行,知道用户选择退出
案例分析:
使用循环语句while
上机实验:
1 """ 2 作者:王鑫正 3 功能:汇率兑换 4 版本:2.0 5 日期:2018/9/14 6 新增功能: 7 2.0 根据输入判断是人民币还是美元,进行相应的转换计算 8 3.0 程序可以一直运行,知道用户选择退出 9 """ 10 11 # 汇率 12 usd_vs_rmb = 6.77 13 14 # 带单位的货币的输入 15 currency_str_value = input('请输入带单位的货币金额(退出程序请输入Q):') 16 17 i = 0 18 19 while currency_str_value != 'Q': 20 i = i + 1 21 print('循环次数', i) 22 23 # 获取货币单位 24 unit = currency_str_value[-3:] 25 26 if unit == 'CNY': 27 # 输入的是人民币 28 rmb_str_value = currency_str_value[:-3] 29 # 将字符串转换为数字 30 rmb_value = eval(rmb_str_value) 31 # 汇率计算 32 usd_value = rmb_value / usd_vs_rmb 33 # 输出结果 34 print('美元(USD)金额是:', usd_value) 35 36 elif unit == 'USD': 37 # 输入的是美元 38 usd_str_value = currency_str_value[:-3] 39 # 将字符串转换为数字 40 usd_value = eval(usd_str_value) 41 # 汇率计算 42 rmb_value = usd_value * usd_vs_rmb 43 # 输出结果 44 print('人民币(CNY)金额是:', rmb_value) 45 46 else: 47 # 其他情况 48 print('该程序目前版本尚不支持该种货币!') 49 50 print('\n****************************************') 51 # 带单位的货币的输入 52 currency_str_value = input('请输入带单位的货币金额(退出程序请输入Q):') 53 54 print('程序已退出')
V4.0增加功能:
案例描述:
将汇率兑换功能封装到函数中
案例分析:
判断货币种类,汇率转化,调用汇率兑换函数
上机实验:
1 """ 2 作者:王鑫正 3 功能:汇率兑换 4 版本:2.0 5 日期:2018/9/14 6 新增功能: 7 2.0 根据输入判断是人民币还是美元,进行相应的转换计算 8 3.0 程序可以一直运行,知道用户选择退出 9 4.0 将汇率兑换功能封装到函数中 10 """ 11 12 13 def convert_currency(im, er): 14 """ 15 汇率兑换函数 16 """ 17 out = im * er 18 return out 19 20 21 # 汇率 22 usd_vs_rmb = 6.77 23 24 # 带单位的货币的输入 25 currency_str_value = input('请输入带单位的货币金额:') 26 27 # 获取货币单位 28 unit = currency_str_value[-3:] 29 30 if unit == 'CNY': 31 exchange_rate = 1 / usd_vs_rmb 32 33 elif unit == 'USD': 34 exchange_rate = usd_vs_rmb 35 36 else: 37 exchange_rate = -1 38 # # 其他情况 39 # print('该程序目前版本尚不支持该种货币!') 40 41 if exchange_rate != -1: 42 in_money = eval(currency_str_value[:-3]) 43 # 调用函数 44 out_money = convert_currency(in_money, exchange_rate) 45 print('转换后的金额:', out_money) 46 47 else: 48 print('不支持该种货币!')
补充说明:
1. 函数:
- 将特定功能代码编写在一个函数里
- 便于阅读和复用
- 对一组表达特定功能表达式的封装
- 使程序模块化
- Python内置函数:input(),print(),eval()...
2. 函数的定义
def <函数名>(<参数列表>):
<函数体>
return <返回值列表>
3. 函数的调用过程
- 调用程序在调用函数处暂停执行
- 调用时将参数(实参)赋值给函数的参数(形参)
- 执行函数体
- 返回函数结果,回到调用处继续执行
V5.0增加功能:
1. 程序结构化
2. 简单函数的定义,lambda函数
上机实验:
1 """ 2 作者:王鑫正 3 功能:汇率兑换 4 版本:2.0 5 日期:2018/9/14 6 新增功能: 7 2.0 根据输入判断是人民币还是美元,进行相应的转换计算 8 3.0 程序可以一直运行,知道用户选择退出 9 4.0 将汇率兑换功能封装到函数中 10 5.0 (1) 程序结构化 (2) 简单函数的定义 lambda 11 12 """ 13 14 15 # def convert_currency(im, er): 16 # """ 17 # 汇率兑换函数 18 # """ 19 # out = im * er 20 # return out 21 22 23 def main(): 24 """ 25 主函数 26 """ 27 # 汇率 28 usd_vs_rmb = 6.77 29 30 # 带单位的货币的输入 31 currency_str_value = input('请输入带单位的货币金额:') 32 33 # 获取货币单位 34 unit = currency_str_value[-3:] 35 36 if unit == 'CNY': 37 exchange_rate = 1 / usd_vs_rmb 38 39 elif unit == 'USD': 40 exchange_rate = usd_vs_rmb 41 42 else: 43 exchange_rate = -1 44 45 if exchange_rate != -1: 46 in_money = eval(currency_str_value[:-3]) 47 # 使用lambda定义函数 48 convert_currency2 = lambda x: x*exchange_rate 49 50 # # 调用函数 51 # out_money = convert_currency(in_money, exchange_rate) 52 53 # 调用lambda函数 54 out_money = convert_currency2(in_money) 55 print('转换后的金额:', out_money) 56 57 else: 58 print('不支持该种货币!') 59 60 61 if __name__ == '__main__': 62 main()
补充说明:
1. lambda函数:
- 特殊函数---匿名函数
- 使用方法:
<函数名> = lambda<参数列表>:<表达式>
- 用于简单的、能够在一行内表示的函数,计算结果为返回值
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- python3基础之“术语表(2)” 2019-08-13
- python3 之 字符串编码小结(Unicode、utf-8、gbk、gb2312等 2019-08-13
- Python3安装impala 2019-08-13
- 小白如何入门 Python 爬虫? 2019-08-13
- python_字符串方法 2019-08-13
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash