python流程控制

顺序执行、选择执行、循环执行

顺序执行就是让程序从头到尾的顺序依次执行每一条python代码,不重复执行任何代码,也不跳过任何代码

选择执行也称分支结构,就是让程序“拐弯”,有选择性的执行代码;换句话说,可以跳过没用的代码,只执行有用的代码(if)

循环执行就是让程序“杀个回马枪”,不断地重复执行同一段代码(while和for)

伪代码

根据年龄判断是否成年
​
输入一个变量age,并转换为数字
(条件判断)
如果age大于等于18:
    打印'成年'
如果age小于18,又分两种情况:
    如果age大于等于12:
        打印'少年'
    如果age小于12:
        打印'儿童'
        
age = int(input("请输入你的年龄:"))
if age >= 18:
    print('成年')
else:
    if age >= 12:
        print('少年')
    else:
        print('儿童')

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
    
表达式可以是一个单一的值或者变量,也可以是由运算符组成的复杂语句,形式不限,只要它能得到一个值就行
代码块由具有相同缩进量的若干条语句组成
if、elif、else语句的最后都有英文冒号,不要忘记
一旦某个表达式成立,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)

2.2 循环结构

1.2.1 while 循环

if 条件表达式:
    代码块
if 0<10:
    print("我进来了")
    
while 条件表达式:
    代码块(循环体)
while 0<10:
    print("我进来了")

当if后接的条件是固定的时候,整个程序就陷入了一个死循环模式,那么一个死循环的程序肯定不是我们想要的,所以要有一个出口

例1

# 打印1-100的所有数字
num = 1
while num <= 100:
    print('num=', num)
​​​​​​​    num += 1

例2

# 计算1+2+3...+100  使用while循环
sum1 = 0  # 初始化一个去累计的变量
num = 1  # 从1循环出值
while num <= 100:
    sum1+=num  # sum1 = sum1+num
    num += 1  # 每循环一次 值加1
print(sum1)  # 5050

1.2.2 while...else...

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

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

1.2.3 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.4 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.5循环嵌套

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

99乘法表

例1
for i in range(9):
    for j in range(9):
        if j <= i:
            print(f"{i+1} * {j+1} = {(i+1) * (j+1)}", end='\t')
    print()
# 例2
i = 1
while i <= 9:
    j = 1
    while j <= i:
        print(f"{i} * {j} = {i * j}", end='\t')
        j = j + 1
    print()
    i = i + 1

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值