python的流程控制

78 阅读6分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第4天,点击查看活动详情

大家好,我是木大木大,因为疫情和环境原因啊,在家开始了自学python的路子,从此深坑加一人。后面我会每天持续更新一些学习python的过程,当然一开始就是一些基础啦,希望大家多多支持,莫嫌弃啦~

一 流程控制

1.1 分支结构

违反缩进规则的程序不能通过编译

python利用缩进表示语句块的开始和退出

增加缩进表示语句块的开始,减少缩进表示语句块的退出

if语句
if 表示式:
    代码块

if...else..语句
if 表达式:
    代码块 1
else:
    代码块 2


if...elif..else语句
if 表达式1:
    代码块 1
elif 表达式2:
    代码块 2
elif 表达式3:
    代码块 3
....  
else:
    代码块 n
    
表达式可以是一个单一的值或者变量,也可以是由运算符组成的复杂语句,形式不限,只要它能得到一个值就行
代码块由具有相同缩进量的若干条语句组成
ifelifelse语句的最后都有英文冒号,不要忘记
一旦某个表达式成立,python就会执行它后面对应的代码块;如果所有表达式都不成立,那就执行else后面的代码块;如果没有else部分,那就什么也不执行

1.1.1 if语句(单向分支)

# 如果你已经满了18岁,就可以进入网吧嗨皮了
if 判断语句:
    判断成立执行的语句块
age = int(input("请输入年龄:"))
if age >= 18:
    print("恭喜你,可以进入网吧嗨皮了")

1.1.2 if...else(双向分支)

# 如果你已经满了18岁,就可以进入网吧嗨皮了,如果未满18,则提示未成年,请不要进入网吧
age = int(input("请输入年龄:"))
if age >= 18:
    print("恭喜你,可以进入网吧嗨皮了")
else:
    print("未成年禁止进入网吧")

1.1.3 if...elif...else(多向分支)

# 从上往下判断,如果某个表达式为True了就不会再往下执行了
if 条件表达式1:
    执行语句1
elif 条件表达式2:
    执行语句2
elif 条件表达式3:
    执行语句3
elif 条件表达式4:
    执行语句4
...
else:
    执行语句n
在控制台输入您的成绩分数
如果你考了90分以上  优秀
如果你考了80分以上  良好
如果你考了70分以上  中等
如果你考了60分以上  合格
否则              不合格

score = float(input("请输入您的成绩:"))
if score >= 90:
    print("优秀")
elif score >= 80:
    print("良好")
elif score >= 70:
    print("中等")
elif score >= 60:
    print("合格")
else:
    print("不合格")

1.1.4 if语句嵌套

if 表达式1:
    if 表达式2:
        语句块2
    else:
        语句块3
else:
    语句块1
if score>=0 and score<=100:
    if score >= 90:
        print("优秀")
    elif score >= 80:
        print("良好")
    elif score >= 70:
        print("中等")
    elif score >= 60:
        print("合格")
    else:
        print("不合格")
else:
    print("你的输入有误")

1.1.5 pass关键字

pass只是占了一个位置,没有实际意义

score = float(input("请输入您的成绩:"))
if score >= 0 and score <= 100:
    if score >= 90:
        print("优秀")
    elif score >= 80:
        print("良好")
    elif score >= 70:
        pass
    elif score >= 60:
        print("合格")
    else:
        print("不合格")
else:
    print("你的输入有误")

1.1.6 三目运算符

假如现在有两个数字,我们希望获得其中比较大的一个
a = 50
b = 10
# 普通写法
if a > b:
    print(a)
else:
    print(b)
# 三目运算符写法
print(a if a > b else b)
输入一个字符串,如果这个字符串是yes则输出'ok',否则输出原字符串
s = input("请输入:")
print('ok' if s=='yes' else s)

1.2 循环结构

1.2.1 while 循环

if 条件表达式:
    代码块
if 0<10:
    print("我进来了")
    
while 条件表达式:
    代码块(循环体)
while 0<10:
    print("我进来了")
a = 0
while a<10:
    print("我进来了")
    a+=1  #a=a+1
"""
while 0<10
while 1<10
while 2<10
while 3<10
...
while 10<10  False
"""
# 打印1-100的所有数字
num = 1
while num <= 100:
    print('num=', num)
    num += 1
# 计算1+2+3...+100  使用while循环
sum1 = 0  # 初始化一个去累计的变量
num = 1  # 从1循环出值
while num <= 100:
    sum1+=num  # sum1 = sum1+num
    num += 1  # 每循环一次 值加1
print(sum1)  # 5050

while...else...

当while循环正常执行完,中间没有被break终止的话,就会执行else后面的语句

count = 0
while count<=5:
    count+=1
    print(count)
else:
    print("循环正常执行完了")
    
1
2
3
4
5
6
循环正常执行完了

1.2.2 for循环

语法:
for 变量名 in range(start,stop,[,step]):
	循环体
    
range()是什么?
语法:range(start,stop,[,step])
start 指的是计数起始值,默认是0
stop  指的是计数结束值,但不包括stop
step  指的是步长,默认为 1,不可以为0
range() 方法生成一段左闭右开的整数范围,同时range()也可以单数使用

对于range()函数,有几个注意的点:
1.它表示的是左闭右开区间
2.它接收的参数必须是整数,可以是负数,但是不能是浮点数等其他类型

# 输入1-100
for i in range(1,101):
    print(i)  # 1-100的值

for i in range(101):
    print(i)  # 0-100的值
    
# 打印0-100中所有的偶数
for i in range(0,101,2):
    print(i)
    
# 求1-100的累加和  for循环
sum1 = 0
for i in range(1, 101):
    sum1 += i  # sum1=sum1+i
print(sum1)
有这么一个场景
你的账号是root,密码是123456
让程序循环几次
程序提示输入账号和密码,如果账号和密码错误,就重新输入账号和密码,如果输入正确就打印登录成功
username = 'root'
password = '123456'
for i in range(5):
    u = input("请输入账号:")
    p = input("请输入密码:")
    if u==username and p==password:
        print("登录成功")
        break
    else:
        print("密码错误,请重新输入")

1.2.3 break和continue

break和continue是循环中满足一定条件退出循环的两种方式

break:退出整个循环

continue:退出本次循环,继续执行下一次循环

for i in range(1,11):
    if i ==3:
        print("吃饱了")
        break
    print("正在吃第"+str(i)+"个苹果")
正在吃第1个苹果
正在吃第2个苹果
吃饱了

for i in range(1, 11):
    if i == 3:
        print("吃到虫子了")
        continue
    print("正在吃第" + str(i) + "个苹果")
    
正在吃第1个苹果
正在吃第2个苹果
吃到虫子了
正在吃第4个苹果
正在吃第5个苹果
正在吃第6个苹果
正在吃第7个苹果
正在吃第8个苹果
正在吃第9个苹果
正在吃第10个苹果

1.2.4 循环嵌套

for i in range(2):
    for j in range(5):
        print("hello world")
"""
外层for循环会执行2次
里层for循环会执行5次
"""
for i in range(2):
    print("=========外层")
    for j in range(5):
        print("====里层")
        
=========外层
====里层
====里层
====里层
====里层
====里层
=========外层
====里层
====里层
====里层
====里层
====里层

感谢阅读~