python流程控制基础知识总结

流程控制指的是代码运行逻辑、分支走向、循环控制,是真正体现我们程序执行顺序的操作。流程控制一般分为 顺序执行、条件判断和循环控制。

一、顺序执行

Python代码在执行过程中,遵循下面的基本原则:
普通语句,直接执行;
碰到函数,将函数体载入内存,并不直接执行
碰到类,执行类内部的普通语句,但是类的方法只载入,不执行
碰到if、for等控制语句,按相应控制流程执行
碰到@,break,continue等,按规定语法执行
碰到函数、方法调用等,转而执行函数内部代码,执行完毕继续执行原有顺序代码

if __name__ == '__main__':
    # do something

很多时候,我们经常在python程序中看到这么一行语句,这里简要解释一下: 首先, name 是所有模块都会有的一个内置属性,一个模块的 name 值取决于你如何调用模块。 假如你有一个 test.py 文件,如果在 a.py 文件中使用import导入这个模块 import test.py ,那么 test.py 模块的 name 属性的值就是 test ,不带路径或者文件扩展名。 其实顺序执行,简单来说就是代码按照从上到下的顺序来执行。

二、条件判断

Python中的if……else……语句可以细分为三种形式,分别是if语句、if……else……语句和if……elif……else语句,它们的语法和执行流程如表1所示

if 表达式:
    代码块

在这里插入图片描述

if 表达式:
    代码块 1
else:
    代码块 2

在这里插入图片描述```python

if 表达式 1:
     代码块 1
elif 表达式 2:
     代码块 2
……
else:
     代码块 n

在这里插入图片描述

if 条件判断1: # 判断结果为True 
    do something #执行逻辑
elif 条件判断2: # 条件判断2为True 
执行语句
else: # 都不是的话执行 执行下边语句
执行语句

注意:
每个条件后面要使用冒号(:)作为判断行的结尾,表示接下来是满足条件(结果为True)后要执行的语句块。
除了if分支必须有,elif和else分支都可以根据情况省略。
使用缩进来划分语句块,相同缩进数的语句在一起组成一个语句块。
顺序判断每一个分支,任何一个分支首先被命中并执行,则其后面的所有分支被忽略,直接跳过!
示例:

number = 20
print("猜数字")
while True:
    guess = int(input("请输入你猜的数字:"))
if guess == number:
    print("恭喜,你猜对了")
break
elif guess<number:
print("猜的数字太小了")
elif guess>number:
print("猜的数字太大了")

if/else 语句可以嵌套,也就是把 if…elif…else 结构放在另外一个 if…elif…else 结构 中。 形成如下的结构:

var = 100
if var < 200:
    print("比200小!")
if var == 150:
    print('这是150')
elif var == 100:
print('这是100')
elif var == 50:
print('这是50')
elif var < 50:
print("比50小!")
else:
print("无法判断正确的值!")
print("Good bye!")

三、循环控制

循环控制,就是让程序循环运行某一段代码直到满足退出的条件,才退出循环。
while循环
while语句执行的具体流程为:首先判断条件表达式的值,其值为真(True)时,则执行代码块中的语句,当执行完毕后,再回过头来重新判断条件表达式的值是否为真,若仍为真,则继续重新执行代码块……如此循环,直到条件表达式的值为假(False),才终止循环。while循环结构的执行流程如下图所示。

while循环语句的控制结构图如下所示:
在这里插入图片描述

while 判断表达式:
内部代码块
# 接下来看一个具体的案例,求1-100之间的总和
n = 100
sum = 0
count = 1
while count <= n:
    sum = sum + count
count += 1
# 通常在循环条件中,会设置退出条件,防止程序死循环。
while True:
    s = input("what's you name:")
print("you name is %s"%s)
print("bye")
这个程序永远也不会打印bye。

while的else从句: while循环还可以增加一个else从句。 当while循环正常执行完毕,会执行else语句。注意else与while平级的缩进方式!

number = 10
i = 0
# i = 11
while i < number:
    print(i)
i += 1
else:
print("执行完毕!")

温馨提示:
(1)代码块注意冒号和缩进(通常缩进 4 个空格),否则Python解释器会报SyntaxError错误(语法错误)。
(2)在使用while循环时,一定要保证循环条件有变成假的时候,否则这个循环将成为一个死循环。所谓死循环,指的是无法结束循环的循环结构。
(3)在Python中没有do…while循环。

for循环

虽然与while一样都是循环的关键字,但for循环通常用来遍历可迭代的对象,如一个列表或者一个字典。其一般 格式如下:

for <variable> in <sequence>:
    <statements>
for ... in ....:属于固定套路
sum = 0
for x in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]:
    sum = sum + x
print(sum)

循环的嵌套

if判断可以嵌套,while和for当然也可以嵌套。但是建议大家不要嵌套3层以上,那样的效率会很低。

# 这是一个判断质数的程序
# 一个数,如果只有1和它本身两个因数,这样的数叫做质数(或素数)
for n in range(2, 100):
    for x in range(2, n):
        if n % x == 0:
            print(n, '等于', x, '*', n//x)
break
else:
# 循环中没有找到元素
print(n, ' 是质数')
# print(n,end = ', ')

break语句

想在循环过程中退出循环,怎么办?用break语句! break只能用于循环体内。其效果是直接结束并退出当前循环,剩下的未循环的工作全部被忽略和取消。 Python的break只能退出一层循环,对于多层嵌套循环,不能全部退出。

for letter in 'Hello world': # 第一个实例
    if letter == 'r':
        break
print ('当前字母为 :', letter)
--------------------------------------------
var = 10 # 第二个实例
while var > 0:
    print ('当前变量值为 :', var)
var -= 1
if var == 5:
    break

continue语句

与break不同,continue语句用于跳过当前循环的剩余部分代码,直接开始下一轮循环。它不会退出和终止循 环,只是提前结束当前轮次的循环。同样的,continue语句只能用在循环内。

for item in 'Hello world': # 第一个实例
    if item == 'o': # 字母为 o 时跳过输出
        continue
print ('当前字母 :', item)

var = 10 # 第二个实例
while var > 0:
    var -= 1
if var == 5: # 变量为 5 时跳过输出
    continue
print ('当前变量值 :', var)

注意:
python中的break只能跳出当前层的循环,无法全部跳出。那如果有这个需求怎么办?

new_str = "Python,Java,Go"
flag = False
for i in range(3):
    for j in new_str:
        if j == ",":
            # 在break前,修改flag的值
            flag = True
            break
        print(j, end="")
    print("\n跳出内循环")
    if flag == True:
        print("跳出外层循环")
        break
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值