day03-日常笔记(运算符)
2018-12-26 本文已影响0人
馒头不要面
python 运算符
python 支持:数字运算符、比较运算符、逻辑运算符、赋值运算符、位运算符
1.数学运算符:+(加),-(减),(乘),/(除),//(整除),%(取余),*(幂运算)
-
其中+、-、*、/和数学中的加减乘除一模一样
print(10 + 20) print(12.5 + 10) print(100 - 110) print(2 * 3) print(5 / 2)
-
//(整除),数字1//数字2 --> 让数字1除以数字2,结果只取整数部分
print(5 // 2) # 2
练习,获取数字 234中的百位上的数 2
print(234 // 100)
-
%(取余) ,求余数
print(5 % 2) # 求5除以2的余数 print(10 % 4) # 求10除以4的余数比较运算符、逻辑运算符、赋值运算符、位运算符
应用一:获取一个数的个位数
print(234 % 10) # 4
应用二:判断一个数的奇偶性,让这个数对二取余,然后看结果是0还是1
print(20 % 2, 23 % 2, 3 % 2) # 0 1 0 1
- ** (幂运算),x**y,求x的y次方
print(2 ** 3)
print(10 ** 4)
print(16 ** 0.5) # x ** 0.5 == x ** (1 / 2) == x开平方
print(8 ** (1 / 3)) # 8开立方
注意:运算符的运算对象不一定非是数据,也可以是存数据的变量
age = 18
print(age + 10)
2.比较运算符:> , < , == , != , >= , <=
所有的比较运算符的结果都是布尔值
print(10 > 20)
print(10 < 20)
print(10 == 20)
print(10 != 20)
print(10 >= 20)
print(10 <= 20)
age = 18
print("是否成年:", age >= 18)
补充:is的使用
变量的三要素
- 类型(变量中存储的数据的类型)
- 值(变量存储的数据)
- 地址(变量真正存储的内容)
获取变量三要素的方法:
- 类型 - type(变量)
- 值 - 直接使用变量,就是使用值
- 地址 - id(变量)
num = 100
print("变量num的类型:", type(num))
print("变量num的值:", num)
print("变量的地址:", hex(id(num)))
== 和 is的区别
- ==:判断的是值是否相等
- is:判断的是地址是否相等
list1 = [1, 2]
list2 = [1, 2]
list3 = list1 # 用一个变量给另一个变量赋值的时候iu,是将变量中储存的数据的地址赋值给它
print(list1, list2)
print(id(list1), id(list2))
print(list1 == list2, list1 is list2)
print(list1 == list3, list1 is list3)
输出:
[1, 2] [1, 2]
140574734251208 140574734251272
True False
True True
注意:
python会对数字和字符串进行缓存,在申请内存空间的时候,会在缓存区先查找数据,如果没有数据,才会进行申请内存空间
num1 = 1
num2 = 1
print(id(num1), id(num2))
str1 = 'abc'
str2 = 'abc'
print(id(str1), id(str2))
输出:
10943008 10943008
140574765398872 140574765398872
3.逻辑运算符:and(逻辑与) , or(逻辑或) , not(逻辑非)
逻辑运算符的运算对象和运算结果都是布尔值
-
and - 如果两者都为True,结果就是True,否则结果是False,相当于生活中的并且
短路操作:如果第一个条件为False,就不会再去判断后面的条件,直接返回False
True and True -> True False and True -> False True and False -> False False and False -> False
应用:要求多个条件同时满足的时候,就使用逻辑与运算
练习:能拿奖学金的条件是成绩必须90分以上,并且测评分不能低于95
grade = 90 score = 95 print("是否能拿奖学金", grade > 90 and score >= 95)
-
or - 如果两者都为False,结果为False,否则结果是Ture,相当于生活中的或者
短路操作:若果第一个条件为True,就不会再去判断后面的条件,直接返回True
True or True -> True False or True -> True True or False -> True False or False -> False
应用:要求多个条件中只要有一个条件满足,就使用逻辑或运算
练习:如果考试成绩低于60分,或者不在班上就降班
grade = 70 is_inclass = True # True代表在班级,False表示不在班级 print("是否降班:", grade < 60 or not is_inclass)
-
not - 对结果取反,对值进行否定。
not True -> False not False -> True
应用:否定某个条件
年龄不小于10岁
age = 20 print(not age < 10)
4.赋值运算符: = , += , -= , *= , /= , //= , %= , %= , **=
要求: 所有的赋值运算符,赋值符号的左边必须是变量;右边必须有一个结果
-
a. 变量 = 结果 --> 将结果赋值给变量
num = 100 num2 = num # 变量给变量赋值,赋的是变量的地址
-
b.+= , -= , *= , /= , //= , %= , %= , **=
- 复合赋值运算符要求赋值符号的左边除了是变量,还要求这个变量已经被赋过值
- 变量 += 数字 --> 变量 = 变量 + 数字(让变量的值加上指定的数字后的新值再重新赋值给原变量)
num3 = 2 num3 += 10 # num3 = num3 + 10 print(num3) # 12 num3 -= 3 # num3 = num3 - 3 print(num3) # 9
5.运算符的优先级
- 数学运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符
- 数学运算中:** > *,/,%,// > +,-
- 优先级高的先算,优先级低的后算。如果有(),先算()里面的
- 布尔中的True == 1,False == 0