Python流程控制

1 流程概述

所谓的流程,即程序执行的过程。之前我们接触的程序,都是按部就班,自顶而下的去执行的,我们称这种程序结构为顺序结构。

程序的三种结构:

  • 顺序结构
  • 选择结构
  • 循环结构

2 选择结构

2.1 if

缩进的语法
缩进大小随意,但是要保持一致。按照惯例,使用4个空格。

num=int(input("请输入你的彩票号:"))
if num==123:
    print("恭喜你中了500W")

2.2 if-else

提供两条分支。

num=int(input("请输入你的彩票号:"))
if num==123:
    print("恭喜你中了500W")
else:
    print("再接再厉")

2.3 if-elif

注意多选择分支时,分支顺序的重要性。【分两种情况】
输入学生的成绩,根据成绩输出对应的等级。

#60以下不及格,60-80及格,80以上优秀
score=int(input("请输入成绩:"))
if 60 > score:
    print("不及格")
elif 60 <= score <= 80:
    print("合格")
elif 80 <= score <= 100:
    print("优秀")

2.4 if-elif-else

else为最后一条分支

score=float(input("请输入成绩:"))
if 0 <= score <60:
    print("不及格")
elif 60 <= score <= 80:
    print("及格")
elif 80 <= score <= 100:
    print("优秀")
else:
    print("输入有误")

2.5 if-else简化版

if-else简化版类似于其他语言中的三元运算符。格式如下:
表达式1 if 条件表达式 else 表达式2
其中,条件表达式执行条件判断,如果条件表达式的值为True,则返回表达式1的值,否则返回表达式2的值。

q = "yes" if 2>1 else "no" 
print(q)

2.6 if嵌套

if是可以进行嵌套使用的,用来多层选择分支的判断。
性别:男-》开发组,女-》测试组
开发:经验大于5年(开发经理),否则(开发组员)。
测试:有过开发经验(白盒),否则(黑盒)

a = input("请输入性别:")
if a=="男":
    b = int(input("请输入工作时间:"))
    if b >= 5:
        print("开发经理")
    else:
        print("开发组员")
else:
    c = input("有无开发经验?(y/n)")
    if c=="y":
        print("白鹤测试")
    else:
        print("黑河测试")

3 循环结构

循环就是重复性的执行一件相同或相似的事情(执行多次)。
在控制台上输出5行*号。

3.1 for

range函数,对可迭代对象中的每一个值赋值给in前面的变量,然后执行一次循环体。注意range函数三个参数的使用。

# 打印5遍print("*")
#for 循环变量 in 序列
#range()包头不包尾
for x in range(0,5):            
    print("*")

3.2 while

while 条件:
循环体
要写初始值、界限、变量

# 打印5遍 ***
x=1
while x <= 5:
    x +=1
    print("***")
#输入一个数,求它的阶乘
# for in 循环
x = int(input("输入一个数:"))
s = 1
for i in range(1,x+1):
    s* = i
print(x,"的阶乘是:",s)

# while循环
start = int(input("input:"))
multi = 1   #乘积初始值
index = 1   #阶乘起始1
while index <= start:
    #multi = multi * index
    multi *=index
    #index = index + 1
    index +=1   
print(start,"的阶乘是:",multi)

3.3 循环嵌套

循环嵌套,是指外层循环的内部,还有内层循环,即内层循环作为外层循环的循环体。当循环嵌套时,外层循环每执行一次,内层循环都会完整的执行一轮(内层循环有多少次就执行多少次)。如果外层循环会执行m次,内层循环会执行n次,则总共会执行m * n次。

  • 打印*图形的金字塔
#外层循环,控制行数
for i in range(1,6):
    #内层循环,控制每行*的个数
    for j in range(1,i+1):
        #因为print()自带一个\n,会默认换行,所以通过end="",取消自动换行
        print("*",end = "")
    # 每行执行完后换行
    print()

# 不使用嵌套
for i in range(6):
    print("*"*i)

# result
*
**
***
****
*****

3.4 break与else

break只能用在循环中。
循环跳出,不再执行。

  • 为什么要使用break?

else可以跟随在for或while循环之后,当循环正常执行完毕,会执行else语句,如果循环非正常执行完毕,而是通过break跳出循环,则else语句块不会得到执行。else语句是可选的。

# break
while True:
    num = int(input("请输入一个数:"))
    if num == 1:
        break
    else:
        pass
    print("继续输入")
print("条件满足,跳出循环不执行!")

在这里插入图片描述

3.5 continue

continue只能用在循环语句中。
跳出当前循环,继续执行下次循环。

break与continue基本只会用在选择判断中。无条件的break与continue虽然语法上没有错误,但从实际的角度来说是没有意义的。

# continue
while True:
    num = int(input("请输入一个数:"))
    if num == 1:
        continue
    else:
        pass
    print("继续输入!")
print("条件满足,跳出循环不执行!")

在这里插入图片描述
从上例可以看出,使用continue只是跳出了当前的循环,然而并没有结束程序,而是从头开始重新执行;而break找到了满足条件的值,直接跳出整个循环,结束程序

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值