# 变量
# 什么是变量? 为何要有变量?
# 变量的三大组成部分是?每部分的作用
# 变量的命名元组、规范、风格
# 变量值的三大特征是什么?
# is与==的区别
# 1、 什么是变量
# 变量是指可以变化的量,量指的是事物的状态,比如人的年龄、性别等
# 2、 为什么要有变量
# 为了让计算机能够像人一样去记忆事物的某种状态,并且状态是可以发生变化的
# 程序执行的本质是一系列状态的变化,变是程序执行的直接体现,所以我们需要有一种机制能够反映或者保存下来
# 3、 怎么用
# 3.1 变量基本使用
# 原则:先定义、后引用
name = ‘xxx‘ # 定义-->存
print(name) # 引用-->取
# 3.2 内存管理:垃圾回收机制
# 垃圾:当一个变量值被绑定的变量名的个数为0时,该变量值无法被访问到,称之为垃圾
# 引用计数增加
x = 10 # 10的引用计数为1
y = x # 10的引用计数为2
z = x # 10的引用计数为3
# 引用计数减少
del x # 删除变量名x与值10的绑定关系,10的引用计数变为2
# print(x, y) # 打印x报错:NameError: name ‘x‘ is not defined
del y # 10的引用计数变为1
# print(z) # 10
z = 231 # 10的引用计数变为0
# print(z) # 231
# 3.3 变量三大组成部分
# Ⅰ:变量名=>指向等号右侧值的内存地址,用来访问等号右侧的值
# Ⅱ:赋值符号:将变量值的内存地址绑定给变量名
# Ⅲ:变量值:代表记录的事物的状态
# 3.4 变量名的命名规则
# 原则:变量名的命名应该见名知意
# 3.4.1 变量名只能是 字母、数字、下划线的任意组合
# 3.4.2 变量名不能以数字开头 SyntaxError:invalid syntax
# 3.4.3 关键字不能声明为变量名,关键字:
# 查看所有关键字
# import keyword
# print(keyword.kwlist)
# [‘False‘, ‘None‘, ‘True‘, ‘and‘, ‘as‘, ‘assert‘, ‘async‘, ‘await‘, ‘break‘, ‘class‘, ‘continue‘, ‘def‘, ‘del‘, ‘elif‘, ‘else‘, ‘except‘, ‘finally‘, ‘for‘, ‘from‘, ‘global‘, ‘if‘, ‘import‘, ‘in‘, ‘is‘, ‘lambda‘, ‘nonlocal‘, ‘not‘, ‘or‘, ‘pass‘, ‘raise‘, ‘return‘, ‘try‘, ‘while‘, ‘with‘, ‘yield‘]
# 3.4.4-内置函数名不能使用---否则该函数失去函数意义!--ex--print
# 3.5 变量名的命名风格
# 3.5.1 纯小写加下划线的方式(在python中,关于变量名的命名推荐使用这种方式)
age_of_ly = 7
print(age_of_ly)
# 3.5.2 驼峰体
AgeOfLy = 7
print(age_of_ly)
# 3.6 变量值三个重要的特征
# 3.6.1 id、type、value
name = ‘LY‘
print(id(name)) # 2432816488048
print(type(name)) # <class ‘str‘>
print(name) # LY
# id:反应的时变量值的内存地址,内存地址不同id则不同
# type:不同类型的值用来记录不同的状态
# value:值本身
# 3.6.2 is与==
# is:比较左右两个值身份id是否相等
# ==:比较左右两个值他们的值是否相等
# id不同情况下,值可能相同、即两块不同的内存空间李可以存相同的变量
# id相同的情况下,值一定相同
# pycharm执行
x = ‘info:ly:1023213‘
y = ‘info:ly:1023213‘
print(x, y) # (‘info:ly:1023213‘, ‘info:ly:1023213‘)
print(id(x), id(y))
# (2972975406704 2972975406704)
# 命令行执行
# >>> x = ‘info:ly:1023213‘
# >>> y = ‘info:ly:1023213‘
# >>> x,y
# (‘info:ly:1023213‘, ‘info:ly:1023213‘)
# >>> id(x),id(y)
# (1829332913776, 1829332239152)
# >>> x is y
# False
# >>> x == y
# True
# 疑问:为什么在pycharm中x和y的id值怎么是一样的?
# 这是因为在pycharm中 ,每次运行是所有代码都加载到内存中,属于一个整体,
# 所以这个时候会有一个大整数对象池,即处于一个代码块的大整数是同一个对象,我们只需要记住这是一种优化机制,无需细究。
# 3.6.3 小整数池[-5,256]
# python对小整数的定义是【-5,256】这些证书对象是提前建立好的,不会被垃圾回收。
# 4. 常量:不变的量
# 注意:python语法中没有常量的概念,但是在程序的开发过程中会涉及到常量的概念
AGE_OF_LY = 18 # 小写字母全为大写代表常量,这只是一种约定、规范
原文:https://www.cnblogs.com/LYPZX/p/14198379.html