python支持数学运算符,逻辑运算符,比较运算符,赋值运算符,位运算符
1.数学运算符:
- +(加),-(减),(乘),/(除),//(整除),%(取余),*(幂运算)
+,-,*,/ 和数学中的加减乘除一样
print(10 + 20)
print(12.6 + 5)
print(100 - 110)
print(2 * 3)
print(5 / 2) # 能整除就是整数,不能整除就是小数
//(整除),数字1//数字2 --> 让数字1除以数字2,结果只取整数部分
print(5 // 2) # 2
print(6.3 // 2) # 2.0
# 练习,获取数字234中的百位上的数
print(234 // 100) # 2
%(取余),求余数
print(5 % 2) # 1 求5除以2的余数
#应用一:获取一个数的个位数
print(234 % 10) # 4
#应用二:判断奇偶性,对2取余,得1为奇数,得0为偶数
print(20 % 2, 23 % 2, 22 % 2, 3 % 2)
*(幂运算),x*y,求x的y次方
print(2 ** 3)
print(10 ** 0.5) # 开平方
print(8 ** (1/3)) # 开立方
不一定数据,也可以是存数字的变量
age = 18
print(age + 10) # 28
2.比较运算符:
- >(大于), <(小于), ==(等于), !=(不等于) , >=(大于等于), <=(小于)
所有的比较运算符的结果都是布尔值
print(10 > 20) # False
print(10 < 20) # True
print(10 == 20) # False
print(10 == 10) # True
print(10 != 20) # True
print(10 != 10) #False
print(10 >= 20) #False
print(20 >= 20) #True
变量的要素
变量的要素 | |
---|---|
类型(变量中存储的数据的类型) | 赋值时数据的类型 type(变量) |
值(变量中存储的数据的值) | 直接使用变量,就是使用值() |
地址(变量真正存储的内容) | 地址:id(变量),每个内存的编号 |
num=100
print(type(100), num, id(num)) # return <class 'int'> 100 4468906160
补充:is的使用, == 与 is 的区别 (应付面试)
- ==判断值相等,is判断地址是否相等
# 举例:
list1 = [1, 2]
list2 = [1, 2]
print(list1 == list2, list1 is list2) # return True False
list3 = list1 # 一个变量给另一个变量赋值的时候,是将变量中存储的数据的地址赋给另外一个变量
print(list3 == list1, list3 is list1) # return True True
- 特例:数字和字符串是特殊情况,数字和字符串在内存里有缓存空间,每次赋值的时候,先在缓存区里找,若有,则直接拿缓存区里的地址,若无,则开辟新的内存空间
num1 = 100
num2 = 100
print(num1 is num2) # return True
3.逻辑运算符:and(逻辑与),or(逻辑或),not(逻辑非)
-
逻辑运算符的运算对象和运算结果都是布尔值。
and 逻辑与运算规则:值1 and 值2 若两个都为True,则为True,否则为False,相等于生活逻辑中的‘并且’。
-
短路操作,若第一个条件是False,就不会去判断第二个条件,就直接让整个与运算的结果为False。
True and True return True
True and False return False
False and True return False
False and False return False
- 实际应用:要求多个条件同时满足的时候,就使用逻辑与运算
- 练习:能拿奖学金的条件是成绩必须90分以上并且测评分不能低于95
grade = 91
score = 95
print('是否能拿奖学金',grade > 90 and score >= 95) # return 是否能拿奖学金 True
or 逻辑或运算规则:值1 and 值2 若两个都为False ,结果才为False,否则都为True,相当于生活逻辑中的'或者'。
-
短路操作,若第一个条件是True,就不会区判断第二个条件,就直接让整个或运算结果为False
True or True return True
False or True return True
True or False return True
False or False return False
- 实际应用:要求多个条件只要有一个条件满足的时候,就是使用逻辑或运算
- 练习:降班的条件是考试成绩小于60分或者上课不听讲
grade = 70
is_sent_to_lower_grade = True # True代表不在班级,False代表在班级
print('是否降班', grade < 60 or is_sent_to_lower_grade is True) # return 是否降班 True
not逻辑非规则:not 值1 对值的结果进行否定或者取反。
not True return False
not False return True
- 实际应用:否定某个条件
- 练习:年龄不小于十岁
age = 20
print('年龄不小于10岁', not age < 10) # return True
4.赋值运算符: =, +=, -=, /=, //=, %=, **=
用来给变量赋值,赋值符号的左边必须是变量,右边必须是有结果
- 变量 = 结果 --> 将结果赋给变量
- +=, -=, /=, //=, %=, **=
- 复合赋值运算符要求赋值符号的左边除了变量以外,还要求这个变量已经被赋过值
- 变量 += 数字 --> 变量 = 变量 + 数字 (将变量原来的值加上指定的数字以后的新值再重新赋给变量)
- 变量要提前赋值
num3 += 10 # return NameError: name 'num3' is not defined 要提前赋值
num3 = 2
num3 += 10
print(num3) #return 12
num3 -= 3
print(num3) #return 9
5.运算符的优先级(复合运算)
数学运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符
- 优先级高的先算,优先级低的后算
- 如果有括号(),先算括号()里面的
print(19 + 20 > 6 ** 2 + 4 or 10 + 3 < 3 * 3 ) # return False
- 布尔中的True == 1, Flase == 0
print(True + 10) # return 11
print(False + 10) # return 10