【变量与常量】
【一】注释语法
【1】什么是注释
- 注释就是对代码的解释,注释内容不会被当成代码参与运行
【2】为什么要注释
- 增强代码的可读性(更容易理解代码)
【3】如何使用注释
- 代码注释分单行和多行注释
- 单行注释用 ‘ # ’ ,注释内容加在 ' # ' 后,可以跟在代码的正上方或者正后方
- 多行注释用三对引号(单或双)''' ''' , """ """
【4】代码注释的原则
- 不用全部加注释,只需要为自己觉得重要或者不好理解的地方加上注释即可
- 注释可以用中文或者英文,不要用拼音
【二】变量
【1】什么是变量
- 变量就是可以变化的量,用于记录物体的变化状态。
- 比如人的年龄、性别。
- 变量是用于存储数据值的标识符,可以通过变量名来访问和调用这些数据
- 在程序中,变量就像容器,用于储存和管理这些数据
【2】为什么要有变量
- 变量的存在使得程序能够更加灵活地处理数据,而不是每次都硬编码数据值
- 通过使用变量,程序可以在运行时根据需要存储和修改数据,从而实现动态的状态和行为。
- 为了让计算机能够像人一样去记忆事物的某种状态,并且状态是可以发生变化的
- 变量在程序中扮演着存储和传递信息的角色
- 程序执行的本质就是一系列状态的变化,变是程序执行的直接体现
- 所以我们需要有一种机制能够反映或者说是保存下来程序执行时状态,以及状态的变化
【3】变量的定义与调用
- 变量的定义由三部分组成,如下图
-
定义规范示例
# 用一个变量 name 保存名字 叫 Dream name = 'Dream' # 用一个变量 sex 保存性别 是 男 sex = '男' # 用一个变量 age 保存年龄 是 18 age = 18 # 用一个变量 age 保存薪资 是 22800.21 salary = 22800.21
-
解释器执行到变量定义的代码时会申请内存空间存放变量值
- 然后将变量值的内存地址绑定给变量名
- 以变量的定义age=18为例,如下图
- 通过变量名即可引用到对应的值:
- 通过变量名即可引用到值,我们可以结合print()功能将其打印出来 print(age)
- 通过变量名age找到值18,然后执行print(18),输出:18
# 用一个变量 name 保存名字 叫 Dream
name = 'Dream'
# 用一个变量 sex 保存性别 是 男
sex = '男'
# 用一个变量 age 保存年龄 是 18
age = 18
# 用一个变量 age 保存薪资 是 22800.21
salary = 22800.21
print(age) # 18
【4】变量的命名规范
-
如果我们要存储的数据18代表的是一个人的年龄,那么变量名推荐命名为:
- age = 18
-
如果我们要存储的数据18代表的是一个人的等级,那么变量名推荐命名为:
- level = 18
-
其他的命名规范如下
- 变量名只能是 字母、数字或下划线的任意组合
- 变量名的第一个字符不能是数字
- 关键字不能声明为变量名,常用关键字如下
['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from','global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']
-
错误命名示范
# 错误示范如下
*a=123
$b=456
c$=789
2_name='lili'
123='lili'
and=123
年龄=18 # 强烈建议不要使用中文命名
# 正确示范如下
age_of_ly=31
page1='首页'
_class='终极一班'
【5】变量名的风格
(1)驼峰式
- 大驼峰:每个单词的首字母都大写,其余字母小写
- AgeOfTony = 56
- 小驼峰:每个单词的首字母都大写,只有第一个单词的首字母是小写
- numberOfStudents = 80
(2)纯小写下划线
- 所有字母都小写,每个单词之间使用下划线分隔(在python中,变量名的命名推荐使用该风格)
- age_of_tony = 56
- number_of_students = 80
【6】三大特性
(1)id (内存地址 - 内存编号)
- 反应的是变量在内存中的唯一编号,内存地址不同id肯定不同
(2)type (数据类型)
- 变量值的类型
(3)value (变量值)
【7】如何查看变量的三大特性
# 定义变量
x = 'Info Dream:18'
# id (内存地址 - 内存编号) : 反应的是变量在内存中的唯一编号,内存地址不同id肯定不同
print(id(x)) # 2304891956272
# type (数据类型) : 变量值的类型
print(type(x)) # <class 'str'>
# value (变量值) : 变量值
print(x) # Info Dream:18
【补充】初识小整数池
-
对于小整数,Python有一个小整数池的概念。小整数池是一个预先创建好的、包含一定范围的整数的池子,这些整数在程序运行过程中会被重复使用,以提高内存利用效率。
-
在Python中,整数对象是不可变的,因此如果一个整数值在小整数池中已经存在,那么多个变量使用相同的整数值时,它们实际上是指向同一个整数对象的引用。这就是小整数池的机制。
-
小整数池一般包括一定范围内的整数,例如,通常会包含从-5到256的整数。这是因为在Python中,经常会用到一些小的整数,比如循环的索引、计数器等,因此预先创建这些小整数,可以减少内存的消耗,提高程序的执行效率。
【三】常量
【1】什么是常量
- 常量指在程序运行过程中不会改变的量
【2】为什么要有常量
- 在程序运行过程中,有些值是固定的、不应该被改变
- 比如圆周率 3.141592653…
- 在其他语言中,真正意义上的常量,中间是不能改变的,如果你改变,就报错,但是,在python中,无所谓,你改变也不报错!
- 在JavaScript语言中,就有真正意义的常量,中途不能修改,修改就报错
【3】常量的使用
-
在Python中,虽然没有真正的常量概念,但可以通过一些约定来表示常量。
-
通常,程序员会使用全大写的变量名来表示常量,以提醒自己和其他人这个变量的值应该保持不变。
-
例如:
PI = 3.141592653
-
尽管在Python中可以修改这样的变量,但是程序员通常会视其为常量,不去改变它的值。
-
这样的约定有助于提高代码的可读性,并且在实际应用中,这些变量的值不会被轻易修改。
-
在Python中,强制性的常量机制并不像其他一些语言那样严格,所以这主要依赖于程序员的自律和代码规范。
【补充】PE 8规范
[Python注释补充之PE8规范](https://www.cnblogs.com/dream-ze/p/17401922.html)
【一】PEP 8规范
-
PEP是Python Enhancement Proposal的缩写,代表Python增强提案。其中第8号增强提案(PEP 8)是关于Python代码风格的指南。
-
每个PEP都是一份技术文档,为Python社区提供指导,促使Python在不断进步。PEP 8着重于统一Python代码的风格,使其更易读、易维护,适用于多人协作开发的场景。
【二】PEP 8规范的内容
【1】空格的使用
- 使用空格表示缩进,不使用制表符(Tab)。
- 每一层缩进使用4个空格。
- 每行字符数不超过79个,多行表达式首行除外,其余行缩进4个空格。
- 函数和类定义之间使用两个空行分隔,类中方法之间使用一个空行分隔。
【2】标识符的命名
- 变量、函数和属性使用小写字母,多个单词用下划线连接。
- 类中受保护的实例属性以一个下划线开头。
- 类中私有的实例属性以两个下划线开头。
- 类和异常的命名每个单词首字母大写。
- 模块级别的常量使用全大写字母,多个单词用下划线连接。
- 类的实例方法参数命名为self,类方法参数命名为cls。
【3】表达式和语句
- 采用内联形式的否定词,如
if a is not b
。 - 避免使用检查长度的方式来判断字符串、列表是否为None或没有元素,应该使用
if not x
形式。 - 即使在if分支、for循环、except异常捕获中只有一行代码,也不要将代码和关键字写在一起,分开写更清晰。
- import语句总是放在文件开头。
- 引入模块时,
from math import sqrt
优于import math
。 - 多个import语句分为三部分:Python标准模块、第三方模块和自定义模块,每部分按照字母表顺序排列。