Python的套路—Python自定义函数(三)

目录

1、学习交流

2、内容介绍

3、理论与实操

作者:

编辑:

版本:

水...琥珀

李鑫

python3

对于新手而言,做了这么多每日一练,看了这么多历史文章中高大上的爬虫、深度学习等,怎么感觉对python仍旧没有底气呢,我掐指一算,套路缺你,亦或你缺套路,套路是什么,就是我们接下来的《Python自定义函数》教程。

对于不太新也不太老的python学习者而言,很多小伙伴应该和我一样,在自定义函数的实践方面,自己定义了成千上百了吧,这个就算没有专门学习也快要无师自通了,但是还是建议查漏补缺,比如在参数的设置方面,比如,默认参数、不定长参数,比如global调用全局变量等知识性问题。

对于老手便可选择看一下面的内容介绍,进行性阅读啦,老铁!

学习交流

关于函数的学习,之前和新入手的小伙伴交流过,他带着哭腔说Python这么多函数怎么记住呢(此处给他一个抱抱)。其实呢,Python一些特定的函数,使用频率也许不高,你可以不清清楚楚地记得拼写规则,但是你要知道这个功能python有、在哪个模块下面,在用的时候能够快速的描述需求,进而找到所需。

内容介绍

Python自定义函数学习内容:

查漏补缺系统学习一下Python自定义函数,本知识点分为两个部分:

函数部分,包含1.定义一个函数语法及简单规则;2.通俗实例;3.函数调用。

参数部分,包含1. 四种参数类型介绍;2.全局变量和局部变量;3. global 和 nonlocal关键字。

本次进行函数部分。

理论与实操

(一)全局变量和局部变量

顾名思义哈,站得高看得也远,定义在函数内部的变量拥有一个局部视野(作用域),定义在函数外的拥有全局视野(作用域)。局部变量只能在其被声明的函数内部访问,而全局变量可以在整个程序范围内访问。调用函数时,所有在函数内声明的变量名称都将被加入到该函数局部作用域中。看看实例更明白呦!

(二)通俗实例

total =#这是一个全局变量

#可写函数说明

defsum( arg1,arg2 ):

#返回2个参数的和."

total = arg1 + arg2# total在这里是局部变量.且此total非彼total

print("函数内是局部变量: ",total)

returntotal

#调用sum函数

sum(10,20)

print("函数外是全局变量: ",total)

以上实例输出结果:

函数内是局部变量 : 30

函数外是全局变量 : 0

(三)global 和 nonlocal关键字

当内部作用域想修改外部作用域的变量时“越俎代庖”,或者全局变量想进入定义的函数内部 “作威作福”,这时就要用到global和nonlocal关键字了。

global 英语的意思是全球的,python用以将外部的全局变量引入到定义函数中,在全局中有一个变量已经被定义,比如在统计党员信息表的时候,政治面貌先是作为全局变量已经被定义,在自定义的函数里面也需要使用政治面貌这个变量,那就用global将政治面貌情况变量引入自定义函数。

修改或者使用全局变量实例:

num =100

deffun1():

globalnum#需要使用global关键字声明

print(num)#使用全局变量

num =123#修改变量,同时这个变量的身份是全局变量

print(num)

fun1()

print(num)

运行结果:

100

123

123

Nonlocal,英语意思非局部的,对于一个定义函数,有多个层级或者说函数嵌套函数,内部嵌套的函数想要用外层函数的变量(不是全局变量)时使用。修改嵌套作用域(enclosing 作用域,外层非全局作用域)实例:

defouter():

num =100

definner():

nonlocalnum# nonlocal关键字声明

num =1001

print(num)

inner()

print(num)

outer()

运行结果:

1001

1001

试想,如果全局变量里面也有num,那这里的结果会怎么样呢,提示要分两种情况,是否global引入

配套教学视频

本系列练习可以配合计算机二级视频一起食用,观看地址为:

https://study.163.com/course/introduction.htm?courseId=1006044085

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181202G11ELZ00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券