程序=数据+功能(*****)
1.注释
多行注释(通常一个文件就一个,在开头,解释整个文件)
“””
”””
单行注释(注释的主力,加在关键代码的正上方或者正后方)
用#号
2.变量
什么是变量:
量指的是事物的状态,变指的是事物的状态是可以改变,变量就是一种存取内存的机制
为何要用变量:
为了控制计算机能够像人一样记住事物的状态
并且状态是可以改变的
如何用变量:
原则:先定义,后引用
定义:变量名 = 变量值
用变量名来读取内存地址
引用:变量名来引用
变量的三大组成部分
1.变量名:指向变量值的内存地址,用来访问值的
2.赋值符号:用来把值的内存地址绑定给变量名
3.变量值:记录事物的状态,也就是我们存到内存中的数据
变量名详解
3.1左值和右值
x=18 #变量名出现在等号左边,称之为左值,此时的变量名是一种存值行为
x #只要不在等号左边,就称之为右值,此时的变量名是一种取值行为
3.2 变量名
(1)大前提:见名知意
(2)规范:
#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’]
(3) 命名风格
1.驼峰体
2.纯小写+下划线
3.3 变量值
(1)两大特征:id、type
3.垃圾回收机制GC
引用计数:
垃圾回收机制的依据
1.变量的值被引用,该值的引用计数 +1
2.变量的值被解绑,该值的引用计数 -1
3.引用计数为0时就会被垃圾回收机制回收
分代回收(优点:降低扫描数量,提升效率;缺点:有个别数据无法得到及时处)
解决循环引用带来的内存泄露问题-----》标记/清除
标记/清除算法的核心:如果一个值没有关联任何一条以直接引用 作为出发点的引用,那么该值就会被标记下来,并且清除(主要应对循 环引用问题)
标记/清除算法认为如果一个变量值不存在任何以栈区为出发点的引用,那么标记/清除算法就认为它是垃圾。
(3)小整数池
范围:交互式环境(-5~256) 解释器中更大
python会给一定范围的整数提前定义好内存地址,再下次调用的时候,直接调用内存地址即可
4.基本数据类型
1.整形int:年龄、等级、各种号码
2.浮点型float:记录薪资、身高、体重等
3.字符串str:记录名字、引用信息等描述性内容
4.列表list[‘’,’’,’’]:按照索引存放多个值,可以用索引取指定位置的值
5.字典dict{key:value}:按照key:value的形式放多个值,
其中value可以是任意类型,而key通常是str类型
6.布尔类型bool:只有True和False
(1)显式的布尔值:
(2)隐式的布尔值:0,None,空都为False,其余都为真。
5.运算符
一:算术运算符:+ - * / % **(平方) //(整除,不是四舍五入)
二:比较运算符:== > < >= <= !=
三:赋值运算符: =;
3.1增量赋值:+= -= = /=
3.2链式赋值:(x=y=z=10)
3.3交叉赋值:(m=100,n=200,temp=m,m=n,n=temp ----->m,n=n,m)
3.4解压赋值:主要用于取头和尾
(s=[1,2,3,4,5] m0,m1,m2,m3,m4=s 这种写法必须一一对应)
m0,m1,_,m_last=s(用下划线表示废弃的)
四:逻辑运算符:结果为布尔值的都可以当条件使用(显隐式都可)
Not>and>or
not:把紧跟其后的条件取反
and:连接左右两个条件,两个都要为True最终结果才True
or:连接左右两个条件,但凡有一个条件为True,最终都为True