基础语法-变量
一、变量
1.1 什么是变量
变量:描述变化的世间万物的状态
- 量:记录现实世界中的状态,让计算机能够像人一样去识别世间万物。
今天我可能180,明年我是不是可能就是185了(5cm不过分),那这种状态是不是会发生变化。
- 变:现实世界中的状态是会发生改变的。
# 身高:160,体重:140,
height = 160
print(height) # 160
print(160)
1.2 定义变量
变量的组成(规则):
变量名(接收变量值) =(赋值符号) 变量值(数值) # 定义变量
身高 = 180 # 不建议这样做,但是可以这么做(英文差的同学,前期可以这样做)
print(身高)
weight = 160
name = 'randysun'
1.3 命名规范
1. 变量名必须由数字/字母/下划线_组成
- 变量名都具有可读性(意义) 存不是目的,取才是目的
- 不要使用关键字(具有某种特殊意义的字符)
- 变量名的两种定义方式
# 1. 变量名必须由数字/字母/下划线_组成
height_of_randysun = 180 # 下划线只在连接的时候用
# 2. 变量名都具有可读性(意义) 存不是目的,取才是目的
_ = 180
print(_)
# 3.不要使用关键字(具有某种特殊意义的字符)
'''
['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']
'''
# 变量名的两种定义方式
height_of_randysun = 180 # 下划线式(使用,约定俗成)
print(height_of_randysun)
HeightOfRandysun = 180 # 驼峰体,low,c/java
print(HeightOfRandysun)
二、 常量
常量:变量是变化的量,常量则是不变的量。python中没有使用语法强制定义常量,也就是说,python中定义常量本质上就是变量。如果非要定义常量,变量名必须全大写。
age = 18 # 变量
age = age + 1
print(age)
AGE = 18 # 所有字母全大写(常量)
print(AGE)
三、 变量内存管理
变量:描述世间万物的动态
每当定义变量运行程序内存就开辟一个内存空间来存储这个变量,会通过引用计数(针对变量的值),height = 180, x = height ,每当引用一次变量height引用计数就会加一,使用del x,就会删除 x 引用计数(进行减一)从而释放x的内存空间,del height, 彻底删除变量在内存中占用的内存,应用计数为零时候,就会出发垃圾回收机制,释放内存的占用,[-5,256]小整数池,在python解释器启动的时候就自动开辟了,所以说他不会受垃圾回收机制的影响
height = 180 # 定义变量
print(180) # print会自动帮你创建一个变量180,打印完之后,马上释放180的内存空间
# 定义一个变量,内存就开辟一个内存空间存储这个变量
# 引用计数(针对变量值)
# 180的引用计数加1
x = height # 180的引用计数加1
del x # 释放的是引用计数,180的引用计数为1
del height # 引用计数为0,
# 引用计数为0时,触发垃圾回收机制,释放内存占用
# [-5,256](小整数池)在python解释器启动的时候就自动开辟了,所以说他不会受垃圾回收机制的影响,适用于jupyter
# [-5,256]用的比较多
# pycharm中做了优化,间隔时间短的,无论多大,id都一样
a = 257
b = 257
print(id(a)) # 打印内存地址
print(id(b)) # 打印内存地址
a = 23423423423423423423
b = 23423423423423423423
print(id(a))
print(id(b))
四、变量三个特征
- 获取变量值的内存地址,针对变量值
- 数据类型,针对变量值
# 获取变量值的内存地址,针对变量值
print(id(height)) # 1908245568
# 数据类型,针对变量值
print(type(height)) # int类型(integer 整型)
name = 'randy'
print(type(name)) # str类型(string 字符串)
# 打印变量值
print(name)
五、花式赋值
- 交叉赋值(解压缩)
- 保证内存地址不变的情况下修改x和y
- 交叉赋值
# 交叉赋值(解压缩)
height_of_randy,height_of_handsome,heigh_of_laowang=180,160,170
print(height_of_randy)
print(height_of_handsome)
print(heigh_of_laowang)
# 保证内存地址不变的情况下修改x和y
x = 2000
print('x:',id(x))
y = 1000
print('y:',id(y))
# 中间变量的思想
# z = x
# x = y
# y = z
# 交叉赋值
x,y = y,x
print('y:',id(y)) # 内存地址相同,值一定相同
print('x:',id(x))
# x = 1000
# y = 2000
# print('y:',id(y)) # 值相同,内存地址不一定相同
# print('x:',id(x))
# 链式赋值(值相同才能使用)
a = 10
b = 10
c = 10
print(a,b,c)
a=b=c=10
print(a,b,c)
六、注释
- 注释分为单行注释和多行注释
# 单行注释
# 解释 ; 让代码在python解释器运行的时候不被解释,即让他无意义
# a = 10
# print(a)
picasso_height = 160 # 毕加索的身高,解释代码的意思
# 代码块的解释放到代码上面
# 打印0-9
for i in range(10):
print(i)
# ctrl+/
# 多行注释
'''
a = 10
print(a)
'''
# 不问目的的抄,编程在你敲代码的时候突然顿悟,永远都不会在你思考的时候顿悟
七、执行Python程序的两种方式
交互式(jupyter)
优点:运行一句执行一句
缺点:关闭即消失
命令行式(pycharm)
优点:一直保存
缺点:全部写完才能调试bug
虽然txt文件可以运行,但尽量用py文件
在当下的阶段,必将由程序员来主导,甚至比以往更甚。