小象学院Python入门基础课程-四、案例1 汇率兑换 案例分析

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_34243930/article/details/83720551

在这里插入图片描述

汇率兑换 1.0(只考虑一种外币情况)

案例描述

在这里插入图片描述

案例分析

在这里插入图片描述

上机实验

在这里插入图片描述

"""
    作者:xpt
    功能:汇率兑换
    版本号:1.0
    日期:05/11/2018
"""

# 人名币的输入
rmb_str_value = input('请输入人民币(CNY)金额:')
# 将字符串转换为数字
rmb_value = eval(rmb_str_value)
# 汇率
USD_VS_RMB = 6.77
# 汇率计算
usd_value = rmb_value / USD_VS_RMB
print('美元金额为', usd_value)


• 能否根据输入的货币判断是人民币还是美元,然后进行相应的转换?

汇率兑换 2.0(增加功能:根据输入判断是人民币还是美元,进行相应的转换计算)

在这里插入图片描述
1、要取单位:取后三位
涉及到字符串的操作(见Python语言的基本语法https://blog.csdn.net/qq_34243930/article/details/83748085)
2、 如何实现分支结构?

分支语句if else

在这里插入图片描述
先写框架:用pass占位
在这里插入图片描述

"""
    作者:xpt
    功能:汇率兑换
    版本号:2.0
    日期:05/11/2018
    新增功能:根据输入判断是人民币还是美元,进行相应的转换计算
"""
# 汇率
USD_VS_RMB = 6.77
# 带单位的货币输入
currency_str_value = input('请输入带单位的货币金额:')
# 获取货币单位
unit = currency_str_value[-3:]

if unit == 'CNY':
    # 输入的是人民币
    rmb_str_value = currency_str_value[:-3]
    # 将字符串转换为数字
    rmb_value = eval(rmb_str_value)
    # 汇率计算
    usd_value = rmb_value / USD_VS_RMB
    # 输出结果
    print('美元金额(USD)为', usd_value)
elif unit == 'USD':
    # 输入的是美元
    usd_str_value = currency_str_value[:-3]
    # 将字符串转换为数字
    usd_value = eval(usd_str_value)
    # 汇率计算
    rmb_value = usd_value * USD_VS_RMB
    # 输出结果
    print('人民币(CNY)金额为', rmb_value)
else:
    # 其他情况
    print("目前版本尚不支持该种货币")





在这里插入图片描述
• 能否使程序一直执行,直到用户选择退出?

汇率兑换 3.0(增加功能:程序可以一直运行,直到用户选择退出)

在这里插入图片描述
1、用循环语句来实现
2、注意循环体里也要在最后让用户输入!!

在这里插入图片描述

循环语句while

循环要有条件,不然就是死循环了。
在这里插入图片描述
while 后条件没有括号!!!加冒号!!!
在这里插入图片描述

"""
    作者:xpt
    功能:汇率兑换
    版本号:3.0
    日期:05/11/2018
    新增功能2.0:根据输入判断是人民币还是美元,进行相应的转换计算
    增加功能3.0:程序可以一直运行,直到用户选择退出
"""
# 汇率
USD_VS_RMB = 6.77
# 带单位的货币输入
currency_str_value = input('请输入带单位的货币金额(退出程序请输入Q):')
while currency_str_value != 'Q':
    # 获取货币单位
    unit = currency_str_value[-3:]

    if unit == 'CNY':
        # 输入的是人民币
        rmb_str_value = currency_str_value[:-3]
        # 将字符串转换为数字
        rmb_value = eval(rmb_str_value)
        # 汇率计算
        usd_value = rmb_value / USD_VS_RMB
        # 输出结果
        print('美元金额(USD)为', usd_value)
    elif unit == 'USD':
        # 输入的是美元
        usd_str_value = currency_str_value[:-3]
        # 将字符串转换为数字
        usd_value = eval(usd_str_value)
        # 汇率计算
        rmb_value = usd_value * USD_VS_RMB
        # 输出结果
        print('人民币(CNY)金额为', rmb_value)
    else:
        # 其他情况
        print("目前版本尚不支持该种货币")
    print('*******************************************')
    currency_str_value = input('请输入带单位的货币金额(退出程序请输入Q):')

print('程序已退出')

在这里插入图片描述
• 如果程序中多次用到兑换功能,代码量会增加,如何简化?

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

在这里插入图片描述

函数

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

"""
    作者:xpt
    功能:汇率兑换
    版本号:4.0
    日期:05/11/2018
    新增功能2.0:根据输入判断是人民币还是美元,进行相应的转换计算
    增加功能3.0:程序可以一直运行,直到用户选择退出
    增加功能4.0:将汇率兑换功能封装到函数中

"""


def convert_currency(im, er):
    """
    汇率兑换函数
    """
    out = im*er
    return out


# 汇率
USD_VS_RMB = 6.77
# 带单位的货币输入
currency_str_value = input('请输入带单位的货币金额:')


# 获取货币单位
unit = currency_str_value[-3:]

if unit == 'CNY':
    exchange_rate= 1 / USD_VS_RMB
elif unit == 'USD':
    exchange_rate = USD_VS_RMB
else:
    # 其他情况
    exchange_rate = -1

if exchange_rate != -1:
    in_money = eval(currency_str_value[:-3])
    # 调用函数
    out_money=convert_currency(in_money, exchange_rate)
    print('转换后的金额:', out_money)
else:
    print('不支持该种货币!')

在这里插入图片描述

• 如果复用的功能很简单(一句话能完成任务),是否有更简洁的写法?

汇率兑换5.0(增加功能:1、使程序结构化;2、将简单的函数改造成lambda函数)

1、使程序结构化;

在这里插入图片描述
调用main()函数:
注意:都是两个下划线!!!
在这里插入图片描述
在这里插入图片描述

"""
    作者:xpt
    功能:汇率兑换
    版本号:5.0
    日期:05/11/2018
    新增功能2.0:根据输入判断是人民币还是美元,进行相应的转换计算
    增加功能3.0:程序可以一直运行,直到用户选择退出
    增加功能4.0:将汇率兑换功能封装到函数中
    增加功能5.0:(1)使程序结构化
                (2)
"""


def convert_currency(im, er):
    """
    汇率兑换函数
    """
    out = im*er
    return out


def main():
    """
    主函数
    """
    # 汇率
    USD_VS_RMB = 6.77
    # 带单位的货币输入
    currency_str_value = input('请输入带单位的货币金额:')
    # 获取货币单位
    unit = currency_str_value[-3:]

    if unit == 'CNY':
        exchange_rate= 1 / USD_VS_RMB
    elif unit == 'USD':
        exchange_rate = USD_VS_RMB
    else:
        # 其他情况
        exchange_rate = -1

    if exchange_rate != -1:
        in_money = eval(currency_str_value[:-3])
        # 调用函数
        out_money=convert_currency(in_money, exchange_rate)
        print('转换后的金额:', out_money)
    else:
        print('不支持该种货币!')


# 调用main()函数
if __name__ == '__main__':
    main()

在这里插入图片描述
在这里插入图片描述

2、将简单的函数改造成lambda函数

在这里插入图片描述

lambda函数

在这里插入图片描述
在这里插入图片描述

"""
    作者:xpt
    功能:汇率兑换
    版本号:5.0
    日期:05/11/2018
    新增功能2.0:根据输入判断是人民币还是美元,进行相应的转换计算
    增加功能3.0:程序可以一直运行,直到用户选择退出
    增加功能4.0:将汇率兑换功能封装到函数中
    增加功能5.0:(1)使程序结构化
                (2)将简单的函数改造成lambda函数
"""


def main():
    """
    主函数
    """

    # 汇率
    USD_VS_RMB = 6.77
    # 带单位的货币输入
    currency_str_value = input('请输入带单位的货币金额:')
    # 获取货币单位
    unit = currency_str_value[-3:]

    if unit == 'CNY':
        exchange_rate= 1 / USD_VS_RMB
    elif unit == 'USD':
        exchange_rate = USD_VS_RMB
    else:
        # 其他情况
        exchange_rate = -1

    if exchange_rate != -1:
        in_money = eval(currency_str_value[:-3])

        # 使用lambda定义函数
        convert_currency = lambda x: x*exchange_rate
        # 调用lambda函数
        out_money=convert_currency(in_money)

        print('转换后的金额:', out_money)
    else:
        print('不支持该种货币!')


# 调用main()函数
if __name__ == '__main__':
    main()

思考:
• 能否保存多个货币的汇率,而不是单一的汇率?
• 能否获取实时的汇率?
提示:
• Python中的集合操作(案例5 判断第几天)
• 网络爬虫(案例8 空气质量指数)

猜你喜欢

转载自blog.csdn.net/qq_34243930/article/details/83720551