5. 流程控制

1. 流程控制的分类

1.1 顺序结构:

从上往下依次执行代码

1.2 分支结构:

根据条件判断的结果作出不同的执行流程

单if分支

if 条件:

    条件成立之后执行的子代码

    子代码可以有多行

goals = 95
if goals > 91:
    print('good')

if、else分支

if 条件:
    条件成立之后执行的子代码
    子代码可以有多行
else:
    条件不成立执行的子代码
 子代码可以有多行

goals = 91
if goals >= 95:
    print("real qiuyu")
else:
    print('fake qiuyu')

if、elif、else分支

if 条件1:
    条件1成立时执行的子代码
    子代码可以有多行
elif 条件2:
    条件1不成立;;;条件2成立执行的子代码
    子代码可以有多行
elif 条件3:
    条件1和条件2都不成立;;;条件3成立执行的子代码
    子代码可以有多行
else:
    上述条件都不成立;;;执行的子代码
    子代码可以有多行
score = int(input('请输入成绩: '))
if score < 60:
    print('不及格')
elif 60 <= score < 70:
    print('及格')
elif 70 <= score <80:
    print('中等')
else:
    print('优秀')

1.3 循环结构

1.3.1 while循环

while 条件:
    条件成立之后执行的循环体代码

1.判断条件是否成立,如果成立则执行循环体代码
2.循环体代码执行完毕后,再次判断条件是否成立;
  如果成立则继续执行循环体代码;
  如果不成立则跳出循环

while+continue的应用

用于结束本次循环,直接开始下一次循环

while+break的应用

当程序执行达到某一条件时就结束本层循环

# 当用户名和密码输入正确时,显示登录成功,并且结束循环,按顺序执行同级代码;
# 输入错误时,显示用户名或密码错误,无限获取输入,直到正确
while True:  # 条件恒成立,无限循环
    name = input("What is your name:")
    pwd = int(input("enter your password:"))
    if name == "messi" and pwd == 91:
        print("登录成功")
        break  # 结束本层循环,按顺序执行循环同级打印real qiuyu代码
    else:
        print("登录失败,重新输入用户名密码")
print("real qiuyu")

标志位的应用


# 打印0~10的数字,当数字为3时不打印,跳出本次循环,当数字为9时结束循环
num = 0
status = True
while status:
if num == 3:
print('已跳出数字为3的循环')
num += 1
elif num == 9:
print('当前num为9,结束循环')
status = False
else:
print(num)
num += 1

while循环练习题

给定一个确认的数字,让用户猜测,猜大了猜小了给予提示,

错误的时候让用户重复尝试 3 次
3次全部错误再结束程序

3次结束以后让用户选择是否再继续猜
继续猜再给他 3 次机会

# goals = 95
fail_times = 0
tag = True
while tag:
    imagine = int(input('请猜测进球数量,只能输入整数:'))
    if imagine == 95:
        print('正确')
        break
    else:
        if imagine > 95:
            print('猜多了')
        else:
            print('猜少了')
        fail_times += 1
        if fail_times == 3:
            status = True
            while status:
                info = input('已错3次,输入y继续3次,输入n结束:')
                if info == 'y':
                    print('还剩3次机会')
                    status = False
                elif info == 'n':
                    tag = False
                    status = False
                else:
                    print('输入格式错误,请重新输入')
        if fail_times == 6:
            break

使用while循环遍历列表的每个元素

1.3.2 for循环

预备知识:range函数

range可以生成一个指定区间的数字列表

range用法
# 用法1:括号内只写一个数字,默认从0开始,顾头不顾尾
for a in range(10):
    print(a)  # 依次打印0~9

# 用法2:括号内写两个数字,自定义起始位置,顾头不顾尾
for b in range(5, 10):
    print(b)  # 依次打印5~9

# 用法3:括号内写三个数字,第三个数字为等差数列的公差,默认为1
for c in range(1, 10, 2):
    print(c)  # 依次打印1 3 5 7 9

 for循环在遍历字典的时候默认拿到的是字典的键

 1.4 三元运算

例:比较两个数的大小

a = 10
b = 20
if a > b:
    print(a)
else:
    print(b)

三元表达式优化代码

a = 10
b = 20
print(a if a > b else b)

语法格式:为真的结果 if 条件 else 条件为假的结果

用到元组或者字典上

布尔值  真  取数字1    假   取数字0

 布尔值  真  取数值True       假    取数值False

 

 

 


  

posted @ 2024-07-17 18:36  hbutmeng  阅读(3)  评论(0编辑  收藏  举报