运算符和分支
一·数学运算符
数学运算符:+(加)、-(减)、*(乘)、/(除)、%(求余数、取模)、//(整除)、**(幂运算)
1.+、-、*、/和数学中的+、-、×、÷是一致的
2.%-求余数、取模
x%y-求x除以y的余数
应用1:判断一个数是否能被另外一个数整除(看余数是否为0)
应用2:取低位数(对10或者10的幂取余)
3.//- 整除
x//y-x除以y的商向小取整
4.**-幂运算
x**y-求x的y次方
二·比较运算符
比较运算符:>(大于)、<(小于)、>=(大于等于)、<=(小于等于)、==(等于)、!=(不等于)
重要结论:所有比较的运算结果都是布尔
注意:python中的比较运算符可以向数学一样通过连写来表示范围
三·逻辑运算符
逻辑运算符:and(逻辑与运算)、or(逻辑或运算)、not(逻辑非运算)
1. and-逻辑与运算
"""
1)应用场景:相当于生活中的并且,用于连接需要同时满足的多个条件
2)运算规则:两个都是true的结果就是true,否则就是false
条件1 and 条件2
true and true -true
true and false -fslse
"""
# 练习:写出一个数能同时被3he7整除的条件
num=67
# 条件1:能被3整除
# 条件2:能被7整除
print('是否同时能被3和7整除:',num%3==0 and num%7==0)
# 2.or-逻辑或运算
"""
1)应用场景:相当于生活中的或者,用于连接需要多个条件中满足一个条件就行的情况
2)运算结果:只要有一个true结果就是true
"""
gpa=4.0
score=95
# 拿奖学金的条件:极点高于4或者操行分不低于95
print('是否可以拿奖学金:',gpa>4 or score>=95)
# 练习:判断指定的年是否是闰年
# 普通闰年:能被4整除但是不能被100整除
# 世纪闰年;能被400整除
year=2020
print('是否是闰年:',(year%4==0 and year%100!=0)or (year%400==0))
# 3.not-逻辑非
# not 条件-否定条件
"""
1)应用场景:对指定条件进行否定(取反),一般用于正向条件情况很多很复杂,反向条件却很简单的时候,条件就反向写然后加not
2)运算规则:true变false,false变true
not true -false
not false-true
"""
# 年龄大于18:age>18
# 年龄不大于18:age<=18,not age>18
num=18
print(num==18)
print(not num==18,num!=18)
# 练习:写出一个不能同时被3和7整除的条件
print(not num%21==0)
print(num)
# 4.短路操作
# 条件1 and 条件2-如果条件1已经是False,那么条件2不会执行
# 条件1 or 条件2-如果条件1是True,那么条件2不会执行
True and print('与运算的条件2')
0 and print('与运算的条件2')
# 5.逻辑运算符的扩展-运算对象不是布尔值
"""
数据1 and 数据2-如果数据1的布尔值是True,结果就是数据2,否则结果就是数据1
数据1 or 数据2-如果数据1的布尔值是True,结果就是数据1,否则结果就是数据2
"""
print(8 and 7) #7
print(8 or 7) #8
print(False and 7) #False
# (特别重要)6.数据的布尔值-数据转成布尔的结果
# python中所有类型的数据都有布尔值
# 所有的零值和空值对应的布尔值是False,其他数据的布尔值都是True
# 常见的零值和空值:0、0.0、0.00、''、""、{}、[]、()、None
print(bool(0),(0.0),bool('')) #False,false,false
print(bool(12),bool(-9,454),bool('ban')) #true,true,true
四·赋值运算符
赋值运算符:=、+=、-=、/=、%=、//=、**-=
重要结论:所有赋值运算符的功能就是给变量赋值,不会产生结果(赋值运算的表达式没有结果)
所有赋值运算符的左边必须是变量
1. =
定义变量或者重新给变量赋值的时候使用
2.+=、-=、/=、%=、//=、**-=
变量+=数据->变量=变量+数据
要求:赋值符号前面的变量必须是已经定义过的变量
### 3.运算符的优先级
数学运算符>比较运算符>逻辑运算符>赋值运算符、
**>*、/、%、//>+、-
有括号先算括号里面的
## 五·分支结构
1.流程控制
"""
1)顺序结构(默认)-代码从上往下一次执行,每条语句执行一次
2)分支结构-代码的执行看条件是否成立(if语句)
3) 循环结构-让代码重复执行(for、while)
"""
# 2.if分支结构
# 1)if单分支结构-满足条件执行某个操作,这个条件不满足的时候操作就不执行
"""
语法:
if 条件语句:
代码段
说明
if - 关键字,固定写法
条件语句 - 任何有结果的表达式,例如:数据、运算表达式(赋值运算除外)、函数调用表达式等
: - 固定写法
代码段 - 就是和if保持一个缩进的一条或者多条语句(至少一条);需要满足条件才执行代码
执行过程
先判断条件语句是否为True,如果为True就执行代码(如果条件语句的结果不是布尔,就转换成布尔),否则代码不执行
"""
if 10:
print('代码1')
print('代码2')
print('代码3')
print('代码4')
# 练习:如果指定的数是偶数就打印'偶数'
num=23
if num%2==0:
print('偶数')
if not num%2:
print('偶数')
# 如果指定的数是奇数打印'奇数'
if num%2!=0:
print('奇数')
if num%2:
print('奇数')
# 练习2:判断指定的数据是否是水仙花数
num=345
# 5**3+4**3+3**3==216!=345
# 153 1**3+5**3+3**3=153==153
num=345
ge=num%10
shi=num//10%10
bai=num//100
if ge**3+shi**3+bai**3==num:
print('是水仙花数')
# 2) if双分支结构-满足条件执行某个操作,这个条件不满足的时候执行另外一个条件
# 如果×××,就×××,否则就×××
"""
if 条件语句:
代码段1(满足条件才执行的代码)
else:
代码的2(条件不满足的时候才执行的代码)
代码3(不管条件满足不满足都要执行的代码)
"""
# 练习:根据年龄打印成年或者未成年
age=28
if age>=18:
print('成年')
else:
print('未成年')
# 3) if多分支结构-根据不同条件做不一样的事情
# if-elif -elif..-else
"""
语法
if 条件语句1:
代码段1
elif 条件语句2:
代码段2
elif 条件语句3:
代码段3
...
else
代码段N
前提:多个条件中如果一个条件满足,其他条件绝对不会满足
多个条件之间存在约束关系
if 条件1:
代码段1
if 条件2:
代码段2
"""
# 练习:将指定分数分为A(90以上)、B[80,90)、C[60,80)、D(60以下)
score=89
if score>=90:
print('A')
elif 80<=score:
print('B')
elif 60<=score:
print('C')
else:
print('D')