码迷,mamicode.com
首页 > 其他好文 > 详细

函数基础

时间:2018-08-12 12:17:31      阅读:149      评论:0      收藏:0      [点我收藏+]

标签:关键字实参   3.3   特点   code   use   依赖   int   表示   内置函数   

函数基础 使用:先定义后调用 分类: 1.内置函数: 2.自定义函数: 语法:def 函数名(参数1,参数2,...): ‘‘‘注释信息‘‘‘ 函数体 return #返回值 def auth(): name=input(‘name>>:‘).strip() password=input(‘password>>:‘).strip() if name == ‘abc‘ and password == ‘123‘: print(‘login successfull‘) else: print(‘user or password err‘) auth() 3.定义函数的三种形式: (1):无参函数 (2):有参函数 (3):空函数 有参函数: def auth(name,password): if name == ‘abc‘ and password == ‘123‘: print(‘login successfull‘) else: print(‘user or password err‘) 无参函数: def inter(): name=input(‘name>>:‘).strip() password=input(‘password>>:‘).strip() auth(name,password) inter() 空函数: def suh(): pass 返回值: #return函数内可以有多个return,但是只能执行一次return,执行return函数就立即结束,并且return的后值当做本次调用的结果返回。 #返回的值没有类型限制,可以是列表,字符串,等等 def fuf(x,y): return x+y res=fuf(1,2) print(res) 没有return默认返回None 返回多个值:结果返回一个元组 def fuf(): pass return 1,‘a‘,[1,2] print(fuf()) (1,‘a‘,[1,2]) 4.函数调用的三种形式: def my_max(x,y): if x >= y: return x else: return y res=my_max(1,2)*10 pinrt(res) 30 res2=my_max(my_max(1,2),3) print(res2) 3 5.函数的参数分类: 1.形参:在定义阶段括号内指定的参数,相当于变量名 2.实参:在调用阶段括号内传入的值称之为实参,相当于变量的值 在调用阶段,实参的值会绑定给形参,在调用结束后解除绑定 def foo(x,y): #x,y为形参 print(x,y) foo(1,2) #1,2为实参 1.位置参数:按照从左到右的顺序依次定义的参数。用于经常变化的参数 位置形参:必须被传值,多一个少一个都不行 位置实参:与形参一一对应传值 2.关键字参数:在函数调用时,按照key=value的形式定义的实参 特点:不再依赖与位置的限制 def foo(x,y): print(x,y) foo(y=1,x=2) 注: 关键字实参和位置实参混合使用时,关键字实参必须在位置实参的后面,不能为同一个形参赋多个值。 3.默认参数:在函数定义阶段,就已经为形参赋值了。用于不常变化的参数 def foo(x,y=1): print(x,y) foo(1) 1 1 foo(1,2) 1 2 注: 3.1:默认参数必须放在位置形参的后面 3.2:默认参数的值只在定义是被赋值一次 res=1 def foo(x,y=res): print(x,y) res=10 foo(‘a‘) a 1 3.3:默认参数的值通常应该是不可变类型。 4.可变长参数,在调用函数时,实参值的个数不固定 实参的形式:位置形参和实参用*表示,关键字形参和实参用**表示 def foo(x,y,*args): #args=(3,4,5) args为元组 print(x,y) print(args) foo(1,2,3,4,5) foo(1,2,*[3,4,5]) #foo(1,2,3,4,5) foo(*(1,2,3,4,5)) #foo(1,2,3,4,5) def foo(x,y,**kwargs): #kwargs={‘c‘:5,‘a‘:3,‘b‘:4} kwargs为字典 print(x,y) print(kwargs) foo(y=2,x=1,a=3,b=4,c=5) foo(y=2,**{‘x‘:1,‘a‘:3,‘b‘:4,‘c‘:5}) #foo(y=2,x=1,a=3,b=4,c=5) def bar(x,y,z): print(x,y,z) def war(*args,**kwargs): #args=(1),kwages={‘z‘:2,‘y‘:3} bar(*args,**kwargs) #bar(*(1),**{‘z‘:2,‘y‘:3}) #bar(1,z=2,y=3) foo(y=2,x=1,a=3,b=4,c=5) war(1,z=2,y=3) 5.命名关键字参数: 定义在*后的参数,该参数必须被传值(除非他有默认值了),而且必须按照key=value的形式传值 def foo(x,y,*,m,n): #m,n为命名关键字形参 print(x,y) print(m,n) foo(1,2,m=3,n=4) foo(1,2,3,m=3,n=4)

函数基础

标签:关键字实参   3.3   特点   code   use   依赖   int   表示   内置函数   

原文地址:http://blog.51cto.com/13399294/2158282

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!