0419 学习总结
一.逻辑运算符
逻辑运算符:and、or、not
1.and(逻辑与运算)
1).应用场景:用来连接要求同时成立的两个条件,相当于生活中的并且
2).运算规则:条件1 and 条件2 - 两个条件都成立结果就是Ture;只要有一个条件不成立,结果就是False。
Ture and Ture - Ture
Ture and False - False
False and Ture - False
False and False - False
案例:判断num是否能被3和7整除
num = 345
#num是否能被3整除:num %3 == 0
#num是否能被7整除:num % 7 == 0
print('num是否能同时被3和7整除:',num % 3 == 0 and num % 7 == 0)
练习1:判断num是否是能被7整除的偶数
num = 34
print('判断num是否是能被7整除的偶数:',num % 7 == 0 and num % 2 == 0)
练习2:判断num是否是个位数能够被3整除的数
num = 109
print('判断num是否是个位数能够被3整除的数:',(num % 10) % 3 == 0)
2.or(逻辑或运算)
1)应用场景:如果两个条件中有一个条件成立即可,使用or来对这两个条件进行连接,相当于生活中的或者
2)运算规则:条件1 or 条件2 - 只要有一个成立结果就为Ture,否则为Talse
Ture and Ture - Ture
Ture and False - Ture
False and Ture - Ture
False and False - False
练习1:判断num是否能够被3或7整除
num = 23
print('num是否能够被3或者7整除',num % 3 == 0 and num % 7 == 0)
练习2:判断year对应年份是否为闰年【闰年分为世纪闰年(能被400整除)和普通闰年(能被4整除但不能被400整除)两种】
year = 2008
#世纪闰年:year % 400 == 0
#普通闰年:year % 4 == 0 and year % 400 != 0
print((year % 400) or (year % 4 == 0 and year % 400 != 0))
3.not(逻辑非)
1)应用场景:对条件进行否定时使用,相当于生活中的“不”
2)运算规则:not条件 - 对条件进行否定
not Ture - False
not False - Ture
案例1:判断age对应的值是否大于18
age=29
print(not agt > 18)
print(age < 18)
案例2:判断num是否不是偶数
num=29
print(not num % 2 == 0)
print(num % 2 != 0)
print(num % 2 == 1)
案例3:判断num是否不能同时被3和7整除
num = 23
print(not(num % 3 == 0 and num % 7 == 7)) #此时使用not更方便
#num是否不能同时被3和7整除:能被3整除但不能被7整除,或能被7整除但不能被3整除
print((num % 3 == 0 and num % 7 !=0)and(num % 3 != and num % 7 == 0))
#能同时被3和7整除,一定能被3和7的最小公倍数整除
print(num % 21 != 0)
二.赋值运算符
赋值运算符:=、+=、-=、*=、/=、%=、//=、**=
注意:不管是什么样的赋值运算符,最终都是为了将一个数据保存到一个变量中
1. =
变量名=数据 - 直接将数据保存到指定的变量中
注意: = 前面的变量名可以是没有定义过的变量名,也可以是已经定义过的变量名
a = 10
b = 15
a = 100
print(a) #100
2. +=
变量名 + 数据 - 先把变量中保存的数据取出来和后面的数据进行加法运算,再将运算结果保存在前面的变量中
注意:这的变量必须是已经赋值(定义)过的变量
#c + 10 (报错)
b += 10 #b=b+10
print(b) #25
b -= 5
print(b) #20
b %= 3
print(b) #2
3.python种不同的运算符优先级不同,优先级高的运算符先算
1)所有数学运算符>比较运算符>逻辑运算符>赋值运算符(最低)
2)数学运算符:** > *、/、%、// > +、-
3)逻辑运算符:and>or
4)有括号先算括号里面的
三.流程控制 - 通过代码控制程序执行过程
1.根据代码执行过程的不同,可以将代码分成三种结构
1)顺序代码(默认) - 代码从上往下一条一条执行,每条代码执行一次
2)分支结构(if) - 根据条件选择性执行(或不执行)部分对应代码
age = 26
if age >= 18:
print('成年')
else:
print('未成年')
3)循环结构 - 代码写一次,然后重复执行多次
for_in range(12):
print('可爱追追')
四.分支结构
1.if单分支结构:如果xxx就xxx
条件成立执行某个操作,条件不成立这个操作就不执行
1)语法:
if 条件语句:
代码块
2)说明
if - 关键字,固定写法
条件语句 - 可以是任何有结果的表达,一般都是判断语句
: - 固定写法(注意必须是英文冒号)
代码块 - 结构上,是和if保持一个缩进的一条或者多条语句(至少一句:一个缩进一般是4个空格或者一个tab键);
逻辑上,代码块就是需要满足条件才执行的代码
案例1:如果num是偶数就在控制台打印“偶数”
num = 28
if num % 2 == 0:
print('偶数')
案例2:根据score在控制台打印“不及格”
score = 10
if score < 60:
print('不及格')
2.if双分支结构:如果xxx就xxx,否则就xxx
条件成立则执行某个操作,不成立则执行另一个操作
语法:
if 条件语句:
代码块1 (条件成立的时候会执行的代码)
else:
代码块2 (条件不成立的时候会执行的代码)
代码块3(无论条件是否成立都会执行的代码)
dog = 666
if dog > 555:
print('呜呜小狗')
else:
print('咕咕蛙蛙')
rain = 80
if rain > 50:
print('佩奇跳泥坑')
else:
print('乔治煎煎饼')
3.if多分支结构:如果xxx就xxx,如果xxx就xxx,如果xxx就
根据不同的条件做不同的事情
语法:
if 条件1:
代码块1
elif 条件2:
代码块2
elif 条件3:
代码块3
… …
else :
代码块N
执行过程:先判断条件1是否成立,若成立直接执行代码块1,然后整个分支结构结束;如果条件1不成立,则去判断条件2是否成立,若成立则执行代码块2,然后整个分支结构结束;如果条件2不成立,则去判断条件3是否成立… …如果前面都不成立,才会执行else后面的代码块。
总结:后面的条件是在前面的条件不成立的情况下进行判断的。
案例1:根据score的值打印学生的等级
初学时我的答案:
更简洁完美的答案:不考虑成绩不在有效范围内
score = 69
if score >= 90:
print('A')
elif score >= 80: #执行到此处时条件1已不成立,不必写 < 90
print('B')
elif score >= 60:
print('C')
else:
print('D')
五.循环结构的作用:让代码重复执行
1. for循环
1)语法:
for 变量 in 序列:
循环体
2)说明:
for - 关键字;固定写法
变量名 - 可以是任何变量的变量名
in - 关键字:固定写法
序列 - 任何容器数据类型的数据。常见的序列:字符串、列表、字典、元组、集合、迭代器、生成器、range等
: - 固定写法
循环体 - 结构上,就是和for保持缩进的一条或多条语句(至少一条)
逻辑上,循环体就是需要重复执行的代码
补充:元素 - 一个容器可以保存多个数据,其中每一个独立的数据就是这个序列的元素
3)执行过程
让变量去序列中取值,一个一个的取,取完为止,每取一个值就执行一次循环体。
for循环的循环次数和序列中元素的个数有关
for x in 'jdiwkabdjkk':
print(x)
print('可爱薇薇')
print('可爱追追')
print('可爱召召')
nge等
: - 固定写法
循环体 - 结构上,就是和for保持缩进的一条或多条语句(至少一条)
逻辑上,循环体就是需要重复执行的代码
补充:元素 - 一个容器可以保存多个数据,其中每一个独立的数据就是这个序列的元素
3)执行过程
让变量去序列中取值,一个一个的取,取完为止,每取一个值就执行一次循环体。
for循环的循环次数和序列中元素的个数有关
for x in 'jdiwkabdjkk':
print(x)
print('可爱薇薇')
print('可爱追追')
print('可爱召召')