条件控制
if后面的条件既可以是常量变量也可以是表达式
当条件为真时【True】则执行if下的语句【0,空列表,空字符串,空元组,空字典等都为False】
操作符 | 描述 |
---|---|
< | 小于 |
<= | 小于或等于 |
> | 大于 |
>= | 大于或等于 |
== | 等于,比较两个值是否相等 |
!= | 不等于 |
1. if
if 条件:
语句1
练习:判断百分及格制
grade=int(input('请输入成绩:'))
if grade >= 60:
print('及格')
2. if...else【条件为真时执行if下语句,反之执行else下的语句】
if 条件:
语句1
else:
语句2
前面只能及格才打印出来,还有不及格,加上else可以区分开
grade=int(input('请输入成绩:'))
if grade>=60:
print('及格')
else:
print('不及格')
将条件拆开看 if 对应的是 grade>=60,那么else就可以看成是 grade <60
3. if...elif...else【elif就是 else if】【满足某条条件后将不在判断后续任何条件】
if 条件:
语句1
elif 条件:
语句2
else:
语句3
大于60还可以在分为合格60-69,中等70-79,良好80-89,优秀90-100
grade=int(input('请输入成绩:'))
if grade<60:
print('不及格')
elif grade<70:
print('合格')
elif grade<80:
print('中等')
elif grade<90:
print('良好')
else:
print('优秀')
if grade <60:
表达式检查grade是否小于60。如果条件为真,则执行相应的代码块,并打印 “不及格”。- 如果第一个条件不满足,那么程序继续检查下一个条件
elif grade<70:
即如果grade大于等于 60,而又小于 70,则执行相应的代码块,并打印 “合格”。 - 如果前两个条件都不满足,程序将继续检查下一个条件
elif grade<80:
如果grade大于等于 70,而又小于 80,则执行相应的代码块,并打印 “中等”。 - 如果前三个条件都不满足,程序将继续检查下一个条件
elif grade<90:
如果grade大于等于 80,而又小于90,则执行相应的代码块,并打印 “良好”。 - 如果所有的条件都不满足,也就是grade大于 90,那么执行 else 分支,并打印 “优秀”。
每个条件都会在前面条件的基础上在判断,顺次向下执行
4. match...case【case后跟常量,case自带break,python3.10以上版本才有】
data=20
match data:
case 'Hello':
print("匹配字符Hello")
case 20:
print("匹配整数20")
case [1, 2, 3]:
print("匹配同列表[1, 2, 3]")
case {"a": 1, "b": 2}:
print("匹配同字典{"a": 1, "b": 2}")
case _:
print("通配符")
data = "str" data = 42 data = [1, 2, 3, 4] data = {"a": 1}
这四条输出均为通配符,case需要完全一致
循环
for【可知循环次数】
1. 可迭代对象
for i in seq:
seq可以是字符串,列表,元组,字典,集合等,i是可迭代对象中的从任一元素,从头到尾依次将seq中的元素全部使用,seq结束则退出循环【集合是乱序打印,但每个元素均只出现一次】
l=['a','b','c']
s='abc'
t=('a','b','c')
d={'a':97,'b':98}
j={'a','b','c'}
for i in j:#其余均相同
print(i)
2. range()【整数范围】
for i in range(start,end,step):
start:起始数,可省略,默认从0开始
end:终止数,不包括该数,不可省略
step:步长,可为负数,可省略,默认为1
i不受for内部的干扰,i的下次值为本次for的i值+step
for i in range(0,10,2):
if i== 2:
i+=1
print(i)
3. zip() 【多个迭代对象】
for i... in zip(seq,...):
以最短seq为条件,前面的变量与zip中的seq数量要一一对应
l1=['A','B','C']
l2=(65,66,67,68)
l3='abcde'
l4={'A':'a','B':'b','C':'c'}
l5={'Aa','Bb','Cc'}
for i,j,z,x,y in zip(l1,l2,l3,l4,l5):
print(i,j,z,x,y)
while【不可知循环次数】【在 Python 中没有 do..while 循环】
while 条件:
条件为真的执行语句
while循环需要自己设定循环变量,条件为假则跳出循环,任何为True的条件均为死循环
count=0
while count < 5:
print('小于5')
count+=1
print(count)
while 1:#死循环,按Ctrl+C结束
print('while')
循环一般会搭配continue或break
1. continue【跳过本次循环执行下次循环】
基本写在if下,continue前的语句正常执行,continue后的语句不在执行,直接执行下次循环
s='python'
for i in s:
if i == 'o':
continue
print(i)
'''
p
y
t
h
n
'''
num=-1
while num < 9:
num += 1
if num % 2 == 0:
continue
print(num)
2.break【退出当前循环】
基本在if下,break前的正常执行,遇到break直接退出,不在执行后续语句,且条件失效
s='python'
for i in s:
if i == 'o':
break
print(i)
'''
p
y
t
h
'''
num=0
while num < 9:
num += 1
if num % 5 == 0:
break
print(num)
3. pass【空语句】
Python pass是空语句,是为了保持程序结构的完整性。
pass 不做任何事情,一般用做占位语句