运算符和分支结构
一.逻辑运算符
1.and -逻辑与运算
逻辑运算符号:and,or,not
1).应用场景:用来连接需要同时成立的多个条件,相当于生活中的并且
运算规则:条件1and条件2
- True and True - True
- True and False - False
- False and True - False
- False and False - False
案例1:判断nmu是否能同时被3和7整除
num =42
能同时被3和7整除
被3整除的条件: num % 3 == 0
被7整除的条件: num % 7 == 0
print(num % 3 == 0 and num % 7 == 0) nmu是否能同时被3和7整除
结果:True
# 列题:写出num是否大于30的偶数
num = 34
print( num % 2 == 0 and num >30) # 'num是否是大于30的偶数' ,
- or - 逻辑或运算
1).应用场景:如果多个条件中只有一个条件成立就行,就用or条件链接,相当于生活中的或者
运算规则:条件1 or 条件2 — 两个条件中成立一个为True,都不成立为False
- True or true - True
- True or False - True
- False or True - True
- False or True - False
# 练习1:写出num是否可被3和7整除
num =23
print(num % 3 == 0 or num% 7 == 0)
# 练习2:写出year是否为闰年的条件
# 闰年分为普通闰年和世纪闰年两种:能被4整除但是不能被100整除的年是普通闰年,能被400整除是世纪闰年
year = 2008
print( year % 4 == 0 and year % 100 != 0 ) or ( year % 400 == 0 )
3.not - 逻辑非运算
1).应用场景:定义一个条件进行否定,相当于生活中的不,否定词
运算规则: not 条件 - 对指定条件进行否定–取反
- not True - False
- not False - True
# 案例 :age 不大于18
age = 12
print(not age > 18 )
print(age <= 18 ) #正取
二.赋值运算符
赋值运算符: =,+=,-=,*=,/=,//=,%=,**=
1.)= 直接将数据保存到变量中 变量 = 数据
# a = 10 例
2.)+=: 变量 += 数据 - 先将变量中的数据提取出来加上后面数据再将相加结果存到前面变量中
a = 10
a += 10 # a的数据变成11
print(a) # 打印a为11
a -= 3
print(a) # 17
a %= 2
print(a) # 1
a /= 2
print(a) # 0.5
a *= 100
print(a) # 50.0
运算符优先级:
1.数学运算符 > 比较运算符号 > 逻辑运算符号 > 赋值运算符号(最低)
2.数学运算符 :** > *,/,//,%(四个同)
3.逻辑运算符 : and > or (括号先算括号内的,小括号)
三.流程控制
代码执行过程不同可以将代码分成3种结构
1.顺序结构:代码从上往下顺序执行,每条语句只执行一次。
print(1)
print(2)
print("fan")
2.分支结构:根据条件选择执行代码——if语句
age = 19
if age >= 18:
print('成年')
else:
print('未成年')
3.循环结构:代码重复执行 - for,while循环
for _ in range(20):
print('rmp')
四.分支结构
分支结构存在的价值:解决程序中‘如果xxx就xxx的问题’
if 单分支结构 -条件成立就执行某个操作
解决:如果xxx就xxx
语法:
if 条件语句:
代码段(前面必须有个缩进tab键)
说明:
a.if - 固定写法
b.条件语句 - 任何有结果的表达式(一般是判断句)
c.:(英文冒号)
d:代码段 — 结构上,和if保持一个缩进(tab)一条或者多条语句,至少一条
逻辑上,代码段里的代码就是满足条件才会执行的代码
# 案列 : 如果num是偶数就在控制台打印偶数
num = 10
if num % 2 == 0:
print('偶数')
print('可被2整除')
print('没缩进tab就和if语句没关系了')
# 练习:根据age的值打印成年
age = 81
if age >= 18:
print('成年')
# 练习2:如果year对应年份是闰年就打印闰年
year = 2004
if (year % 4 == 0 and year % 100 != 0 ) or (year % 400 == 0):
print('闰年')
if双分支结构 - 条件成立执行某个操作,条件不成立执行另一个操作
解决:如果xxx就xxx,否则就xxx
if 条件语句:
代码段1(条件成立会执行的代码)
else:
代码段2(条件不成立会执行的代码)
代码段2
# 练习1:根据num的值打印“偶数”或者奇数
num = 34
if num % 2 == 0:
print('偶数')
else:
print('奇数')
# 练习2:根据year的值打印“闰年”或者“平年”
if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
print("闰年")
else:
print("平年")
3.if多分支结构
解决:如果xxx就xxx,如果xxx就xxx,如果xxx就xxx
方法1:每个条件都会判断一次(用在多个条件中一个条件成里另外条件也可能成立的时候)
if 条件1:
代码段1
if 条件2:
代码段2
if 条件3;
代码段3
方法2:后面条件在前面条件不成立的情况下才会判断(用在多个条件其中一个条件成立,另外的条件绝对不会成立的时候)
if 条件1:
代码段1
elif 条件2:
代码段2
elif 条件3:
代码段3
…
# 案列:根据百分制的分值,打印对应等级:90及90以上- A, 8.80多-B,60,70 D,60下—D
# 方法1:
score = 78
if score >= 90:
print("A")
if 90 > score >= 80:
print("B")
if 80 > score >= 60:
print("C")
if score < 60:
print("D")
# 方法二
score = 78
if score >= 90:
print("A")
elif score >= 80:
print("B")
elif score >= 60:
print("C")
else:
print("D")
# 练习:根据num的值打印’奇数‘,’偶数‘,’4的倍数‘
num = 32
if num % 2 == 0:
print("偶数")
if num % 4 == 0:
print("四的倍数")
else:
print("奇数")
# 缩进和谁保持就收谁控制
num = 2
if num % 2 != 0:
print("奇数")![在这里插入图片描述](https://img95.699pic.com/element/40132/5408.png_300.png!/fw/431/clip/0x300a0a0#pic_center)
elif num % 4 == 0:
print('4的倍数')
print("偶数")
else:
print("偶数")
五.for 循环
1.for循环 - 让代码重复执行
语法:
for 变量 in 序列:
循环体
说明:
a.for,in,英文冒号——固定写法
b.变量 —— 可以没有定义的变量名,也可以是已经定义过的变量的变量名
c.序列 —— 容器型数据类型的数据,比如:字符串,列表,字典,集合,元组,迭代器,生成器,range等
d.循环体 —— 结构上,和for保持一个缩进的一条或者多天语句(至少一条)
逻辑上,循环体就是需要重复执行的代码
执行过程:
让变量去序列中取值,一个一个取取完为止,每取一个值就执行一次循环体
for循环次数由序列中元素个数决定
for x in 'abc': #in中多少个符号就执行多少次,abc执行3次
print('乾')
for x in 'abc':
print('乾')
for x in [10, 20, 30, 45, 50]:
print('你好')
环体 —— 结构上,和for保持一个缩进的一条或者多天语句(至少一条)
逻辑上,循环体就是需要重复执行的代码
执行过程:
让变量去序列中取值,一个一个取取完为止,每取一个值就执行一次循环体
for循环次数由序列中元素个数决定
```python
for x in 'abc': #in中多少个符号就执行多少次,abc执行3次
print('乾')
for x in 'abc':
print('乾')
for x in [10, 20, 30, 45, 50]:
print('你好')