Python基础教程

第一章: 环境搭建,安装Python

第二章: 挑选一款趁手的IDE

第三章: 计算机基础知识

第四章: 命令行基础知识

第五章: 从全局把握Python

第六章: Python语言基础

第七章: Python流程控制

第八章: Python数据类型与运算

第九章: Python字符串类型

第十章: Python列表类型

第十一章: Python元组类型

第十二章: Python字典类型

第十三章: Python集合类型

第十四章: Python函数处理

第十五章: Python文件处理

第十六章: Python面向对象

第十七章: Python异常处理

第十八章: Python模块处理

第十九章: Python高级编程

第二十章: Python项目实战

首页 > Python基础教程 > 第六章: Python语言基础 > 6.1节: 变量的定义与命名

6.1节: 变量的定义与命名

薯条老师 2020-04-21 15:10:59 237442 5

编辑 收藏

6.1.1 变量的概念

初学者在进入编程世界的奇幻森林以后,首先会遇到的障碍是变量。在Python中定义变量很简单,一个变量名,一个等号,一个值,即可定义一个变量:

变量名=值
但是把变量理解得清清楚楚,却要费一番功夫。那么,变量到底是什么?

初学者可以把变量理解为一个容器, 比如在平常生活中见到的瓶瓶罐罐。这些瓶瓶罐罐最主要的用途是盛装物品。

变量既然是一种容器,那么也具备容器的这种特性,在计算机程序中,变量用来存储数据。其次变量是一直在变化的,但变化的是容器里面的数据。例如用来盛装物品的瓶瓶罐罐,瓶瓶罐罐是不会变的,变化的只是瓶子里的物品。在程序中,将变量赋值给其它的变量,就好比将瓶子里的物品转存到其它的瓶子中。关注薯条老师微信公众号[薯条编程],免费领取Python, 爬虫,数据分析,机器学习,深度学习的Python学习资料。

image.png

将瓶子里的物品全部转存到其它的瓶子中,原先的瓶子变成了空瓶子。但在计算机程序中,只是将变量指向的值复制一份,并不会清空变量指向的值。

6.1.2 变量的命名

(1) 命名规则
人有其名,变量亦如是。变量如果没有名称,那么在程序中便无法进行引用。例如同时定义了两个未命名的变量,在代码中如何对匿名变量进行引用,就是一个问题。人的姓名,有其约定俗成的取名规则,通常以姓氏和名字来进行取名。编程语言中的变量,同样有它的一套命名规则。Python语言中变量的命名规则:
变量名称通常以26个英文字母(大小写皆可), 数字和下划线_进行组合 变量名称的首位字符不能是数字 变量名称不能使用系统预定义的关键字

Python中的关键字是保留给Python使用的,所以不能再使用关键字进行命名。在后文介绍交互模式时,会再进行讲解。在交互模式中执行help("keywords")来查看系统预定义的所有关键字。在Python3中,可以使用汉字等UTF-8字符来为变量进行命名。

变量名须遵守编程语言中的命名规则,否则无法运行。合法的变量名并不代表是一个好的变量名。一个好的变量名,通常使用英文单词来进行命名,不宜过长,须有一定的含义,可读性较强。不注意变量的命名,甚至随意命名,这是初学者的通病。
(2) 命名举例
合法的变量名:
name, title, content
非法的变量名:
1name,?title,while
在这三个非法的变量名中,第一个变量名的首字符是数字,第二个变量名中的首字符是非法字符,第三个变量名中包含了非法字符。此外,这里有一个很重要的细节,变量名在Python中是区分大小写的,这意味着Name与name表示的是不同的变量。
(3) 命名风格
在追求多元化的后现代主义中,“个性自由”,“自成体系”,“批判权利”成了追随者的一系列独特标签。但在团队开发中,追求多元化却经常导致混乱。使用统一的命名风格,能提升项目代码的整体可读性,可读性愈强,则项目愈容易维护。常用的三种变量命名风格:
驼峰式命名法,混合式命名法,下划线式命名法
在驼峰式命名法中, 单词的首字母都为大写。
大驼峰式命名法举例:
PriceOfLove
在小驼峰式命名法中,变量的首个单词全为小写,其它单词的首字母都为大写.
小驼峰式命名法举例:
priceOfLove
而所谓的下划线命名法,即是以下划线将单词连接起来,单词一般为小写。
下划线命名法举例:
price_of_love
在Python中,变量名通常采用小写形式,大驼峰式命名法则用来对类类型进行命名。更多的命名规范,感兴趣的读者可以参考著名的PEP8规范

6.1.3 变量的定义

在Python中使用变量,需要先对变量进行定义,否则在程序运行过程中会抛出“变量未定义”的错误异常。在Python中定义变量很简单,使用赋值操作符来定义变量:
total = 66

代码中的等号即赋值操作符,total是一个变量,而1314是一个整数对象。同学们要注意,赋值是按从右往左的顺序来赋值,且赋的值是对象的地址。变量在储存了对象的地址以后,就可以通过对象的该地址来引用和操作对象。

在Python中用地址来唯一地标识一个对象。这里的地址,可将其类比为人的身份证编号。我们的身份证编号是唯一的,对象的地址同样是唯一的。

amount = total

上文的赋值是将变量total储存的地址再赋值给变量amount。程序执行后,变量amount与total储存的是相同的地址,也即,它们都在引用对象66。为测试变量amount保存的地址是否与total保存的一致,我们可以调用Python内置的id函数来获取对象的地址:

"""
@author: 薯条老师
@desc: 调用id函数获取变量储存的对象地址
"""

magic_no = 1314
number = magic_no
print(id(magic_no))
print(id(number))

6.1.4 变量存储的是地址

(1) 理解内存地址
所谓内存地址,其实质是一个编号。在计算机中,可将内存视为一个很大的字节数组,这个数组从0开始按序进行了编号。下图是内存在计算机中的逻辑结构:

1588231872(1).jpg

图中的编号即为内存地址。每个格子表示大小为一个字节的内存块。假设值66所在的内存编号为2,那么这个2就是66的内存地址。

total = 66
变量total实质保存的是值66的内存地址:2。将变量total赋值给变量amount时,Python主要做了以下两步:
一:从total这个变量中取出66的内存地址2
二:将66的内存地址2赋值给变量amount
最终变量total和amount保存的都是同一个内存地址,也就是说,它们指向的是同一块内存中的数据。

image.png

(2) 查看内存地址

在Python中可以通过内置函数id来输出变量或值的内存地址。直接将变量或值作为参数传递给id函数即可。例如:

total =  66
amount = total
# 将值作为参数传递给id
id(66)
# 将变量作为参数传递给id
id(amount)
id(total)

在6.5节中会介绍Python中的交互模式,届时在交互模式中演示如何通过id函数查看变量或值的内存地址。

6.1.5 最具实力的小班培训

薯条老师在广州有开设线下培训班,小班授课模式,一班最多6个人。也可一对一授课,全程帮助你学好计算机,实现高薪就业。不在广州的同学可提供住宿,也可以报名线上小班,用腾讯会议上直播课。

(1) Python后端工程师高薪就业班,月薪11K-18K,免费领取课程大纲
(2) Python中高级爬虫逆向工程师就业班,月薪15K-25K,包拿Offer
(3) Python数据分析+商业分析+数据科学就业班,企业级项目实战,月薪10K-20K
(4) Python量化交易就业班,A股+期货+数字货币量化,月薪10K-40K
(5) Python机器学习+深度学习算法工程师,月薪20-50K

跟薯条老师学习的学生有拿到花生日记,林氏家居,南方电网,京东, 阿里等公司的offer, 学生的最低薪资有6K,最高薪资有18K, 平均就业薪资有11000。

扫码咨询薯条老师:

扫码领学习资料.jpg


已有5位薯条发表了看法:

  • 访客

    访客  评论于 2020-05-04 16:54:49  回复

    是定义还是赋值 有点懵 在python中每个变量必须要有初始值吗?通过值确定变量类型?

    • 薯条老师

      薯条老师  评论于 2020-05-05 14:45:10  回复

      既是定义也是赋值,如果定义时未赋初值,Python解释器会将其视为一个未定义的变量。

  • 访客

    访客  评论于 2020-07-02 04:27:37  回复

    太好了!

  • 访客

    访客  评论于 2020-07-10 14:22:06  回复

    怎么看多少个字节

欢迎 发表评论: