【连载】《零基础学Python》笔记(二)
摘要:《零基础学Python》一书的学习记录,学习笔记。(连载之二)
回顾:昨天主要学习了Python的编码规范,包括命名上的规范,缩进的意义,正确的注释该如何打,两种特殊的注释,分隔两条语句的常用方法。以及Python的三种文件类型,在现阶段只用关注拓展名为py的源文件即可,可用文本编辑工具进行修改,是我们写代码的地方。
变量和常量
变量是计算机内存中的一块区域,变量可以存储任何值,而且值可以改变。常量是一块只读的内存区域,常量一旦初始化就不能修改。
变量的命名
变量由字母、数字、下划线组成;且第一个字符必须为字母或下划线。
变量的赋值
对于Python来说,使用变量不需要提前声明,赋值的操作就是变量声明和定义的过程。
局部变量
局部变量是只能在函数或代码段内使用的变量。只在其被创建的函数内有效,函数或代码段一旦结束,局部变量的生命周期也就结束。
全局变量
全局变量是能够被不同的函数、类或文件共享的变量,在函数之外定义的变量都可以称为全局变量。全局变量可以被文件内部的任何函数和外部文件访问。
通过下面这张图,我们来详细理解一下关于局部变量与全局变量:
首先,在文件的开头,定义了两个全局变量_a
和_b
,然后定义了三个函数,最后打印函数的值;先看第一个print语句,打印出函数no_1()
的值,在函数内部,可以直接访问到全局变量的值,因此最后返回1+2的值,为3;接下来,执行函数no_3()
,global _a
意为,该函数内的_a 变量为全局变量,表面上与上一个无异;接下来,执行函数no_2()
,该函数中,_a为全局变量的_a,_b没有global关键字的声明,为局部变量,将_a、_b分别重新赋值9和1后,执行相加的操作,因此返回10;在上一步骤中,_a经global关键字声明,为全局变量,因此全局变量_a
的值为9,而_b
为局部变量,修改它的值为1只在函数内部发挥作用,因此此时全局变量_a
、_b
的值分别为9和2,为验证这一结果,再度调用函数no_3()
,可以看到输出值为11。
所以变量名相同的两个变量可能不是同一个变量,变量的名称只是起标识作用;变量出现的位置不同,变量的含义也不相同。
提示:尽量避免使用全局变量。因为不同的模块都可以自由访问全局变量,可能会导致全局变量的不预知性。并且,全局变量降低了函数或模块之间的通用性,不同的函数或模块都要依赖于全局变量。在许多场合我都注意到许多书的作者亦或是博主都建议减少全局变量的使用,初学阶段暂时不需要太过严格,过于死板反而会降低学习兴趣,随着阅历的增长,自然而然会走向更加有利的习惯上。
常量
在很多高级语言中都会提供常量的关键字用来定义常量,如c++中的const,java中的final,但是Python语言因为变量无类型,所以也就不存在这样的修饰符。常量通常用大写来表示。