python流程控制
python流程控制

1.成员运算
-
作用:判断某个个体在不在某个群体内
-
关键字:in(在)、not in(不在)
# 表示方法 name = "jenny" print("n" in name) # 返回True list = ["jenny","jane","jason"] print("jason" not in list) #返回False print("jane" in lit) # 返回True # 字典的成员运算不同于列表,由于字典是key:value的形式,而value才是真正的值,所以不能直接判断value是否在,只能通过key值进行判断,字典默认暴露给外界的只有k值 msg_list = { "name": "jane", "age": 20, "hobby": "study" } print("name" in msg_list) # 返回True print("sex" in msg_list) # 返回False
2.身份运算
-
定义:用来判断两个数据的值是否相等、地址是否相同
-
关键字:"=="(只判断值)、"is"(判断内存地址)
# 表示方法 s1 = ["jane", "jenny", "john", "jason"] s2 = ["jane", "jenny", "john", "jason"] print(s1 == s2) # 返回True print(id(s1), id(s2)) # 返回s1,s2内存地址 print(s1 is s2) # 返回False ''' 值相等内存地址不一定相等 内存地址相同值一定相等 '''
3.流程控制
- 定义:所谓流程控制就是控制事物的执行流程
- 任何事物执行流程控制只有三种结构:顺序结构、分支结构、循环结构
必知必会
1.条件都会转成布尔值 从而决定子代码是否执行
2.在python中 使用缩进来表示代码的从属关系
3.并不是所有的代码都可以拥有子代码
4.同属于某个代码的多行子代码 必须要保持相同的缩进量
在python中推荐使用四个空格来缩进

顺序结构
- 所谓的顺序结构就是自上而下按顺序依次执行。

分支结构
- 分支结构就是按照不同的条件判断事物的执行情况
- 关键字:if
![image]()
单分支结构:if
# 语法结果
if 条件:
条件成立后执行的子代码块
# 小练习
salary = int(input("your salary:"))
if salary < 5000:
print("活不下去了")

双分支结构:if-else
# 语法结果
if:条件
条件成立时执行的子代码块
else:
条件不成立时执行的子代码块
# 小练习
salary = int(input("your salary:"))
if salary < 3000:
print("活不下去了")
else:
print("勉勉强强")

多分支结构:if-elif-else
# 语法结果
if:条件1
条件1成立时执行的子代码块
elif:条件2
条件1不成立条件2成立时执行的子代码块
elif:条件3
条件1和2都不成立条件3成立时执行的子代码块
else:
上述条件都不成立时执行的子代码块
'''当有一个条件成立时其他条件不再判断'''
# 小练习
salary = int(input("your salary:"))
if salary < 3000:
print("活不下去了")
elif salary < 5000:
print("勉勉强强")
elif salary < 10000
print("还过得去")
else:
print("生活有了一点奔头")

if分支嵌套
# 语法结果
if:条件
条件成立时执行的子代码块
if:条件1
条件1成立时执行的子代码块
else:
条件1不成立时执行的代码块
else:
条件不成立时执行的代码块
'''嵌套循环只有当外层条件成立时才会判断内层的条件
只有当内层条件判断执行完以后才会执行外层
'''
# 小练习
age = int(input("your age:"))
weight = int(input("your weight:"))
height = int(input("your height:"))
is_beautiful = True
is_successful = True
if 20 < age < 22 and weight < 100 and height and is_beautiful:
print("小姐姐能加个微信吗?")
if is_successful:
print("晚上一起吃个饭吧")
else:
print("不好意思,没兴趣")
else:
print("算了,缘分不可强求")

循环结构
- 循环结构就是重复执行某一项工作
- 关键字:while
![image]()
while循环
# 语法结果
while:条件
条件成立时执行的子代码块
'''while循环只有当条件为False时循环才会结束,
条件一直成立,循环一直执行,while用于循环次数未知的情况
'''
# 小练习
while True:
# 获取用户输入
username = input("your name:")
password = input("your password:")
#根据用户的输入进行判断
if username == "jenny" and password == "123":
print("这位爷,里面请")
else:
print("穷逼给爷爬")
'''
当条件为真,子代码块会一直循环执行,形成死循环的情况
'''

while +break
# while + break
break表示结束本层循环
# 小练习
while True:
username = input("your name:")
password = input("your password:")
if username == "jenny" and password == "123":
print("这位爷,里面请")
# 结束本层循环
break
else:
print("穷逼给爷爬")
'''
当加了break以后,条件判断成立,循环结束
'''
break和嵌套循环
# while嵌套循环
while True:
# 获取用户输入
username = input("your name:")
password = input("your password:")
# 判断用户输入的内容
if username == "jenny" and password == "123":
print("这位爷,里面请")
# 内层循环
while True:
# 获取用户输入
cmd = input("请输入您的指令:")
# 判断用户输入
if cmd == "sp":
print("请跟我来~")
# break结束内层循环
break
# break结束本层循环
break
else:
print("穷逼给爷爬")
'''
break的意思是遇到break时结束当前循环,
当遇到嵌套循环时,break在哪个循环里,就是结束哪个循环
'''

全局标识位
# 标志位的使用
flag = True
while flag:
username = input("your name:")
password = input("your password:")
if username == "jenny" and password == "123":
print("这位爷,里面请")
while flag:
cmd = input("请输入您的指令:")
if cmd == "sp":
print("请跟我来~")
flag = False
else:
print("穷逼给爷爬")
'''
全局标识位和break的区别:
1.break是结束当前层循环,
2.但存在全局标识位的时,不论标识位在哪一层循环,
只要存在标识位==“False”,循环都会结束
'''

while+continue
#while+continue
continue表示结束本次循环,开始下次循环
# 小练习:打印出从0-10以内的数,不打印4
# 1.定义一个初始变量
count = 0
# 2.根据条件进行while循环
while count < 11:
# 5.判断count的值
if count == 4:
# 6.变量值自增1
count += 1
# 7.当count为4时结束本次循环,开始下一次循环
continue
# 3.打印count的值
print(count)
# 4.变量值自增1
count += 1

while+else
# while+else
# 表现方式一
count = 0
while count < 5:
print(count)
count += 1
else:
print("给爷爬!") # else后面的内容会输出
count = 0
# 表现方式二
while count < 5:
if count == 4:
break
print(count)
count += 1
else:
print("给爷爬!") # else后面的内容会输出
# 当while和else连用时,只要不是人为的终止循环,else后面的内容会照常输出
今日作业:
# 要求:用户可以有三次猜错的机会 如果过程中猜对了直接退出
# 三次机会用完之后提示用户是否继续尝试 如果是则再给三次机会 如果否则直接结束
# 1.定义一个变量real_age,计数器count,
# 2.while循环,获取用户输入,根据用户输入进行判断
# 3.当用户输入正确,结束本层循环,反之计数器+1,循环继续执行,直到while后面条件不成立时
# 4.当用户输入错误时,根据count的值进行判断,当count为3时,提示用户是否继续尝试
# 5.当用户选择继续尝试,输入“是”,则用户重新获得三次机会,count从0开始计数,反之游戏继续
real_age = 25 # 定义一个变量real_age
count = 0 # 定义计数器count,给个初始值0
while count < 3: # while循环,count = 3时结束
guess_age = int(input(" please input your age:")) # 获取用户输入的信息
if guess_age == real_age: # 根据获取到的用户输入进行判断
print("恭喜你猜对了!")
print("游戏结束.....")
break # 结束本层循环
else:
count += 1 # 计数器count依次递增
print("很遗憾你猜错了")
if count == 3: # 根据计数器的值进行判断
count = 0 # count重新开始计数
print("很遗憾,你还有%s次机会,是否继续" % (3 - count))
judgement = input("是否继续:") # 获取用户输入
if judgement == "是": # 根据用户的输入进行判断
print("恭喜你重新获得了三次机会!")
else:
print("游戏结束.....")
break # 结束本次循环
else:
print("你还有%s次机会" % (3 - count))



浙公网安备 33010602011771号