今天在某个水群里看到一个题目,认识了默认参数的概念
编写函数实现人民币,美元兑换的功能
(1)函数中默认美元、人民币汇率,使用默认参数;
(2)若汇率变动,则手动输入调整;
(3)用户输入金额、汇率实现转换;
注:输入1CNY表示输入1元人民币,输入1USD表示1美元,题目被我改了,差不多就这个意思吧。。。
1.Python中的函数
Python中用def声明函数,什么是函数?额,函数就是函数呀。。。

2.默认参数
一个函数里通常都带有参数,什么是默认参数?好吧我也说不出个所以然,大概的感觉就是默认参数它本来就有自己的值,需要它的时候不用传实参就能调用,而如果传入实参则会覆盖它的默认值,举个简单的例子说明吧。
在for循环中我们经常用到range()函数,这个函数有三种调用方式,
range(a)
range(a, b)
range(a, b, c)
为什么传入一个参数可以执行,传入两个或三个参数也能执行呢?

我猜想这个函数有三个形参,其中必有两个默认参数。当传入一个参数a,则range(a)返回[0,a)区间的列表,说明第一个默认参数是0;当传入a和b两个参数,range(a,b)返回[a,b)区间递增的列表,说明第三个步长参数是默认参数,默认值是1,且a覆盖了第一个默认参数。
3.汇率转换题
了解了默认参数之后就来做题试验一下吧,让这个函数在只输入“money”这一个参数的时候,它会按照默认的美元汇率1:6.7032计算,如果输入“money”和“rate”两个参数,则会按照输入的汇率计算。
def fun(num, k=6.7032):#默认汇率k为6.7032
print("当前汇率:美元:人民币=1:", k)
try:
if num.count(' '):#以空格判断是否自定义汇率
num1, rate = num.split()#以空格为标志切片
print("=============汇率已修改==========")
fun(num=num1, k=float(rate))
else:
if num.count('CNY'):
result = float(num[:-3]) / k
print(result)
elif num.count('USD'):
result = float(num[:-3]) * k
print(result)
except:
print("请注意输入格式要求!")
if __name__ == "__main__":#主函数,调用函数看看效果
print("输入exit退出,空格添加自定义汇率")
while True:
money = input("输入数字加上CNY或USD分别标志人民币和美元:")
if money == 'exit':
break
else: fun(money)

运行效果
好像看着有点乱,输出小数点也不统一,额这都不重要。。。。。
