# python 从入门到精通(第二版)个人编码
# 第九章 函数
# 形式参数 实际参数 string类值传递不改变实际参数值 list类引用传递改变实际参数的值
# 位置参数 传递时数量有数量及先后顺序要求,关键字参数使用形式参数名称赋值,可不顾及传递参数时先后顺序
# 参数默认值 有默认值的参数要放在最后
# 可变参数 *parameter接收后放到元组中 **parameter 接收后放到字典中
# 值传递与引用传递
# 9.6 实践练习题1
# 定义汇率转换函数(人民币 to 外币)
def _toForeignDollars_(renminbi):
to_us_dollars = 0.1546
to_eu_yuan = 0.1284
to_uk_pond = 0.1126
print("您输入的人民币金额为:", renminbi, "\n")
print("\t等值美元是:", "{:.2f}".format(float(renminbi * to_us_dollars)),
"\t等值欧元是:", "{:.3f}".format(float(renminbi * to_eu_yuan)),
"\t等值英镑是:", "{:.4f}".format(float(renminbi * to_uk_pond)))
# 定义货币金额有效性判断函数
def _is_renminbi_account(shuliang):
shulie = shuliang.split('.')
# 处理以0开头的大于1数字问题,例如010.85处理为10.85
if len(shulie[0]) > 1:
shulie[0] = shulie[0].lstrip('0')
# 输入整数部分必须是数字,小数点后最多2位数字
if shulie[0].isnumeric() and shulie[1].isnumeric() and len(shulie[1]) < 3:
return True
else:
return False
print("请输入正确的人民币金额,小数点最多2位")
shuliang_input = input()
shuliang_input.strip()
flag = 0
if not _is_renminbi_account(shuliang_input):
flag = 1
while flag == 1:
print("请输入正确的人民币金额,小数点最多2位")
shuliang_input = input()
_is_renminbi_account(shuliang_input)
if _is_renminbi_account(shuliang_input):
flag = 0
else:
flag = 1
_toForeignDollars_(float(shuliang_input))
Python函数的应用--汇率转换函数示例(第九章)
于 2022-04-09 19:28:38 首次发布