0%

if条件语句和while循环

python的第三节课笔记(基础入门)

if 条件语句:

缩进( 快捷键:tab):在Python中一般使用四个空格表示一个缩进,表示层级关系。

单项选择:

1
2
3
4
if  后面接的是判断条件:
满足条件的时候执行的代码
else:
不满足条件的时候执行的代码
1
2
3
4
5
6

deng = "yellow" # 设置灯的状态为黄色
if deng == "red": # 判断灯是不是红色
print("请停止")
else:
print("请通过")

多项选择:

以上代码的问题 黄灯和绿灯界限不够明显
原因 只有两种判断(红灯和其他)
解决 增加判断(红灯、绿、黄)
多中情况判断可以使用 if - elif - else
1
2
3
4
5
6
7
8
9
if 条件1:
满足条件1执行
elif 条件2:
满足条件2执行
………………
elif 条件n:
满足条件n执行
else:
以上条件全部不满足时执行

注意:

  • if elif else 语句后面必须有冒号
  • 里面的代码必须缩进
  • if 建议只有一个 ,elif 不限制个数
  • else只能有一个,并且不需要写判断条件
1
2
3
4
5
6
7
8
9
light = input("请输入一个灯的状态:")
if light == "red":
print("红灯,请稍等")
elif light == "yellow":
print("黄灯,请减速慢行")
elif light == "green":
print("请快速通过")
else:
print("交通灯故障")

三目运算:

语法形式:条件成立执行的代码 if 判断条件 else 条件不成立执行的代码
1
2
3
4
5
lm = 31
if lm <= 30:
print("小于")
else:
print("大于") # lm > 30

可以等同于:

1
2
lm = 31
print("小于" if lm <= 30 else "大于" )

if 嵌套:

if 判断里面还有一个if 判断
1
2
3
4
5
6
7
8
if 条件1:
满足条件1执行
if 条件:
条件满足执行
else:
条件不满足执行
else:
以上条件全部不满足时执行

注意:

  • input不管输入什么返回的都是字符串, 字符串和数值不能比较
1
2
3
4
5
6
7
8
9
10
11
ticket = input("请输入是否有票(1表示有,0表示没有)")
if ticket == '1': # 将判断条件给为字符串,与输入的类型一致
print("有票")
# 将输入转为数值,与判断条件数据一致
dao_len = float(input("请输入道具长度:"))
if dao_len <= 30:
print("符合标准")
else:
print("不符合安检标准!!!")
else:
print("没有票")

逻辑运算符:

and 两者为真,结果为真, 只要有一个False就为假
or 两者有一个为真,结果为真
not 取反 True –> False False —> True
1
2
3
4
5
6
7
8
print(True and False)   #False
print(True and True) #True
print(False and False) #False
print(True or False) #True
print(True or True) #True
print(False or False) #False
print(not False) #True
print(not True) #False
1
2
3
4
5
6
7
8
# 案例:相亲要求,又有房又帅(and)
car = input("请输入是否有房(T表示有,F表示没有)") # 将输入全部转化为答谢
cool = input("请输入是否帅气(T表示有,F表示没有)")
print(car, cool)
if car == "T" and cool == "T":
print("相亲成功!")
else:
print("相亲失败!")
1
2
3
4
5
6
7
8
# 案例:相亲要求,有房或者帅(or)
car = input("请输入是否有房(T表示有,F表示没有)") # 将输入全部转化为答谢
cool = input("请输入是否帅气(T表示有,F表示没有)")
print(car, cool)
if car == "T" or cool == "T":
print("相亲成功!")
else:
print("相亲失败!")
1
2
3
4
5
6
7
8
#案例:相亲要求,没房或者不帅(not)
car = input("请输入是否有房(T表示有,F表示没有)") # 将输入全部转化为答谢
cool = input("请输入是否帅气(T表示有,F表示没有)")
print(car, cool)
if not car == "T" or not cool == "T":
print("相亲成功!")
else:
print("相亲失败!")

优先级:

not > and > or
1
2
3
print(True or False and False)  # True
print(not False and False) # False
print(not False or False) # True

while循环:

1
2
3
4
5
6
初始化条件值
while 条件:
满足条件要执行的代码
自增条件

不满足条件的时候,结束循环
1
2
3
4
5
#打印10次苏
i = 1
while i < 11:
print("苏")
i = i + 1

注意:

  • 自增条件的目的是为了让代码有结束循环的可能
  • 如果条件恒为真,则此循环为死循环

跳出循环

break 手动提前跳出循环
continue 跳过当前循环,其他循环按要求执行
1
2
3
4
5
6
# 案例:假如每天学习,周1~周7
day = 1
while day <= 7:
print(f"今天是周{day},好好学习")
# day = day + 1
day += 1
1
2
3
while True:
print("死循环")
break # 主动结束循环
1
2
3
4
5
6
7
8
#案例:学到周5,周末开摆不学了
day = 1
while day <= 7:
print(f"今天是周{day},好好学习")
# day = day + 1
day += 1
if day == 6: # 增加判断条件,由于周五学习之后,day加到了6,所以判断条件时6
break
1
2
3
4
5
6
7
8
9
#案例:学到周4想休息一天,周五周六还是继续学习
day = 0
while day <= 7:
# day = day + 1
day += 1
if day == 4:
print("休息啦!!!")
continue # 跳过的是剩余代码
print(f"今天是周{day},好好学习")

注意:

  • 当循环正常结束的时候会执行else里面的代码
  • break是强制退出,不执行else的代码
  • continue是正常结束,执行else
  • 只要是循环,不管是while还是for,都可以和continue以及break
1
2
3
4
5
6
a = 1
while a < 4:
print(a)
a += 1 # a = a + 1 给a 加1
else:
print("循环结束啦!!!")
1
2
3
4
5
6
7
8
a = 0
while a < 4:
a += 1 # a = a + 1 给a 加1
if a == 3:
break # 强制退出循环
print(a)
else:
print("循环结束啦!!!")
1
2
3
4
5
6
7
for i in range(5):  # 从0~4
if i == 2:
# break # 强制退出,不执行
continue
print(i)
else:
print("劳动结束!!!")

嵌套循环

注意:

  • 先判断外层循环
  • 外层条件满足,判断内层循环
  • 内层循环结束,回到下一次外层循环
按每月4周,每周7天打印日历表

第1周,第1天
……
第1周,第7天
第2周,第1天
……
第4周,第7天

1
2
3
4
5
6
7
week = 1  # 初始化周数
while week <= 4:
day = 1 # 初始化天数
while day <= 7:
print(f"第{week}周,第{day}天")
day += 1 # 自增条件
week += 1 # week = week + 1

反面教材:

1
2
3
4
5
6
week = 1  # 初始化周数
day = 1 # 初始化天数
while week <= 4 or day <= 7:
print(f"第{week}周,第{day}天")
day += 1 # 自增条件
week += 1 # week = week + 1

运行结果为: