mathOperator
数学运算符: +(加)、-(减)、*(乘)、/(除)、%(取余)、//(整除)、**(幂运算)
-
% : 取余/取模,求余数
应用1:判断一个数是否能被拧一个数整除
print(12%2) print(120%2) print(11%2)
应用2:取低位数
num=225 # 取个位数 print(num%10) # 5
-
// - 整除,求商,商保留整数部分(向小取整)
应用1:取高位(去掉低位) num = 123 print(num // 10) #12
-
** - 幂运算 x**y - 求x的y次方
print (2**3) #8 print (8**(1/3)) #2
compare
比较运算符:==(等于)、!=(不等于)、>、<、>=、<=
注意:所有的比较运算符的运算结果都是布尔值
Python支持两个比较运算符连写来表示数据范围
不同类型的数据不能进行比较大小
logic
逻辑运算符:and(逻辑与运算)、or (逻辑或运算)、not(逻辑非运算)
-
and
应用场景:用于表达多个条件同时满足的时候,相当于生活中的并且
运算规则:两个都是Ture结果才是Ture,否则结果False
Ture and Ture # Ture Ture and False # False False and False # False False and False # False
-
or
应用场景:用于表达多个主要有一个条件满足就可以的时候,相当于生活中的或者
运算规则:两个都是False结果才是False,否则都是True练习:写程序判断指定的年是否是闰年
情况1:能被4整除但是不能被100整除的年(普通闰年)
情况2:能被400整除的年(世纪闰年)
year = 2000 print('是否是闰年:', (year % 4 == 0 and year % 100 != 0) or year % 400 == 0 )
-
and
应用场景:如果一个条件正向写的时候情况很多很复杂,反向写反而很简单的时候
运算规则:
not True # False not False # True
logicExtend
短路操作
-
and的短路:条件1 and 条件2 -如果条件1是False,程序不会去执行条件2对应的代码
-
r的短路:条件1 or 条件2 - 如果条件1是True,程序不会去执行条件2对应的代码
运算对象不是布尔 - 逻辑运算符通用运算规则
- 数据1 and 数据2 - 如果数据1的布尔值是True,整个逻辑运算的结果算的结果是数据2;否则整个逻辑运算的结果是数据1
- 数据1 or 数据2 - 如果数据1的布尔值是True,整个逻辑运算的结果算的结果是数据1;否则整个逻辑运算的结果是数据2
- not 数据 - 数据对应的布尔值取反
数据的布尔值(数据转换成布尔结果)
python 中每个数据都有一个布尔值(不管什么类型的数据都可以转换成布尔)
所有零值、空值对应的布尔值是False,其他都是属于Trueprint(bool(0)) print(bool(0.0)) print(bool('')) print(bool(None)) # 以上结果都为False print(bool(-23), bool('ab'), bool(23.9)) print(7 and 8) print(''and 8) print(9 or 8) print(not 0) # 以上结果都为True
练习:
num = 9 if num%2 print ('奇数')
assignment
赋值运算符:= 、+= 、-=、*=、/=、//=、%=、**=
- 赋值运算表达式没有结果(不能用赋值运算来提供数据) — 代表的是赋值的这个动作
print(a=10) #报错
- 所有的赋值运算符的左边必须是变量(不管是简单赋值运算符还是复合的赋值运算符的功能都是将数据存储在变量
普通的赋值运算符
例如:
a = 10 a = 100 print(10+a) #110
复合赋值运算:变量 += 数据 -先将变量中的数据取出来和后面数据进行加法运算,最后将运算的结果重新赋给前面的变量(变量必须是已经赋值过的变量)
例如:
x = 10 x += 100 print(x) #110
运算符的优先级
-
数学运算符>比较运算符>逻辑运算符>赋值运算符(最低)
-
**>*、/、%、// > +、-
-
有括号先算括号里面(只有小括号)
if
流程控制值的三种结构:
顺序结构:代码从上往下一条一条的执行,而且每条代码只执行一次(默认)
分支/选择结构:满足某个条件才执行某段代码,如果条件不满足就不执行或者执行其他代码
循环结构:让代码重复执行多次
if 条件语句:
#### 代码段
1) if - 关键字;固定写法
2)条件语句 - 任何有结果的表达式(赋值语句不可以):具体的数据、已经赋值过的变量、运算表达式
3): - 固定写法,不能省略
4)代码段 - 和if一个缩进(一般用tab键产生)一条或者多条语句;
就是满足条件才执行的代码执行过程:如果条件语句位True(成立),就执行代码段,否则代码段不执行
例如:
if 10: pass age = 19 if age >= 18: print('成年') #成年
if 条件语句:
代码段1(条件成立时执行)
else:
#### 代码段2(条件不成立时执行)------双分支结构
例如:
age = 8 if age >= 18: print('成年') else: print('未成年') print('是个人!' ) """ 未成年 是个人! """