python的流程控制

概述

在python中主要分为3大流程结构:顺序结构、分支结构、循环结构

顺序结构:从头到尾依次执行每一条
分支结构:程序会有选择性的执行代码
循环结构:重复执行程序

一、分支结构

增加缩进:表示语句的开始
减少缩进:表示语句的结束
python中的缩进一般是按照4个空格来表示

1.1 if语句(单项分支)

判断语句本质上都是bool值

age = int(input("请输入年龄:"))
if age < 18:
    print("你的年龄小于18岁!") 

1.2 if else(双向分支)

判断一个程序的结果,如果结果成立则继续执行,否则执行另一块代码

双向分支一定会执行两段代码中一段

age = int(input("请输入年龄:"))
if age < 18:
    # 结果成立的语句
    print("你的年龄小于18岁!")
else:
    # 结果不成立时执行的代码
    print("您已满18岁!")

1.3 if elif else(多向分支)

elif这个条件可以是没有,也可以是多个

elif如果有一个满足,剩下的代码则不执行,只执行满足的代码块

age = int(input("请输入年龄:"))
if age <= 18:
    # 结果成立的语句
    print("少年阶段")
elif 19 < age < 40:
    print("青年阶段")
elif 40 < age <65:
    print("中年阶段")
else:
    print("老年阶段")

1.4 if语句嵌套

语句嵌套可以理解为套娃,将if语句一直在代码段中嵌套

age = int(input("请输入年龄:"))
if age > 0:
    if 0 <= age <= 6:
        print("儿童阶段")
    elif 6 <= age <=18:
        print("少年阶段")
    elif 18 <= age <= 40:
        print("青年阶段")
else:
    print("不在正常范围")

二、循环结构

循环就是将一段代码不断的重复,直到循环结束程序才会继续往下走

2.1 while循环

while在条件成立时,会进入代码块,但是while代码块会重复执行,直到表达式结果为False的时候才会结束

# 定义一个初始变量
a = 0
# 定义循环条件
while a < 10:
    print("执行中")
    # 让变量不断加1,直到结果为循环条件
    a += 1

nu = 1
while nu <= 100:
    print("nu = ", nu)
    nu += 1

小练习:计算1-50相乘的结果

a = 1
b = 1
while b <= 50:
    print(a)
    a = a * b
    b += 1

2.2 for循环

for循环与while循环一样

# 输出数字1-10
for a in range(1,11):
    print(a)

# 输出1-100的和
b = 1
for a in range(1,101):
    b += a
print(b)

小练习:程序运行、输入账号密码

uname = "root"
upass = "123456"
n = input("请输入账号:")
p = input("请输入密码:")
while True:
    if n == uname and p == upass:
        print("登陆成功")
        break
    else:
        print("输入错误,请重试!")
        break

2.3 break和continue

break和continue是循环中满足一定条件退出循环的关键字

break:退出整个循环
continue:退出本次循环

for a in range(1,11):
    if a == 5:
        print("数值达到")
        continue
    print("数值:",a)

2.4 循环嵌套

循环嵌套就是循环中套循环

# 外语句执行两次
for i in range(2):
    print("小刚小兰在打球")
    #内语句执行两次,外语句执行一次,内语句就执行两次
    for a in range(2):
        #得到的结果是执行了六次,两次外语句,四次内语句
        print("小明小红在跳绳")

小练习:乘法口诀表

for i in range(1, 10):
    for j in range(1, i+1):
        print(f'{j}x{i}={i*j}\t', end='')
    print()

小练习2:打印房间号

for a in range(1,10):
    for b in range(1,11):
        print(str(a) + "0" + str(b) + "号",end=' ')
    print('\n')