执行Python程序的两种方式
交互式(jupyter)
优点:运行一句,执行一句
缺点:关闭即消失
命令行式(pycharm)
优点:可以一直保存下去
缺点:全部写完才能调试bug
虽然txt问价可以运行,但尽量用.py文件
变量
什么是变量
简单来说,世间万物所有的变化的状态都可以称为变量。
为什么要有变量
对于世间万物,变化才是最大的不变,因此一定要有一个变量来描述世间万物。而计算机里面的程序的运行过程也就是一系列状态的更替变化,故也需要有一变量来描述这种变化。
定义变量
name = 'nick'
age = 19
......
变量的组成
变量主要由变量名、赋值符号和变量值组成。
变量名:用来引用变量值,指向变量值,相当于变量值的门牌号。
赋值符号用于赋值。
变量值:存放数据,用来记录现实世界中的某种状态。
age = 18
name = 'nick'
print(age)
print(name)
变量名的命名规范
定义一个变量其实就是在记录现实世界中的状态,并且存永远不是目的,取才是目的。需要满足以下三个规范:
1.命名应该能反映变量值所描述的状态,切记不可用中文。
2.变量名必须用字母数字下划线组合,并且变量名的第一个字符不能是数字。
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']
变量名的两种风格
驼峰体
AgeOfNick = 19
下划线
age_of_nick
常量
常量就是全大写的变量名,常量可以修改,但是没有意义。
AGE_OF_NICK = 19
Python变量内存管理
变量存哪了
x = 10
上面这一句执行完,内存给变量值分配一块小空间用于保存变量值,然后变量名指向该变量值,即x指向存在内存中的10.
Python垃圾回收机
x = 10
x = 11
执行上面两段代码后,X由原来指向10改为现在指向11,故原来在内存中的变量值10没有变量名,所以会被当做垃圾进行回收。
引用计数
x = 10 # 10引用计数加1为1
y = x # 10引用计数加1为2
x = 11 # 10引用计数减1为1;11引用计数加1为1
del y # 10引用计数减1为0,触发python垃圾回收机制,python清理10的内存占用
小整数池
范围在[-5, 256]内的小整数,由于经常会被用,为了避免因创建相同的值而重复申请内存空间所带来的效率问题, Python解释器会在启动时创建出小整数池,该范围内的小整数对象是全局解释器范围内被重复使用,永远不会被垃圾回收机制回收。
在pycharm中运行python程序时,pycharm出于对性能的考虑,会扩大小整数池的范围,其他的字符串等不可变类型也都包含在内一便采用相同的方式处理了,我们只需要记住这是一种优化机制,至于范围到底多大,无需细究。
变量的三个特征
获取变量值的内存地址,针对变量值
获取变量值的数据类型,针对变量值
打印变量值
height = 180
print(id(height))
print(type(height))
print(height)
花式赋值
链式赋值
a = b = c = d = 10
print(f'a:{a}, b:{b}, c:{c}, d:{d}')
输出:a:10, b:10, c:10, d:10
交叉赋值
自动创建中间变量,用完后主动释放空间
x = 100
y = 200
x, y = y, x
print(f'x:{x} y:{y}')
输出:x:200 y:100
注释
单行注释:
#号
ctrl+/ 选中多行进行注释/反注释
多行注释
用三引号
'''
三引号可以多行注释,可以换行
'''
添加注释的原则
- 在有需要的地方加注释,一般建议在代码末尾,当是一个模块时在代码首
- 注释用中英文