前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【每天学点Python】案例一:汇率换算

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

作者头像
py3study
发布2020-01-19 17:12:43
1.4K0
发布2020-01-19 17:12:43
举报
文章被收录于专栏:python3

汇率换算V1.0

案例描述:

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

案例分析:

分析问题:分析问题的计算部分;

确定问题:将问题划分为输入、处理及输出部分;

设计算法:计算部分的核心(输出 = 输入 / 汇率);

上机实验:

代码语言:javascript
复制
 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. 多行注释:“”“……”“”

代码语言:javascript
复制
1 # 多行注释
2 """
3     作者:王鑫正
4     功能:汇率兑换
5     版本:1.0
6     日期:2018/9/14
7 """

View Code

2. 查看Python关键字方法:

代码语言:javascript
复制
1 import keyword
2 print(keyword.kwlist)

View Code


V2.0增加功能:

案例描述:

根据输入判断是人民币还是美元,进行相应的转换计算

案例分析:

输入:带单位的货币金额

上机实验:

代码语言:javascript
复制
 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开始):

代码语言:javascript
复制
1 s = 'PYTHON'
2 s[2] # 获取s的第2个字符

View Code

  ②. 负向索引(从右向左,以-1开始):

代码语言:javascript
复制
1 s = 'PYTHON'
2 s[-4] # 获取s的倒数第4个字符

View Code

  ③. 区间索引([A:B],从位置A到B的部分字符串,不包含位置B):

     记忆方法:获取字符串长度为B-A

代码语言:javascript
复制
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

上机实验:

代码语言:javascript
复制
 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增加功能:

案例描述:

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

案例分析:

判断货币种类,汇率转化,调用汇率兑换函数

上机实验:

代码语言:javascript
复制
 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函数

上机实验:

代码语言:javascript
复制
 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<参数列表>:<表达式>

  • 用于简单的、能够在一行内表示的函数,计算结果为返回值
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/03/10 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 汇率换算V1.0
    • 案例描述:
      • 案例分析:
        • 上机实验:
          •  补充说明:
            • 案例描述:
              • 案例分析:
                • 上机实验:
                  • 补充说明:
                  • V3.0增加功能:
                    • 案例描述:
                      • 案例分析:
                        • 上机实验:
                        • V4.0增加功能:
                          • 案例描述:
                            • 案例分析:
                              • 上机实验:
                                • 补充说明:
                                • V5.0增加功能:
                                  • 上机实验:
                                    • 补充说明:
                                    领券
                                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档