【每天学点Python】案例一:汇率换算

汇率换算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)
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

 


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('程序已退出')
View Code

 


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('不支持该种货币!')
View Code

补充说明:

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()
View Code

补充说明:

1. lambda函数:

  • 特殊函数---匿名函数
  • 使用方法:

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

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

 

转载于:https://www.cnblogs.com/Kevin-WangXinzheng/p/9643299.html

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值