【一】流程控制语句介绍
- 程序是由语句构成,而流程控制语句是用来控制程序中每条语句执行顺序的语句
- 流程控制方式有
- 顺序结构
- 分支结构
- 循环结构
- 最简单最常用的就是顺序结构,执行方式是从上至下一句一句来
【二】顺序结构
【1】什么是顺序结构
- 顺序结构是指按照代码书写的顺序,一条语句接着一条语句执行,没有跳过、重复或其他特殊的结构
- 程序按照从上至下的顺序逐行执行
【2】顺序结构的作用
- 顺序结构用于按照既定的顺序执行一系列的操作,这是程序执行的最基本模式
- 顺序结构让我们可以清晰地表达程序的逻辑流程,使代码更加清晰易懂
【三】分支结构
【1】什么是分支结构
- 分支结构是根据条件的成立与否选择性地执行不同的代码块
- 在分支结构中,根据条件的判断结果,程序会有不同的执行路径
【2】分支结构的作用
- 分支结构的主要作用是根据不同的条件执行不同的代码,从而实现灵活的程序逻辑
- 通过分支结构,程序可以根据用户的输入、计算的结果等情况来选择执行不同的代码块
【3】单分支结构
- 单分支结构(if)指的是程序根据条件的成立与否,执行两个分支中的其中一个
- 常见的单分支结构语法是
if
语句
#单分支结构用于在条件成立时执行相应的代码块
age = 18
if age >= 18:
print("恭喜你成年了")
相关补充
- Python用相同缩进(4个空格表示一个缩进)来标识一组代码块,同一组代码会自上而下依次运行
- 条件可以是任意表达式,但执行结果必须为布尔类型
- 在if判断中所有的数据类型也都会自动转换成布尔类型
- None,0,空(空字符串,空列表,空字典等)三种情况下转换成的布尔值为False
- 其余均为True
【4】双分支结构
- 双分支结构(if-else)也是根据条件的成立与否,选择性地执行不同的代码块
- 与单分支结构不同的是,双分支结构有两个分支,分别对应条件成立和条件不成立的情况
#双分支结构用于在条件成立时执行一个代码块,在条件不成立时执行另一个代码块
age = 16
if age >= 18:
print("恭喜你成年了")
else:
print("你还未成年哦!")
【5】多分支结构
- 多分支结构(if-elif-else)是在双分支结构的基础上扩展,它包含多个分支,每个分支都对应不同的条件
- 程序根据条件的成立情况选择性地执行相应的代码块
if 条件1:
# 如果条件1成立,执行这里的代码块
elif 条件2:
# 如果条件1不成立且条件2成立,执行这里的代码块
else:
# 如果条件1和条件2都不成立,执行这里的代码块
score = 85
if score >= 90:
print("优秀")
elif score >= 80:
print("良好")
else:
print("一般")
【6】多层嵌套结构
- 多层嵌套结构是通过在不同层次上使用if语句嵌套形成的结构
- 每一层的分支结构都可以根据不同的条件进行选择性的执行
age = 25
if age >= 18:
if age <= 25:
print("年龄在18到25岁之间。")
else:
print("年龄大于25岁。")
else:
print("年龄小于18岁。")
【四】循环结构
【1】什么是循环结构
- 循环结构一般反复执行一组语句,直到满足某个条件为止
- 这种重复执行的过程可以是固定次数的,也可以是根据条件动态确定的
【2】while循环
#当条件为真时,循环体会一直执行,循环体是需要重复执行的代码块
count = 0
while count < 5:
print("count:", count)
count += 1
print("good!")
#输出
#count: 0
#count: 1
#count: 2
#count: 3
#count: 4
#good!
登陆认证案例
- 用户认证程序的基本逻辑就是接收用户输入的用户名密码然后与程序中存放的用户名密码进行判断,判断成功则登陆成功,判断失败则输出账号或密码错误
dict = {'username': 'ligo','password': '1234'}
name = input("请输入用户名:")
pwd = input("请输入密码:")
if name == dict['username'] and pwd == dict['password']:
print("登录成功")
elif name not in dict['username']:
print("当前用户不存在")
else:
print("登录失败")
- 通常认证失败的情况下,会要求用户重新输入用户名和密码进行验证
- 为了不让我们复制三遍代码,我得用while循环
dict = {'username': 'ligo','password': '1234'}
count = 0
while count < 3:
name = input("请输入用户名:")
pwd = input("请输入密码:")
if name == dict['username'] and pwd == dict['password']:
print("登录成功")
elif name not in dict['username']:
print("当前用户不存在")
else:
print("登录失败")
count += 1
【3】for循环
numbers = ["one", "two", "three"]
print("one" in number) # True
print("six" in number) # False
for number in numbers:
print("number:", number)
print("I got it")
#输出
#number: one
number: two
number: three
I got it
【4】退出循环(break)
count = 0
while count < 5:
print(count)
if count == 3:
break # 当 count 等于 3 时,退出循环
count += 1
(3)登录案例(while循环-break)
- 使用break结束循环
dict = {'username': 'ligo','password': '1234'}
count = 0
while count < 3:
name = input("请输入用户名:")
pwd = input("请输入密码:")
if name == dict['username'] and pwd == dict['password']:
print("登录成功")
break
elif name not in dict['username']:
print("当前用户不存在")
else:
print("登录失败")
count += 1
(4)登录案例(while循环嵌套-break)
- 要退出循环需要在每一层循环都有一个break
username = "Dream"
password = "123"
count = 0
while count < 3: # 第一层循环
inp_name = input("请输入用户名:")
inp_pwd = input("请输入密码:")
if inp_name == username and inp_pwd == password:
print("登陆成功")
while True: # 第二层循环
cmd = input('>>: ')
if cmd == 'quit':
break # 用于结束本层循环,即第二层循环
print('run <%s>' % cmd)
break # 用于结束本层循环,即第一层循环
else:
print("输入的用户名或密码错误!")
count += 1
【5】退出循环(continue)
count = 0
while count < 4:
count += 1
if count == 2:
continue # 当 count 等于2 时,跳过当前循环,继续下一次循环
print(count)
#break是完全退出循环,而continue是跳过当前循环,直接进入下一次循环。
【6】无限循环(死循环)
- 通过while循环实现无限循环
- 因为条件永远为真,所以循环不会退出,直到达到某个条件时,才会退出循环
while True:
number = input("请输入一个数字:")
if number == "18":
print("数字输入正确!")
break
else:
print("请再试一次")
【7】标志位
(1)使用
flag = True
while flag: #初始标志位
number = input("请输入一个数字:")
if number == "18":
print("数字输入正确!")
flag = False 修改标志位,退出循环
else:
print("请再试一次")
(2)登录案例
list = [{'username': 'admin','password':'1234'}]
flag = True
while flag:
user = input("请输入用户:")
pwd = input("请输入密码:")
for dict in list:
if user == dict['username'] and pwd == dict['password']:
print("登陆成功")
flag = False
break
else:
print("登录失败")
【9】循环分支(else)
- 在while循环中,else语句会根据是否有break来决定是否继续执行语句,如果前面没有,就会执行后面的语句,如果有break,就不会执行,直接退出循环
#循环中没有break
count = 0
while count <= 3:
count +=1
print(count)
else:
print("循环结束")
#输出 1 2 3 4
#循环中有break
count = 0
while count <= 3:
count +=1
print(count)
break
else:
print("循环结束")
#输出 1
【10】range关键字
(1)遍历数字序列
for i in range(stop):
# 循环体
for i in range(start, stop):
# 循环体
for i in range(start, stop, step):
# 循环体
(2)指定区间
for i in range(1, 10):
print(i)
#输出 1 2 3 4 5 6 7 8 9
(3)步长
for i in range(1, 10,2):
print(i)
#输出 1 3 5 7 9
(4)range +len遍历序列
list = [1, 2, 3, 4, 5, 6, 7, 8, 9]
for i in range(len(list)):
print(f"{list[i]} + {i}")
#输出
# 1 + 0
# 2 + 1
# 3 + 2
# 4 + 3
# 5 + 4
# 6 + 5
# 7 + 6
# 8 + 7
# 9 + 8
(5)range创建
number = list(range(1,10))
print(number) #输出[1, 2, 3, 4, 5, 6, 7, 8, 9]
number = list(range(1,10,2))
print(number) #输出[1, 3, 5, 7, 9]
【五】循环分支嵌套
- 循环与分支结构嵌套在一起,下面代码外循环与内循环都执行了三次
for i in range(3):
print(i)
for j in range(3):
print(j)
#0 0 1 2 1 0 1 2 2 0 1 2
# 案例
while 1:
score = input("请输入您的成绩>>") # "100"
if score.isdigit():
score = int(score) # 100
if score > 100 or score < 0:
print("您的输入有误!")
elif score > 90:
print("成绩优秀")
elif score > 70: # else if
print("成绩良好")
elif score > 60:
print("成绩及格")
else:
print("成绩不及格")
else:
print("请输入一个数字")
标签:语句,count,Python,流程,else,while,循环,print,分支
From: https://www.cnblogs.com/ligo6/p/18179730