设计一个汇率换算器程序,其功能是将外币换算成人民币,或者相反
分析问题:分析问题的计算部分;
确定问题:将问题划分为输入、处理及输出部分;
设计算法:计算部分的核心(输出 = 输入 / 汇率);
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)
View Code
1. 多行注释:“”“……”“”
1 # 多行注释
2 """
3 作者:王鑫正
4 功能:汇率兑换
5 版本:1.0
6 日期:2018/9/14
7 """
View Code
2. 查看Python关键字方法:
1 import keyword
2 print(keyword.kwlist)
View Code
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('该程序目前版本尚不支持该种货币!')
View Code
1. 字符串索引:
①. 正向索引(从左向右,以0开始):
1 s = 'PYTHON'
2 s[2] # 获取s的第2个字符
View Code
②. 负向索引(从右向左,以-1开始):
1 s = 'PYTHON'
2 s[-4] # 获取s的倒数第4个字符
View Code
③. 区间索引([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可以省略
View Code
程序可以一直运行,知道用户选择退出
使用循环语句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('程序已退出')
View Code
将汇率兑换功能封装到函数中
判断货币种类,汇率转化,调用汇率兑换函数
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('不支持该种货币!')
View Code
1. 函数:
2. 函数的定义
def <函数名>(<参数列表>):
<函数体>
return <返回值列表>
3. 函数的调用过程
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()
View Code
1. lambda函数:
<函数名> = lambda<参数列表>:<表达式>