一、变量
1、意义:存储一些临时的值或运算过程中的结果,方便以后调用,存在内存里
2、命名规则:
* 由字母、数字、下划线组成,不能含有空格和特殊字符(# ,@ ,%)
* 首个字符不能是数字
* 不能用中文命名
* 规避带有固定意义的保留字符(关键字),如 return if 等
*命名规范,驼峰或下划线连接,推荐下划线
3、使用规则:先定义,后调用
4、赋值:
* 赋值符号 =
* 多重复值 x = y = 12
* 多变量赋值 x , y ,z = 10
* 交换变量的值 x ,y = y ,x
#内存里创建了一个值“li”,然后用一条线把这个值和变量名name联系起来,可以把这条线理解为这个值在内存里的路径,
name ="li"
#name把li值对应的路径复制了一份给name2,所以这个时候name2的值也是liname2=name#重新再内存里创建了一个值wang,然后把路径给了name, 所有的变量常量在静止状态下都只能有一个值,也就是说,这个时候name的值这个时候变成了wang
name="wnag"
#打印时,name的路径指向wang,name2的路径指向li
print(name,name2)
打印结果为:wnag li
二、常量
1、意义:不变的量
2、命名规范:全部大写,其他参考常量
三、内存回收
1、Python自动回收:当内存里的值没有与外联系的时候,也就是说它没有被引用的时候就会被自动回收
2、手动回收;拆除变量与值之间的引用关系
#1、强拆 我要拆这间房了,谁在里边,我就干谁
name ="li"
del name
#2、阴招 我要拆这间房了,谁在里边,赶紧搬家滚
name="wang"
name="zhao"
注:手动回收只是清除值与变量名之间的联系,这个时候,值其实还在内存里,还要依赖于Python的自动回收机制
五、注释
1、单行注释 #
2、多行注释 “”“ ”“” 、 ‘’‘ ’‘’ 三个单引号或者双引号
六、运算符
1、算数运算符
* + 加、连接
* - 减
* * 乘、复制
* / 除
* // 整除
* % 取余
* len()计算元素个数,也可以看做一种运算符,
2、比较运算符
* <= 小于等于
* < 小于
* = 等于
* != 不等于
* >= 大于等于
3、身份运算符
* is 是
* is not 不是
4、成员运算符
* in 包含
* not in 不包含
5、逻辑运算符
* not 不
* or 或
* and 且
6、赋值运算符
* 赋值运算符 =
* 复合赋值运算符 = += -= *= /= %= //= **= &= `= ^= >>= <<=`
a = 10
b = 3
a += b # 相当于:a = a + b
a *= a + 2 # 相当于:a = a * (a + 2)
7、其他
* [] [:] 下标,切片
* ** 指数
* ~ + - 按位取反, 正负号
* >> << 右移,左移
* & 按位与
* ^ | 按位异或,按位或
flag0 = 1 == 1
flag1 = 3 > 2
flag2 = 2 < 1
flag3 = flag1 and flag2
flag4 = flag1 or flag2
flag5 = not (1 != 2)
print('flag0 =', flag0) # flag0 = True
print('flag1 =', flag1) # flag1 = True
print('flag2 =', flag2) # flag2 = False
print('flag3 =', flag3) # flag3 = False
print('flag4 =', flag4) # flag4 = True
print('flag5 =', flag5) # flag5 = False
print(flag1 is True) # True
print(flag2 is not False) # Fals
注:在一个表达式里,运算符太多不好理清优先级的话,最好用括号一层层包起来