学习Python函数

#定义函数
def functionname(参数,,):
    '''comments'''
    functionbody
functionname 参数名
comments (可选参数为函数指定注释,注释内容通常是函数的功能)
函数体和 注释 要相对def保持一定的缩进
定义一个什么也不做的空函数用pass语句作为占位符

函数的返回值leix类型与return 语句返回表达式的类型一致。无论return语句出现在什么位置,一旦执行,将结束函数运行。

如果函数没有return语句,或者执行了不含有任何值的return语句Python认为该函数以return None。

参数之间用逗号分隔。

在函数内部对形参的修改并不会影响实参。

当传递的参数是Python的可变序列,并在函数内部使用下标或序列自身支持的方式为可变序列增加元素,删除元素或修改元素值时,修改的结果是可以反映到函数之外的,即实参也得到了相应的修改。

def m(v):
	v[0]+=1
a=[2]
>>> m(a)
>>> a
[3]
>>> def m(v,i):
	v.append(i)

	
>>> a=[1]
>>> m(a,'哈')
>>> a
[1, '哈']
>>> 

默认值参数:在定义函数时为形参设置默认值。在调用有默认参数函数函数时,可以不用为设置了默认值的参数进行传值。

也可以显式的赋值。

def funcname('''',形参名=默认值):

    函数体

def say(message,time=1):
    print((message+'')*time)
    
a= say.__defaults__
print(a)

(1,)

def say(message,time=1):
    print((message+'')*time)

a= say.__defaults__
print(a)
say("你好")
say("mmp", 3 )

(1,)
你好
mmpmmpmmp
在定义有默认值参数的函数时,默认值参数必须出现在函数形参列表的最右端,任何默认值参数的右边都不能再出现非默认值参数。

def demo(newitem,old_list=[]):
    old_list.append(newitem)
    return old_list

print( demo('5',[1 , 2 , 3 , 4]))
print(demo('aaa',['a','b']))
print(demo('a'))
print(demo('b'))
#由于可记忆性连续调用该函数却不给该参数赋值,再次调用将保留上一次调用的结果,可能导致错误。
def demo1(newitem,old_list=None):
    if old_list is None:
        old_list=[]
    old_list.append(newitem)
    return old_list

[1, 2, 3, 4, '5']
['a', 'b', 'aaa']
['a']
['a', 'b']
关键参数:调用函数时的参数传递方式,与函数定义无关。这样可以按参数名字传递,实参顺序和形参顺序可以不一致,但是不影响参数的传递。

def demo(*p):
    print(p)
#接受任意多的实参,并将其放到元组中
def demo(**p):
    print(p)
#接受任意多的实参显式赋值,放入字典中。
def demo(a,b,c=5):
    print(a,b,c)
demo(3,7)
demo(a= 7,b=3, c=6)
demo(c= 8,a= 9,b=0)

结果:
3 7 5
7 3 6
9 0 8
def demo(*p):
    print(p)
demo(1,2,3)
def demo1(**p):
    for item in p.items():
        print(item)
demo1(x=1,y=2,z=3)

(1, 2, 3)
('x', 1)
('y', 2)
('z', 3)

def demo(*p):
    print(p)
demo(1,2,3)
def demo1(**p):
    print(p)
demo1(x=1,y=2,z=3)

(1, 2, 3)
{'x': 1, 'y': 2, 'z': 3}
 

传递参数时序列解包:

>>> seq=[1,2,3]
>>> demo(*seq)
6
>>> tup=(1,2,3)
>>> demo(*tup)
6
>>> dic={7:'a',8:'b',9:'KKK'}
>>> demo(*dic)
24

 

>>> def demo(a,b,c):
    print(a+b+c)

    
>>> Set={1,5,9}
>>> demo(* Set)
15
>>>

字典作为实参时默认使用字典的键,如果要将字典的   键:值 元素作为参数则需要使用items()方法明确说明

如果要将 字典中   值   作为参数则要调用字典的   values () 方法进行说明

实参中 元素的个数与形参的个数必须相等。

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值