Python函数,,一、函数的作用1、减


一、函数的作用

1、减少重复代码

2、方便修改,更易拓展

3、保持代码一致性

二、函数格式

def 函数名 ():

函数体

三、函数名的命名规则:

1、函数名必须以下划线或字母开头,可以包含字母、数字或下划线的任意组合,不能使用任何的标点符号。

2、函数名区分大小写

3、函数名不能是保留字

四、调用

函数名()

五、函数参数

1、直接参数

在定义函数时将形参放在括号内。即def 函数名 (形参1 ,形参2,……)

def function (name ,age ): #定义函数

print(‘name is %s,age is %s‘%(name,age) #函数内容

function(‘tom‘,‘18‘)           #调用函数,结果为name is tom,age is 18

2、关键字参数

def function (name ,age ): #定义函数

print(‘name is %s,age is %s‘%(name,age) #函数内容

function(age=‘18‘,name=‘tom‘)        #调用函数,给形参赋值后,在传递形参值时,不用一一对应。结果为name is tom,age is 18

3、默认参数

def function (name ,age ,sex=‘man‘):

print(‘name is %s,age is %s,is %s‘%(name,age,sex))

function(age=‘18‘,name=‘tom‘) #sex的值为默认值‘man’, name is tom,age is 18,is man

function(‘jim‘,‘20‘) # sex的值为默认值‘man’, name is jim,age is 20,is man

function(‘anna‘,‘20‘,‘woman‘) #sex的值为新赋值‘women’ ,name is anna,age is 20,is woman

4、可变长参数

a)通过将参数转化为元组实现可变长

参数前加一个“ * ”。

def add (*add): #定义函数add

print (add)   #函数内容

add (1,2,3) #调用函数。结果为(1, 2, 3)

b) 通过将参数转化为字典实现可变长

参数前加一个“ ** ”。如果是混合参数(既有元组转换的可变长参数,又有字典转换的可变长参数)时,需要将两种参数分开传递且元组转换的可变长参数必须放在前边,字典转换的可变长参数必须放在后面,如下:

def add (*add,**args): #定义函数

print (add,args) #函数内容

add (1,2,3,job=‘IT‘,hobby=‘sing‘) #调用函数(1, 2, 3){‘job‘: ‘IT‘, ‘hobby‘: ‘sing‘}

六、return

1、Return作用:

a) 结束函数

b) 返回某个对象

2、设置return值

def add (*addS):  #定义函数add
 Sum = 0#定义函数内容
 for i in addS:
 Sum += i
 return Sum #设置返回值
A=add (1,2,3) #调用函数。并把返回值赋给A
print(A)#6
注意:
1.函数里如果没有return,会默认返回一个None。
2.如果return多个对象,那么Python会帮我们把多个对象封装成一个元组

七、nonlocal和global

Python中的作用域分4种情况:

L:local,局部作用域,即函数中定义的变量;

E:enclosing,嵌套的父级函数的局部作用域,即包含此函数的上级函数的局部作用域,但不是全局的;

G:global,全局变量,就是模块级别定义的变量;

B:built-in,系统固定模块里面的变量,如int,byrearray等。搜索变量的优先级顺序依次是:局部作用域>外层作用域>当前模块中的全局变量>Python内置作用域,也就是LEGB.

x = int (2.9)    #int built-in
g_count = 0 #global
def out ():
o_count = 1 #enclosing
def inner_1():
i_count =2 #local

在函数外定义的变量为全局变量,在函数内定义的变量,如无特殊说明则为局部变量。在函数内可以调用全局变量但不可以更改全局变量的值。如需更改全局变量的值,则需在变量前加global声明是全局变量。

如果定义函数时又定义了内层函数,则需要用nonlocal声明。

conut=0
def outer():
conut=10
#print(conut)
def inner():
nonlocal conut
conut = 20
print(conut)
#return conut
inner()
outer()

Python函数

评论关闭