美文网首页
案例(1):汇率兑换

案例(1):汇率兑换

作者: hwang_zhic | 来源:发表于2019-02-07 14:58 被阅读0次

本章通过汇率兑换的5个案例来进行学习基础的Python程序

案例描述

设计一个简单的汇率换算器程序,功能是能将外币转换成人民币或者相反
1.为了使程序简单,目前只考虑一种外币美元
2.新加功能:根据输入判断是人民币还是美元,进行相应的转换
3.新加功能:循环计算,输入Q退出循环
4.新加功能:通过调用函数减少荣域代码
5.新加功能:(1)结构化程序(2)将简单的函数转换为lambda函数

v1.0

根据问题描述,我们可以将这个分析称简单的输入、处理和输出(简称IPO),如下图:



在程序中可以通过input函数赋值给变量实现输入数据。
变量无须定义类型可以直接调用,而通常全大写表示常量,变量只能通过字母、数字和下划线来组成且不能数字开头。
知识点:
1.变量无须定义类型可以直接调用,而通常全大写表示常量,变量只能通过字母、数字和下划线来组成且不能数字开头。
2.input()函数实现输入数据,类型为字符串。eval()可以将字符串中的数字转换为整数型
3.print()实现输出数据
代码实现如下:

"""
    时间:2019年1月28日22:31:28
    功能v1.0:汇率换算
"""
# 汇率
USD_RATE = 6.77
# 输入人民币
rmb_str_value = input("请输入人民币金额:")
# 字符型换成整数型
rmb_value = eval(rmb_str_value)
# 计算美元金额
usd_value = rmb_value / USD_RATE
# 输出金额
print("换算成美元为:", usd_value)

v2.0

新增判断输入来对数据进行不同的处理。



知识点:
1.if elif else语句的使用,使用时记得带冒号“:”
2.数组的使用,通过[-3:]和[:-3]来取得倒数3位数据和顺数到倒数第3位的数据

ps:在程序中可以适当加判断来给程序处理不了的数据输出报错

"""
    时间:2019年1月28日22:31:28
    功能v1.0:汇率换算
    新增功能v2.0:美元人民币相互转换
"""
# 汇率
USD_RATE = 6.77
# 输入人民币
current_value = input("请输入带单位金额:")
# print(current_value[-3:])
# 获取种类
nuit = current_value[-3:]

if nuit == "CNY":
    # 字符型换成整数型
    rmb_value = eval(current_value[:-3])
    # 计算美元金额
    usd_value = rmb_value / USD_RATE
    # 输出金额
    print("换算成美元为:", usd_value)
elif nuit == "USD":
    # 字符串转换为整数型
    usd_value = eval(current_value[:-3])
    # 求人民币金额
    rmb_value = usd_value * USD_RATE
    # 输出金额
    print("换算成人民币:", rmb_value)
else:
    print("该版本尚未支持此货币转换汇率")

v3.0

在可以v2.0的基础上新增功能使用循环来多次换算货币,当用户确定要退出时输入设定值就可以退出。


知识点:
1.while语句,当条件符合就进入循环体,否则退出

"""
    时间:2019年1月28日22:31:28
    功能v1.0:汇率换算
    新增功能v2.0:美元人民币相互转换
    新增功能v3.0:循环计算,输入Q退出循环
"""
# 汇率
USD_RATE = 6.77

# 循环计数
while_count = 0
# 输入人民币
current_value = input("请输入带单位金额:(退出程序请按Q)")
# 输入Q退出循环
while current_value != "Q":
    # 循环一次就计数1次
    while_count = while_count + 1
    # print(current_value[-3:])
    # 获取种类
    nuit = current_value[-3:]

    if nuit == "CNY":
        # 字符型换成整数型
        rmb_value = eval(current_value[:-3])
        # 计算美元金额
        usd_value = rmb_value / USD_RATE
        # 输出金额
        print("换算成美元为:", usd_value)

    elif nuit == "USD":
        # 字符串转换为整数型
        usd_value = eval(current_value[:-3])
        # 求人民币金额
        rmb_value = usd_value * USD_RATE
        # 输出金额
        print("换算成人民币:", rmb_value)

    # 其他情况
    else:
        print("该版本尚未支持此货币转换汇率")

    print("*******************************")
    # 带货币单位的输入
    current_value = input("请输入带单位的金额:(退出程序请按Q)")

print("程序已退出")

v4.0

在v2.0基础上将计算金额封装成函数,使函数整洁



知识点:
1.函数定义语句:def <函数名>([参数1],[参数2]) :
2.形参和实参

"""
    时间:2019年1月28日22:31:28
    功能v1.0:汇率换算
    新增功能v2.0:美元人民币相互转换
    新增功能v3.0:循环计算,输入Q退出循环
    新增功能v4.0:通过调用函数减少荣域代码
"""


def count_money(im, cr):
    """
    通过汇率计算金额
    :param im:
    :param cr:
    :return:
    """
    out = im * cr
    return out


# 汇率
USD_RATE = 6.77

# 输入人民币
current_value = input("请输入带单位金额:")

# 获取种类
nuit = current_value[-3:]

if nuit == "CNY":
    # 计算人民币汇率
    current_rate = 1 / USD_RATE

elif nuit == "USD":
    # 计算美元汇率
    current_rate = USD_RATE

# 其他情况
else:
    current_rate = -1

if current_rate != -1:
    # 调用函数
    im_money = count_money(eval(current_value[:-3]), current_rate)
    print("兑换后的金额为:", im_money)

else:
    # 否则输出不支持
    print("该版本尚未支持此货币转换汇率")


v5.0

在v4.0的基础上新增:(1)结构化程序(2)将简单的函数转换为lambda函数
进一步将程序简洁和模块化,程序更加易读


知识点:
1.lambda函数用法:<> = lambda <> : <>,用处:lambda函数可以将一行简单的代码直接定义成函数
2.if name == 'main':
main()
这个代码实现在主程序执行时可运行主函数main
"""
    时间:2019年1月28日22:31:28
    功能v1.0:汇率换算
    新增功能v2.0:美元人民币相互转换
    新增功能v3.0:循环计算,输入Q退出循环
    新增功能v4.0:通过调用函数减少荣域代码
    新增功能v5.0:(1)结构化程序(2)将简单的函数转换为lambda函数
"""


def count_money(im, cr):
    """
    通过汇率计算金额
    :param im:
    :param cr:
    :return:
    """
    out = im * cr
    return out


def main():
    # 汇率
    USD_RATE = 6.77

    # 输入人民币
    current_value = input("请输入带单位金额:")

    # 获取种类
    nuit = current_value[-3:]

    if nuit == "CNY":
        # 计算人民币汇率
        current_rate = 1 / USD_RATE

    elif nuit == "USD":
        # 计算美元汇率
        current_rate = USD_RATE

    # 其他情况
    else:
        current_rate = -1

    if current_rate != -1:
        in_money = eval(current_value[:-3])

        # 调用函数

        # 定义简单的lambda函数
        count_money2 = lambda x: x * current_rate

        # 调用lambda函数
        out_money = count_money2(in_money)

        # out_money = count_money(eval(current_value[:-3]), current_rate)
        print("兑换后的金额为:", out_money)

    else:
        # 否则输出不支持
        print("该版本尚未支持此货币转换汇率")


if __name__ == '__main__':
    main()

完整代码请查看

相关文章

  • 案例(1):汇率兑换

    本章通过汇率兑换的5个案例来进行学习基础的Python程序 案例描述 设计一个简单的汇率换算器程序,功能是能将外币...

  • 2020-04-22

    汇率不同,货币之间的兑换比率叫做汇率高汇率被视为经济强大的象征,高汇率国家的公民和企业会发现国外的产品服务相对于国...

  • 固定汇率与浮动汇率

    固定汇率 是指一国货币与另一国家货币的兑换比率基本固定的汇率,固定汇率并非汇率完全固定不动,而是围绕一个相对固定的...

  • 【理财小白成长记】2019-4-12(15/90)第四章投资的选

    第六节、外汇投资 一、外汇和外汇汇率 1、什么事外汇?动态,静态 2、外汇汇率:一国货币兑换成另一个国家货币的比率...

  • Rust每日练习---货币换算

    编写一个货币兑换程序。具体来说,是将欧元兑换成美元。 提示输入手动的欧元数,以及欧元的当前汇率。打印可以兑换的美元...

  • Python 学习笔记 ① (01-11)

    课程包括以下八个案例: 汇率兑换分形树绘制BMI瘦身工具52周存钱挑战判断一年中的第几天密码强度判断掷骰子模拟(随...

  • 汇率接口

    汇率接口 通用信息说明 点击查询通用信息说明 汇率查询数据 数据均为100外币兑换人民币数值 接口信息 请求示例 ...

  • 《清华金融课》(3/4)生活/信贷金融学

    投资领域最高端的外汇市场 买卖货币:兑换货币的行为。 外汇市场:兑换货币的场所。 汇率:两种货币之间的兑换比率。 ...

  • 汇率指标不同国家的适用程度不同

    汇率作为国家间配置资源的重要工具,其水平的决定与作用机制非常复杂。同时汇率作为交易国家货币兑换的标准,发挥...

  • Paxos——币安上线稳定币PAX

    据了解,Gemini以及Paxos获得了美国纽维州监管机构的获批,允许其推出的稳定币以1:1的汇率兑换美元。 业内...

网友评论

      本文标题:案例(1):汇率兑换

      本文链接:https://www.haomeiwen.com/subject/pxdojqtx.html