Python函数的应用--汇率转换函数示例(第九章)



# 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,python)