目录
2、变量只有在赋值以后才会被创建,所以使用变量之前必须先要赋值
3、代码是从上往下运行的,代码是可以反复赋值的,并且可以是不同的数据类型
一、变量的作用
计算机中的存储空间,用于保存数据
二、定义变量的格式
1、变量名 = 值
注意:= 是赋值运算符,左右两边打上空格是为了代码的规范性,美观性。
# 一根铅笔3元,一个笔记本10元,求总价格?(变量赋值)
num1 = 3 # num1 就是一个变量,保存铅笔的价格
num2 = 10 # num2 也是一个变量,保存笔记本的价格
total = num1 + num2 # total 也是一个变量,保存总价格
print(num1) # 输出结果为3
print("num1") # 输出结果为num1
# print()加上引号会打印引号里面的内容,没有引号就会被识别成变量名,打印的是变量的值,如果该变量没有被赋值则显示命名错误
print(total) # 输出结果为13,为变量 num1 和 num2 两个变量的和即为总价格
2、变量只有在赋值以后才会被创建,所以使用变量之前必须先要赋值
注意:首次使用变量会在内存中划分空间,并初始化值,再次使用变量不再划分空间,而是修改原空间的值
eg 1 不可变对象(如整数和字符串)
注意:对于不可变对象(如整数和字符串),重新赋值会创建一个新的对象,并更新变量名以引用这个新对象。
# 首次使用变量
a = 5
# Python在内存中创建一个整数对象5,并将变量a引用到这个对象
# 再次使用变量(重新赋值)
a = 10
# Python在内存中创建一个新的整数对象10,并将变量a的引用更新到这个新对象
# 原来的整数对象5如果没有其他引用,则可能会被垃圾回收
eg 2 可变对象(如列表和字典)
对于可变对象(如列表和字典),重新赋值(如果是修改对象的内容而不是重新绑定变量)会修改现有对象的状态,而不是创建新的对象。
# 首次使用变量
b = [1, 2, 3]
# Python在内存中创建一个列表对象[1, 2, 3],并将变量b引用到这个对象
# 修改列表的内容(而不是重新赋值)
b.append(4)
# 列表对象[1, 2, 3]被修改为[1, 2, 3, 4],变量b仍然引用这个对象
# 再次使用变量(重新赋值,但这里我们仍然修改对象内容)
b[0] = 0
# 列表对象[1, 2, 3, 4]被修改为[0, 2, 3, 4],变量b仍然引用这个对象
# 重新绑定变量(这会创建一个新的列表对象)
b = [5, 6]
# Python在内存中创建一个新的列表对象[5, 6],并将变量b的引用更新到这个新对象
# 原来的列表对象[0, 2, 3, 4]如果没有其他引用,则可能会被垃圾回收
3、代码是从上往下运行的,代码是可以反复赋值的,并且可以是不同的数据类型
eg:
a = 816
# 解释器做了两件事情
# 1.在内存中创建了一个816的数据
# 2.创建了一个变量 a ,把816这个数据保存到a变量中去
print(a) # 输出结果是816
a = 666 # 同一个变量可以反复赋值
print(a) # 输出结果为666
a = 6.66
print(a) # 输出结果为6.66
a = "xiao ming"
print(a) # 输出结果为xiao ming
# 代码是从上往下运行的,代码是可以反复赋值的,并且可以是不同的数据类型
三、标识符规定
定义:程序员定义的变量名、函数名(必须要遵守,不遵守必报错)
1. 只能由数字、字母、_(下划线)组成
# sinx=0.5
# print(sinx) #符合规范
# sin2x=0.4
# print(sin2x) #符合规范
# sin_2x=0.2
# print(sin_2x) #符合规范
# _sin2x=0.1
# print(_sin2x) #符合规范
#1_sin2x=0.1
#print(1_sin2x) #不符合规范,程序报错,数字不能放开头
# 两种特例
# special case1
# 价格 = 1
# print(价格) 可以输出1,无报错
# Python3以上版本可以用中文命名,但不推荐,不符合代码的规范性
# special case2
(username) = 1
print((username)) # 同样可以输出1,无报错
# (1username) = 1
# print((1username)) # 不符合规范,语法报错,SyntaxError,标识符数字不能放首位
# 标识符被包含在()内对标识符本身没有影响
2. 不能以数字开头
1sinx=0.5
print(1sinx) #不符合规范,报错
3. 不能是关键字
关键字:是python中已经使用了的标识符,具有特殊的功能和含义,下面是python中的关键字,不能以下列关键字为标识符
"""
False:布尔类型的值,表示假,与True相反
None:特殊的数据类型'NoneType',表示没有任何值
True:布尔类型的值,表示真,与False相反
and:逻辑与操作符,用于连接两个布尔表达式
as:用于创建别名,例如在导入模块时使用
assert:断言,用于测试条件,如果条件不满足则引发异常
break:用于立即退出循环
class:用于定义类
continue:跳过当前循环的剩余部分,继续下一次迭代
def:用于定义函数
del:删除对象
elif:用于条件语句中,作为if的另一个条件分支
else:用于条件语句中,作为最后的条件分支
except:用于异常处理,捕获异常并执行相关代码
finally:用于异常处理,无论是否发生异常都会执行的代码块
for:用于创建循环
from:用于从模块中导入特定的部分
global:声明全局变量
if:用于创建条件语句
import:用于导入模块
in:检查某个值是否存在于序列中
is:检查两个变量是否指向同一个对象
lambda:创建匿名函数
nonlocal:声明非局部变量
not:逻辑非操作符
or:逻辑或操作符
pass:空操作符,用作占位符
raise:引发异常
return:从函数返回值
try:尝试执行代码块,并捕获可能出现的异常
while:创建while循环
with:简化异常处理的代码块
yield:在函数中使用,返回生成器
"""
# if = 1
# print(if) 报错,使用关键字
4. 严格区分大小写
a = 1
print(A) 报错,未区分大小写
四、变量的命名规范
(惯例,非强制使用,为增加代码的识别和可读性,尽量遵守)
1.见名知义
name = "LAO QU"
2.下划线分割法:(python常用变量名的命名规则)
多个单词组成的名称,使用小写字母,单词与单词之间使用下划线分开。
user_name = "Xiao Qu"
3.大驼峰命名法
多个单词组成的名称,每个单词的首字母大写,其余字母小写。
UserName = "EN YU"
4.小驼峰命名法:
第一个单词首字母小写,后面单词首字母大写,其余字母小写。
userName = "EN YU"