Day2 运算符和if
数学运算符
Python支持运算符:数学运算符、比较运算符、逻辑运算符、赋值运算符、*位运算
1.数学运算符
+(加)、-(减)、*(乘)、/(除)、//(整除)、%(取余、取模)、**(幂运算)
1)+、-、*、/
和数学中的+、-、×、÷ 功能和用法一模一样
注意:/(除法运算)的运算结果是浮点型
运算结果可以保存在变量中
运算对象不一定非得是数据,还可以是变量
2)//
求商,商保留整数部分(向小取整)
# 应用:取高位数(去低位)
# 练习: 写代码获取输入的任意的三位的百位数
num = 678
print(num//100)
# 去掉任意整数的个位数
print(num//10)
3)%
取余、取模、求余数
# x % y - 求x除以y的余数
print(5 % 2) # 1
print(13 % 5) # 3
# 应用场景1:判断一个数是否能够被另外一个数整除
print(7 % 3) # 1 -> 不是0,所以7不能被3整除
print(9 % 3) # 0 -> 是0, 所以9能被3整除
print(8 % 4) # 0
print(8 % 3) # 2
# 应用场景2:判断一个数的奇偶
print(13 % 2)
print(15 % 2)
print(25 % 2)
print(12 % 2)
print(6 % 2)
print(10 % 2)
# 应用场景3: 取低位数
num = 824
print(num % 10) # 4
print(num % 100) # 24
4)**
幂运算
# x ** y - 求x的y次方
print(2**3) # 8
print(3**2) # 9
# 注意:次方数如果是N分之一就是开N次方
print(16**0.5) # 4.0
print(8**(1/3)) # 2.0
比较运算符
比较运算符:>(大于)、<(小于)、==(等于)、!=(不等于)、>=(大于等于)、<=(小于等于)
# 注意:所有比较运算符的运算结果都是布尔值
print(10 > 20) # False
print(10 < 20) # True
print(10 == 20) # False
print(10 != 20) # True
print(10 == 10) # True
print(10 > 10) # False
print(10 >= 10) # True
# 注意:python支持表示范围的连写方式
num = 12.5
print(0 < num < 20) # True, (0, 20)
print(10 <= num < 30) # [10, 30)
# 运算结果不是一样要打印,也可以用变量保存
result = num < 18
print('result:', result) # result: True
逻辑运算符
and(逻辑与)、or(逻辑或)、not(逻辑非)
注意:从应用的角度来讲,所有的逻辑运算符的运算结果都是布尔
1.and
"""
1)应用场景:相当于生活中的并且;用于需要多个条件同时满足的情况
2)运算规则:条件1 and 条件2 - 如果条件1和条件2都成立结果就是True, 只要有一个是不成立的,结果就是False
True and True -> True
True and False -> False
False and True -> False
False and False -> False
"""
2.or
"""
1)应用场景:相当于生活中的或者;用于需要多个条件中有一个条件满足的场景
2)运算规则:条件1 or 条件2 - 如果条件1或者条件2有一个是True结果就是True, 两个都是False结果才是False
True or True -> True
True or False -> True
False or True -> True
False or False -> False
"""
3.not
"""
1)应用场景:对一个条件进行否定。
2)运算规则:not 条件 - 对指定条件进行否定
not True -> False
not False -> True
"""
逻辑运算符扩展
1.逻辑运算符的短路操作
"""
1)逻辑与运算的短路
条件1 and 条件2 - 如果条件1是False,那么条件2对应的代码不执行,结果直接是False
2)逻辑或运算的短路
条件1 or 条件2 - 如果条件1是True,那么条件2对应的代码不执行,结果直接是True
"""
2.运算对象不是布尔值
"""
1)逻辑与的通用运算规则
数据1 and 数据2 - 判断数据1的布尔值是否是True, 如果是整个结果就是数据2, 否则整个结果是数据1
数据1 or 数据2 - 判断数据1的布尔值是否是False,如果是整个结果是数据2, 否则整个结果是数据1
补充:数据的布尔值(任意数据怎么转换成布尔)(重要!):
python中所有的数据(不管什么类型的数据)都有布尔值,
所有的零值(比如0、0.0)和空值(空字符串、空列表、空集合等)的布尔值是False, 其他都是True
"""
赋值运算
1.赋值运算符
=、+=、-=、*=、/=、//=、%=、**=
# 注意:1)所有的赋值运算符最终的目的是给变量赋值;
# 2)赋值符号左边必须是变量,右边可以是任何有结果表达式
# 3)复合赋值运算符的左边必须是已经赋值过的变量
# 1) =
a = 19
age = 20
a = 20
# 2) 复合赋值运算符
a += 10 # a = a+10 = 20+10 -> a = 20+10
print(a) # 30
a -= 12 # a = a-12 = 30 - 12 = 18
print(a) # 18
a %= 2 # a = a % 2 = 18 % 2 = 0
print(a) # 0
2.运算符的优先级
# 1)数学运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符(最低)
# 2)数学运算符:** > *、/、%、// > +、-
# 3)有括号先算括号里面的(这儿的括号是小阔号)
# 布尔参与数学运算的时候 True就是1, False就是0
分支结构
1.流程控制
"""
1)顺序执行 - 代码从上往下一条一条的按顺序执行(默认)
2)分支结构 - 根据条件选择执行或者不执行某些代码(if语句)
3)循环结构 - 让一段代码重复执行(for循环、while循环)
"""
2.分支结构
Python中能够实现分支结构的只有if
1)if单分支结构
"""
应用场景:如果满足某个条件就执行某段代码,条件不满足就不执行
语法:
if 条件语句:
代码段
说明:
1. if - 关键字;固定写法
2. 条件语句 - 任何有结果的表达式(包括:具体的数据、已经赋值过的变量、运算表达式-赋值语句除外...)
3. : - 固定写法(注意:必须使用英文输入法下的冒号)
4. 代码段 - 和if保持一个缩进的一条或者多条语句;需要在满足条件才会执行的代码
执行过程:
先判断if后面的条件语句是否为True(如果不是布尔就看结果的布尔值是否是True),
如果是True,就执行代码段,否则代码段不执行
"""
2)if双分支结构
"""
应用场景:满足条件执行某个操作,不满足的时候执行另外一个操作
语法:
if 条件语句:
代码段1(满足条件需要执行的代码)
else:
代码段2(不满足条件的时候需要执行的代码)
执行过程:
判断条件语句是否为True,如果为True就执行代码段1;否则执行代码段2。
"""