分享

第9关笔记

 Four兄 2019-08-24

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

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多