1、自定义函数(重点) 用法:def 函数名(参数1,参数2,参数3): 函数体 return 语句 例子: (1)def greet(name): (2) print(name+‘你好’) (3) return (4)greet('小明') 解示:第(1)行代码定义了一个叫greet的函数,并且有一个参数name;进行传递;第(2)行代码是实现了该函数的功能,也就是打印出语句 第(3)行代码返回了函数的值;第(4)行代码调用了函数,并有一个参数进行传递 ***注意 (1)函数的使用是必须是先定义,后调用,如第(4)行代码; (2)函数的参数问题,若函数定义时带有参数,而调用函数时没有带上参数,则会报错;例如第(4)行代码,如果没有把'小明'这参数给带上 则会报错,因为第(1)行代码的name没有参数传递给它,以致无法运行下面的代码 (3)当return没有写上值时,会默认返回None,也就是说第(3)行代码其实是return None (4)greet('小明')中的小明叫做实参数,def greet(name)中的name叫做形参数 2、函数的调用(重点) 用法1:函数名(参数) 例子: (1)def greet(name): (2) print(name+‘你好’) (3) return (4)greet('小明') ***上面已经解析过就不在解析了 用法2:函数名() 例子: (1)def greet(): (2) print(‘你好’) (3) return (4)greet() 解示:该例子和上一个例子不一样的是,不需要参数进行传递,所以当定义函数时,如果有参数,调用函数时也需要附上给参数所带的值 3、函数的参数传递 用法1:位置实参 例子: (1)def pet(name,age): (2) print('我的宠物名字叫'+name) (3) print('我的宠物年龄是'+'age') (4)pet('老王',5) 解示:第(4)行代码调用了pet的函数,并给pet函数传递了两个实参数,一个是'老王',一个是5;分别传给了pet函数中的name和age两个形参 ****注意,位置实参传递是一一对应的,需要考虑函数调用中的实参顺序 用法2:关键字实参 例子: (1)def pet(name,age): (2) print('我的宠物名字叫'+name) (3) print('我的宠物年龄是'+'age') (4)pet(age=5,name='老王') 解示:该例子与上面的例子有点不太一样,关键字实参可以让你无需考虑函数调用中的实参顺序 用法3:默认值 例子: (1)def pet(name,age,weight=20): (2) print('我的宠物名字叫'+name) (3) print('我的宠物年龄是'+'age') (4) print('我的宠物体重是'+'weight'+'斤') (5)pet('老王',5) 解示:该例子与上面的两个例子有点不太一样,在第五行调用函数时,并没有给weight形参传递参数,但依旧是可以正常运行,是因为在定义函数时, 形参weight已经被赋值为20,所以无需再调用函数时给weight参数传参值 用法4:不定长参数 例子: (1)def menu(*barbeque): (2) print(barbeque) (3)menu('烤鸡翅','烤茄子','烤玉米') 解示:首先不定长参数的标志是'*',而且打印出来的结果是(烤鸡翅,烤茄子,烤玉米),这是一个元组 4、返回值 用法:返回简单值 例子: (1)def pet(name,age): (2) pet_message=name+''+'age' (3) return pet_message (4)dog=pet('老王',5) (4)print(dog) 解示:通过return语句将结果返回到函数中的第(4)代码行中,调用返回值的函数时,需要提供一个变量,用于存储返回的值; 在例子中,通过定义变量pet_message来存储name和age ****注意 (1)当执行了return函数时,程序会终止运行下去 (2)函数可返回任何类型的值,包括列表和字典等较复杂的数据类型 5、变量的作用域 (1)全局变量和局部变量 例子: (1)x=99 (2)def num(): (3) x=88 (4) print(x) (5)print(x) (6)num() 解示: 1、第一行代码为全局变量,第(3)行代码为局部变量 2、局部变量的作用域只限在函数里面,全局变量可以给局部变量使用 3、打印的结果分别是99,88 ****知识拓展 1、若在函数中局部变量想修改全局变量,则要在前面加上global 例子: (1)x=99 (2)def num(): (3) global x=88 (4) print(x) (5)print(x) (6)num() 打印结果为88,88 2、当函数内的变量和全局变量名重合时,例如以上例子的第(1)行代码和第(3)行代码,则python中会默认第(3)行代码为局部变量 3、当使用for和while循环时,不用使用global也可以用局部变量来修改全局变量 例子: (1)i=0 (2)while <2: (3) i=i+1 (4)print(i) 打印的结果为2 |
|
来自: Four兄 > 《Python笔记》