day 2运算符和分支
一、逻辑运算符:and、or、not
1、and(逻辑且运算)
1)应用场景:用来连接要求同时成立的两个条件,相当于生活中的并且。
2)运算规则:条件1 and 条件2 — 两个条件都为True,结果为True,只要有一个条件为False,结果为False。
# 案例1:判断231能否被3和7整除
num = 231
print(num % 3 == 0 and num % 7 ==0)
print(num % 21 == 0)
# 案例2:判断num 是否个位数能被3整除
# 1.第一种方法:
num = 109
print("num是否个位数能被3整除:",num % 10 % 3 == 0)
# 2.第二种方法:
num = 109
num1 = num % 10
print(num1 % 3 == 0)
# 3.第三种输入数字
num = int(input("请输入数字:"))
print(num % 10 % 3 == 0)
2、or (逻辑或运算)
1)应用场景:如果要求两个条件中有一个条件成立,就用来连接,相当于生活中的或者。
2)运算规则:条件1 or 条件2 — 只要有一个条件成立结果就是True,否则就是False。
# 案例1.判断num是否能被3或者7整除
num = 23
print("num能否被3或者7整除:",num % 3 == 0 or num % 7 == 0)
# 案例2.判断2008年是否是闰年(闰年能被400整除,或者能被4整除且不能被100整除的年份)
year = 2008
print((year % 400 ==0) or (year % 4 ==0 and year % 100 != 0))
3、not (逻辑非运算)
1)应用场景:对条件进行否定,相当于生活中的”不“
2)运算规则:not 条件
# 案例1 :判断age 对应的值是否不大于18
age = 23
print(not age > 18)
# 案例2:判断num是否不能同时被3和7 整除
num = 26
print(not(num % 3 == 0 and num % 7 ==0))
二、赋值运算符
- 赋值运算符:= 、+= 、-+、 *=、/ =、//=、%= 、**=
- 注意:不管是什么样的赋值运算,最终都是为了将一个数据保存到一个变量中。
1、=
语法:变量名 = 数据 — 直接将指定的数据保存到指定的变量中。(这儿的变量名可以是没有定义过的变量,也可以是定义过的变量)
a = 10
b = 10
a = 100
print(a) # 100
2、+=
变量名 += 数据 - 表示先将变量中的保存的数据取出来和后面的数据进行加法运算,在将运算结果保存到前面的变量名中。
- 注意:这儿的变量必须是已经赋值过(定义过)的变量
a = 100
b = 20
b += 10 # b = b + 10
print(b) # 30
a //= 3 # a = a // 3
print(a) #33
三、运算符优先级
-
数学运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符(最低)
-
数学运算符:**(幂运算)> 乘、除、%(取余)、//(整除) > 加减
-
逻辑运算符:and > or
-
有括号先算括号里面的
四、流程控制
1、定义:流程控制是指通过代码控制执行过程
2、根据代码的执行过程不同,可以将代码分成三种结构
- 顺序结构(默认) – 代码从上往下一条一条的执行,每行代码执行一次
- 分支结构(if) - - 根据条件选择性的执行相关的代码
- 循环结构(for) – 代码写一遍,重复执行多次
五、if分支结构
1、if 单分支结构:如果xxx就xxx。(表示条件成立执行某个操作,条件不成立就不执行这个操作)
1)语法:
if 条件语句:
代码块
2)说明:
if — 关键字。固定写法
条件语句 — 任何有结果的表达式,一般是判断语句
: — 固定写法(注意:必须是英文状态下的冒号)
代码块 — 结构上和if保持一个缩进的一条或者多条语句(至少一条,一个缩进一般为4个空格,或者按一次tab键),逻辑上,代码块需要满足条件才执行代码
# 案例:如果num是偶数,就在控制台打印”偶数“
num = 22
if num % 2 == 0:
print("偶数")
2、if 双分支结构:如果xxx就xxx,否则就xxx。(表示条件成立执行某个操作,条件不成立执行另一个操作)
语法:
if 条件语句:
代码块1(条件成立时执行的代码)(缩进表示此代码块受条件的控制)
else:
代码块2 (条件不成立时执行的代码)
代码块3(不管条件成立与否都会执行)
# 案例:根据socre的值在控制台打印“不及格”“及格”
socre = 80
if socre >= 60:
print("及格")
else:
print("不及格")
3、if多分支结构:如果xxx 就xxx,如果xxx 就xxx,如果xxx 就xxx,…(表示根据不同条件做不同的事)
1)语法:
if 条件1:
代码块1
elif 条件2:
代码块2
…
else:
代码块n
2)执行过程:先判断条件1是否成立,如果成立直接执行代码块1,然后分支结构结束;如果条件1不成立,才去判断条件2是否成立,如果成立直接执行代码块2,然后整个分支结构结束;如果前面的条件都不成立,才会执行else后面的代码块。
- 总结:后面的条件是前面的条件不成立的情况下判断的。
# 案例:根据socre的值打印学生的等级,>=90 - A; 80-89 -B;60-79 - C;60以下打印D
socre = 69
if socre >= 90:
print("A")
elif socre >= 80:
print("B")
elif socre >= 60:
print("C")
else:
print("D")
六、for循环
1、for 循环
1)语法:
for 变量 in 序列:
循环体
2)说明:
for – 关键字,固定写法
变量 – 可以是任何变量的变量名
in – 关键字,固定写法
序列 – 任何容器型数据类型的数据。常见的序列:str 、列表、字典、元组、集合、迭代器、range等
循环体 — 结构上和for保持一个缩进的一条或者多条语句(至少一条),逻辑上,循环体就是需要重复执行的代码
补充: 元素 - - 一个容器可以同时保存多个数据,其中每一个独立的数据就是这个序列的元素
3)执行过程:
让变量去序列中取值,一个一个的取,取完为止,每取一个值就执行一次循环体。
for循环的循环次数和序列中的元素个数有关
for x in "abc": #abc 共3个元素,会执行3次循环
print("你好")