Python零基础入门之流程控制详解

什么是顺序执行?

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

顺序执行

Python代码在执行过程中,遵循下面的基本原则:

普通语句,直接执行;

碰到函数,将函数体载入内存,并不直接执行

碰到类,执行类内部的普通语句,但是类的方法只载入,不执行

碰到if、for等控制语句,按相应控制流程执行

碰到@,break,continue等,按规定语法执行

碰到函数、方法调用等,转而执行函数内部代码,执行完毕继续执行原有顺序代码

点击获取全套Python零基础学习资料视频

if __name__ == '__main__':

很多时候,我们经常在python程序中看到这么一行语句,这里简要解释一下: 首先,

 __name__

是所有模块都会有的一个内置属性,一个模块的

__name__ 

值取决于你如何调用模块。 假如你有一个 test.py 文件,如果在 a.py 文件中使用import导入这个模块 import test.py ,那么 test.py 模块的

 __name__

属性的值就是 test ,不带路径或者文件扩展名。 其实顺序执行,简单来说就是代码按照从上到下的顺序来执行。

什么是条件判断?

条件判断是通过一条或多条判断语句的执行结果(True或者False)来决定执行的代码块。 在Python语法中,使用if、elif和else三个关键字来进行条件判断。

在这里插入图片描述
if语句的一般形式如下所示:

if condition1: # condition1为True 执行statement_block_1 
    statement_block_1 
elif condition2: # condition2为True 执行statement_block_2 
    statement_block_2 
else: # 都不是的话执行 statement_block_3 
    statement_block_3

条件判断的使用原则:

  • 每个条件后面要使用冒号(:)作为判断行的结尾,表示接下来是满足条件(结果为True)后要执行的语句 块。

  • 除了if分支必须有,elif和else分支都可以根据情况省略。

  • 使用缩进来划分语句块,相同缩进数的语句在一起组成一个语句块。

  • 顺序判断每一个分支,任何一个分支首先被命中并执行,则其后面的所有分支被忽略,直接跳过!

  • 在Python中没有switch – case语句。

接下来看一个案例 
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!")

什么是循环控制?

循环控制,就是让程序循环运行某一段代码直到满足退出的条件,才退出循环。

Python用关键字for和while来进行循环控制,但是没有其它语言的do…while语句(在Java和PHP中都有do while)。

while循环

while循环语句的控制结构图如下所示:

在这里插入图片描述

while 判断表达式: 
    内部代码块 
接下来看一个具体的案例,求1-100之间的总和 
n = 100 
sum = 0 
counter = 1
while counter <= n: 
    sum = sum + counter 
    counter += 1 

print("1 到 %d 之和为: %d" % (n,sum)) 
----------------------------------------- 
通常在循环条件中,会设置退出条件,防止程序死循环。 
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("执行完毕!")

如果是被break等机制强制提前终止的循环,不会执行else语句。

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

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判断可以嵌套,whilefor当然也可以嵌套。但是建议大家不要嵌套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 letter in 'Hello world':           # 第一个实例 
   if letter == 'o':                   # 字母为 o 时跳过输出
      continue 
   print ('当前字母 :', letter) 
 ------------------------------------------------------- 
var = 10                                # 第二个实例 
while var > 0: 
   var -= 1 
   if var == 5: # 变量为 5 时跳过输出 
      continue 
   print ('当前变量值 :', var)

刚才前面跟大家说过,python中的break只能跳出当前层的循环,无法全部跳出。那如果有这么需求怎么办?

设置flag 
flag = False # 用于控制外层循环的标志 
for i in range(10): 
    if flag: # 当flag被内层循环设置为True的时候,跳出外层循环 
        break 
    for j in range(10): 
        if j==7: 
            flag = True 
            break 
         print(i,j)

最后

人生苦短,Python当歌!!!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值