ad

《Python学习笔记 从入门到实战》_更了解Python的途径之一_6.4 变量的作用域

网友投稿 66 2023-11-07

【摘要】 本书摘自《Python学习笔记 从入门到实战》一书中第6章,第4节,由张学建编著。

6.4 变量的作用域

6.4.1 三种变量作用域

Python 三种变量作用域的具体说明如下所示。

●局部作用域:定义在函数内部的变量拥有一个局部作用域,表示只能在其被声明的函 数内部访问。

●全局作用域:定义在函数外的拥有全局作用域,表示可以在整个程序范围内访问。在 调用一个函数时,所有在函数内声明的变量名称都将被加入到作用域中。

《Python学习笔记 从入门到实战》_更了解Python的途径之一_6.4 变量的作用域

●内置作用域: Python 预先定义的。

注意:既然定义在函数内部的变量拥有一个局部作用域,那么每当执行一个 Python 函 数时,都会创建一个新的命名空间,这个新的命名空间就是局部作用域。如果同一个函数在 不同的时间运行,那么其作用域是独立的。不同的函数也可以具有相同的参数名,其作用域 也是独立的。在函数内已经声明的变量名,在函数以外依然可以使用。并且在程序运行的过 程中,其值并不相互影响。

6.4.2 使用变量作用域

例如在下面的实例代码中,演示了在函数内外都有同一个名称的变量而互不影响的过程。

实例6-12:使用相互不影响的同名变量

源码路径:下载包\daima\66-12

在上述代码中,在函数中声明了变量 a, 其值为整数类型。在函数外声明了同名变量 a, 其值为字符串。在调用函数前后,函数外声明的变量a 的值不变。在函数内可以对a 的值进 行任意操作,它们互不影响。执行后会输出:

全局作用域a:external

在上述实例代码中,因为两个变量a 处于不同的作用域中,所以相互之间不影响,但是 如果将全局作用域中的变量作为函数的参数引用,则就变成了另外的情形,但这两者不属于 同一问题范畴。

另外,还有一种方法使函数中引用全局变量并进行操作,如果要在函数中使用函数外的 变量,可以在变量名前使用关键字 global 。例如在下面的实例代码中,演示了使用关键字 global 在函数内部使用全局变量的过程。

实例6-13:使用关键字 global 在函数内部使用全局变量

源码路径:下载包\daima\6\6-13

6.5.1 访问列表中的元素

例如在下面的实例中,假设有一个“我的好友”列表,要想访问列表中的每位用户。将

一个名字列表传递给一个名为users) 的函数,通过这个函数问候列表中的每个好友。

实例6-14:定义函数 users) 并问候列表中的每个好友

源码路径:下载包\daima\6\6-14

实例文件 userspy 的具体实现代码如下所示。

msg="Hello,"+name.title()+"!" print(msg)

usernames = ['雨夜','好人','落雪飞花 ']

users(usernames)

#设置问候语msg 的 值

#打印显示问候语 msg

#设置参数列表值

井调用函数 users()

在上述实例代码中,将函数 users) 定义成接受一个名字列表的函数,并将其存储在形参 names 中。通过这个函数遍历传递过来的列表,并对其中的每位用户都发送一条问候语。在 第6行代码中定义了 一个用户列表usernames, 然后调用函数users(),并将这个列表传递给它。

执行后会输出:

Hello,雨夜!

Hello, 好人!

Hello, 落雪飞花!

6.5.2 在函数中修改列表

在 Python 程序中,当将列表信息传递给函数后,函数就可以对其进行修改。通过在函 数中对列表进行修改的方式,可以高效地处理大量的数据。例如在下面的实例中,假设某个 用户需要拷贝自己的普通好友列表,复制后移到另一组名为“亲人”的QQ 分组列表中。

实例6 - 15:定义函数 copyO 并复制好友到“亲人”分组

源码路径:下载包\daima\6\6-15

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 [email protected] 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:达人之路·《高效办公应用宝典公式·函数与VBA》_6.3.1 MAX函数找出最大值
下一篇:跟着一起学《Excel VBA跟卢子一起学 早做完 不加班 基础入门版》_1.2.3 宏的录制
相关文章

 发表评论

暂时没有评论,来抢沙发吧~

×