【零基础Python专题(源码版)】篇章6·函数
下面列举的Python的函数基础知识(三引号成对儿注释的内容为一个小知识点),可以直接在Pycharm运行学习:
#函数对存储数据结构的影响
'''def fun(arg1,arg2):
print('arg1',arg1)
print('arg2',arg2)
arg1=100
arg2.append(10)
print('arg1', arg1)
print('arg2', arg2)
n1=11
n2=[1,2,3]
fun(n1,n2)
print('n1', n1)
print('n2', n2) #说明函数的调用过程,对于可变对象list会改变内容,对于不可变对象只会开辟新的内存(这里开辟了新的内存存100)'''
#函数的返回值
'''def fun(num):
odd=[]
even=[]
for i in num:
if i%2:
odd.append(i)
else:
even.append(i)
return odd,even #多个返回值时,返回的数据结构为元组
lis=[11,20,32,43,53,67,70,80,90]
print(fun(lis))'''
#含有默认值参数的函数及其参数值的覆盖
'''def fun(a,b=10):
print(a,b)
fun(100)
fun(10,20)'''
#函数参数不定时的定义
'''# 个数可变的位置形参
def fun(*args):
print(args)
#输出为元组
fun(10)
fun(1,2,3)
fun(1,2,3,4,5)
# 个数可变的关键字形参
def fun1(**args):
print(args)
#输出为字典
fun1(a=10,b=20)'''
#函数参数不定的传入
'''def fun(a,b,c):
print('a=',a)
print('b=',b)
print('c=',c)
fun(1,2,3)
lis=[10,20,30]
#fun(lis) 会报错,但是可以转换为位置实参传入
fun(*lis)
fun(a=4,b=5,c=6)
dict={'a':1,'b':2,'c':3}
#fun(dict) 会报错,但是可以转换为关键字实参传入
fun(**dict)
def fun1(a,b,c,d):
print('a=',a)
print('b=', b)
print('c=', c)
print('d=', d)
fun1(1,2,3,4) #按位置形参传入
fun1(a=1,b=2,c=3,d=4) #按关键字形参传入
fun1(1,2,c=3,d=4) #位置和关键字混合传入
# 如果说只允许c,d使用关键字形式传入的话,需要函数在需要要求限制的参数前面加*
def fun2(a,b,*,c,d):
print('a=',a)
print('b=', b)
print('c=', c)
print('d=', d)
#fun2(1,2,3,4) #后两个不是关键字传入的方式,所以会报错
fun2(1,2,c=3,d=4) #位置和关键字混合传入'''