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