• Python基础之流程控制


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

    顺序执行

    虽然我们有各种流程判断、循环、跳转、控制、中断等等,但从根本上程序还是逐行顺序执行的。

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

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

    条件判断

    条件判断是通过一条或多条判断语句的执行结果(True或者False)来决定执行的代码块。

    在Python语法中,使用if、elif和else三个关键字来进行条件判断。

    条件判断的使用原则:

    • 每个条件后面要使用冒号(:)作为判断行的结尾,表示接下来是满足条件(结果为True)后要执行的语句块。
    • 除了if分支必须有,elif和else分支都可以根据情况省略。
    • 使用缩进来划分语句块,相同缩进数的语句在一起组成一个语句块。
    • 顺序判断每一个分支,任何一个分支首先被命中并执行,则其后面的所有分支被忽略,直接跳过!
    number = 20
    guess = -1
    print("数字猜谜游戏!")
    while guess != number:
        guess = int(input("请输入你猜的数字:"))
    
        if guess == number:
            print("恭喜,你猜对了!")
        elif guess < number:
            print("猜的数字小了...")
        elif guess > number:
            print("猜的数字大了...")

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

    if 表达式1:
        语句
        if 表达式2:
            语句
        elif 表达式3:
            语句
        else
            语句
    elif 表达式4:
        语句
    else:
        语句

    循环控制

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

    Python用关键字for和while来进行循环控制,但是没有其它语言的do...while语句

    while循环

    语法格式:

    while 判断表达式:
        内部代码块
    n = 100
    sum = 0
    counter = 1
    while counter <= n:
        sum = sum + counter
        counter += 1
    
    print("1 到 %d 之和为: %d" % (n,sum))

    通常,我们要在循环条件,或循环体内设置退出条件,防止死循环,但有时候也需要无限循环。例如Web服务器响应客户端的实时请求。

    while的else从句

    while循环还可以增加一个else从句。当while循环正常执行完毕,会执行else语句。但如果是被break等机制强制提前终止的循环,不会执行else语句。注意else与while平级的缩进方式!

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

    for循环

    for循环通常用来遍历可迭代的对象,如一个列表或者一个字典。其一般格式如下:

    for <variable> in <sequence>:
        <statements>

    for循环的else 子句

    与while一样,for循环也可以有else子句。同样是正常结束循环时,else子句执行。被中途break时,则不执行。

    循环的嵌套

    if判断可以嵌套,while和for当然也可以嵌套。但是建议大家不要嵌套3层以上,那样的效率会很低。下面是一个嵌套for循环结合else子句的例子

    # 这是一个判断质数的程序
    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, ' 是质数')

    break语句

    break只能用于循环体内。其效果是直接结束并退出当前循环,剩下的未循环的工作全部被忽略和取消。注意当前两个字,Python的break只能退出一层循环,对于多层嵌套循环,不能全部退出。

    for letter in 'Hello world':     # 第一个实例
       if letter == 'd':
          break
       print ('当前字母为 :', letter)

    continue语句

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

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

      

  • 相关阅读:
    How To Use Google Logging Library (glog)
    段错误调试
    getline 使用
    remove_if筛选数组元素
    getline C++ Reference
    c++ Why remove_copy_if returns an empty vector? Stack Overflow
    About iClick
    哈工大社会计算与信息检索研究中心
    python的16进制和10进制间的转换
    毕业生 哈尔滨工业大学社会计算与信息检索研究中心 理解语言,认知社会
  • 原文地址:https://www.cnblogs.com/featherwit/p/12902956.html
Copyright © 2020-2023  润新知