版权声明:本文为博主原创文章,未经博主允许不得转载。 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 空气质量指数)