标签:函数 形参 python print add 期末 第六章 total def
第六章 函数
6.2定义函数
def定义函数
def add():
def add_modify(a, b):
result = a + b
print(result)
调用函数
l函数在定义完成后不会立刻执行,直到被程序调用时才会执行。
函数名([参数列表])
add()
add_modify(10, 20)
函数内部也可以调用其他函数,这被称为函数的嵌套调用。
def add_modify(a, b):
result = a + b
add()
print(result)
add_modify(10, 20)
6.3函数参数的传递
通常将定义函数时设置的参数称为形式参数(简称为形参),将调用函数时传入的参数称为实际参数(简称为实参)。函数的参数传递是指将实际参数传递给形式参数的过程。
函数参数的传递可以分为位置参数传递、关键字参数传递、默认参数传递、参数的打包与解包以及混合传递。
函数打包
“*” —— 接收以元组形式打包的多个值
“**”—— 接收以字典形式打包的多个值
In [1]: val = 1, 2, 3, 4
In [2]: type(val)
Out[2]: tuple
In [3]: val
Out[3]: (1, 2, 3, 4)
关键字参数的传递
关键字参数的传递是通过“形参=实参”的格式将实参与形参相关联,将实参按照相应的关键字传递给形参。
使用符号“/”来限定部分形参只接收采用位置传递方式的实参。
默认参数的传递
函数在定义时可以指定形参的默认值,如此在被调用时可以选择是否给带有默认值的形参传值,若没有给带有默认值的形参传值,则直接使用该形参的默认值。
混合传递
def test(a, b, c=33, *args, **kwargs):
print(a, b, c, args, kwargs)
test(1, 2)
test(1, 2, 3)
test(1, 2, 3, 4)
test(1, 2, 3, 4, e=5)
函数的返回值
函数中的return语句会在函数结束时将数据返回给程序,同时让程序回到函数被调用的位置继续执行。
如果函数使用return语句返回了多个值,那么这些值将被保存到元组中。
#角谷猜想
n = int(input("请输入一个正整数:"))
while n != 1:
if n % 2 == 0:
k = n / 2
print("%d/2=%d" %(n, k))
n = k
else:
l = n * 3 + 1
print("%d*3+1=%d" %(n, l))
n=l
#模拟超市收银
price=float(input("请输入商品单价:"))
if(price<0):
print("输入不合法!")
amount=int(input("请输入商品数量:"))
total_price=price*amount
print(total_price)
if(total_price>=500):
total_price1 = total_price * 0.8
print(total_price1)
else:
total_price1 = total_price
print(total_price1 )
payment=int(input("请输入付款金额:"))
margin=payment-total_price1
if (margin>0):
print("找零"+str(margin))
else:
print("余额不足!")
6.7递归函数
函数在定义时可以直接或间接地调用其他函数。若函数内部调用了自身,则这个函数被称为递归函数。
递归函数的执行可以分为:
1.递推:递归本次的执行都基于上一次的运算结果。
2.回溯:遇到终止条件时,则沿着递推往回一级一级地把值返回来。
def函数名([参数列表]):
if 边界条件:
rerun 结果
else:
return 递归公式
标签:函数,形参,python,print,add,期末,第六章,total,def 来源: https://blog.csdn.net/qq_61377573/article/details/122029703
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。