一. 变量
1.什么是变量?
通俗来说,就是给数据起一个名字, 将数据赋值给一个变量名
变量名要有意义,可读性要强
定义: = 赋值符号
变量名 = [1,2,3,4,5]
2.变量名命名规则
- 由数字,字母,_组成
- 变量名的首字符不能是数字
- 不能使用 系统关键字,保留关键字
- 变量名是区分大小写的
3.值类型(不可变)与引用类型(可变)
数字, 字符串,元组 是不可变数据类型
列表, 字典, 集合 是可变数据类型
# int 为值类型
a = 1
b = a
a = 3
print(b)
# list 为引用类型
c = [1,2,3,4,5]
d = c
c[0] = '1'
print(d)
# 不可变中的可变是可以被修改的
a = (1,2,3,['a',4,6])
a[3][1] = 8
print(a)
二. 运算符号
1.算数运算符
- 加法+
- 乘法*
- 减法-
- 除法/
- 整除//
- 取余%
- 次方(二次方**、三次方***
2.赋值运算符
- a = 1 是把1赋值给 a
- a = a+b 等同于 a+=b
- a = a-b 等同于 a-=b
- a = a*b 等同于 a*=b
- a = a/b 等同于 a/=b
- a = a//b 等同于 a//=b
- a = a%b 等同于 a%=b
- a = a**b 等同于 a**=b
+=,*=等赋值运算, 先运算,后赋值
3.比较(关系)运算符
- 比较(关系)运算符:
- ==:比较两种数据类型是否相等
- !=:比较两组数据类型是否不等
- >:大于
- <:小于
- >=:大于等于
- <=:小于等于
比较运算符得到的结果是布尔值(True/False)
非数字类型做比较运算,一般是看其ascll码
# True 可以算作1
b=1
b+=b>=1
print(b)
有多个元素,则从第一个开始依次比较
a=[1,2,3]
b=[1,3,2]
print(a>b)
# 返回false
4.逻辑运算符
- and 且 两遍为True 返回True, 两边任一为False 返回False
True and True 返回True False and True 返回False
- or 或, 两边任一为True 返回True, 都未False 返回
True or True True True or False True False or False False
- not 不是
not False 返回True not True 返回False
非bool 元素规则
- int, float: 0被认为是false , 非0 表示True
- 字符串: 空符串是False , 其他表示 Frue
- 列表: 空列表表示False , 其他表示 True
and 和 or 的返回规则:
# 根据执行顺序,取最后执行的值
print(1 and 2)
# 返回结果为2, 先判断1是否为True, 还要判断2, 为True时,返回2
print(0 and 1 )
# 返回结果为0, 先判断0, 0为False , 不需要判断后面的1, 所以返回0
print(1 or 2)
# 返回结果1, 1为true, 不用向后判断了, 所以返回 1
print(0 or 2)
# 返回结果2, 0为False, 需要继续判断, 2为True,返回True ,所以返回2
5.成员运算符
- in:判断元素是否在数据中
- not in:判断元素是否不在数据中
对于字典成员运算符,判断的依据是key而非value
6.身份运算符
- is
- not is
== 与 is 的区别
is 判断的是两个变量的身份是否相等(即内存地址是否相等)
== 判断值是否相等
补充小知识:
- isinstance(1,str) ,判断数据类型
- isinstance(1,(int,str)) 判断 是否是 int或者str
7.位运算符
把数字当作二进制数进行运算
- &:按位与:将数字转化为二进制后,分别对相应的位次做“与”操作,得到0(一个0或两个0)和1(两个1),再排列为二进制数转化
- |:按位或:对相应位次做“或”操作,得到0(两个0)和1(一个1或两个1)
- ^:按位异或:对相应位次做“异或”操作,不同为1,相同为0;具体就是0^0等于0,1^1等于0,0^1等于1,1^0等于1
- ~:按位取反:对二进制每一位都做取反操作(0变1,1变0)规律:~x = -(x+1)
- <<:左移动
- >>:右移动