• python笔记-控制流程


    一、控制流程用到的运算符

    1. 身份运算符 is
      • 比较的时对象id, 也即是cpython中的地址
    2. 成员运算符 in
      • 判断对象是否时某个容器中的值
    3. 比较运算符
    运算 含义
    < 严格小于
    <= 小于或等于
    > 严格大于
    >= 大于或等于
    == 等于
    != 不等于
    1. 逻辑运算符
      按优先级升序排列
    运算 结果
    x or y 如果x为True, 返回x, 否则返回y
    x and y 如果x为False, 返回x, 否则返回y
    not x 如果x为False, 返回True, 否则返回False
    • or是个短路运算符,因此只有在第一个参数为假值时才会对第二个参数求值
    • and是个短路运算符,因此只有在第一个参数为真值时才会对第二个参数求值
    • not 的优先级比非布尔运算符低,因此 not a == b 会被解读为 not (a == b)a == not b 会引发语法错误

    二、判断语句

    1. if语句
      条件成立执行

    当要进行用户信息匹配时, 要求用户输入用户名和密码进行匹配, 匹配成功就运行用户进入系统

    username = "dyp"
    password = "abcd1234"
    
    if username == (name := input("输入用户名:")) and password == (passwd := input("输入密码")):
          print("登录完成, 欢迎进入系统")
    elif username != name:
          print("用户名输入有误")
    elif password != passwd:
          print("密码有误")
    else:
          print("您还未注册账户, 请注册")
    
    1. elifelse if的缩写
    2. 从上到下依次进行判断, 当条件成立, 执行条件成立的语句块. 然后结束判断
    3. 可以有零个或多个 elif 部分,以及一个可选的 else 部分
    4. 一个 if ... elif ... elif ... 序列可以看作是其他语言中的 switch 或 case 语句的替代

    三目运算符

    • return_value_A if 条件 else return_value_B
      * 条件成立时, 三目运算符的值是return_value_A
      * 条件不成立时, 三目运算符的值是return_value_A

    三、循环语句

    3.1 while条件循环

    比如到银行取钱时, 需要密码, 且只能输入三次, 只要有一次正确就能进入账户.
    倘若, 三次都不正确则锁定账户.

    passwd = "123456"
    i = 0
    while i < 3:
          password = input("输入密码: ")
          if passwd == password:
                print("成功进入账户")
                break  # 跳出最近成循环
          else:
                i += 1
          if (i-1) == 2:
                print("账户已锁定")
                if input("是否再次尝试, yes|y").casefold() in ["yes", 'y']:
                      i = 0
                else:
                      continue  # 跳过当前循环
    
    1. break: 跳出最近一层循环
    2. continue: 跳过当前一次循环
    3. while后面条件控制循环次数.
    4. 当要使用到无限循环(死循环), 使用while 1:的性能要比while True要好
    5. 检查循环是否被break打断使用else子句:
    while 条件:
          条件成立执行
    else:
          没有被break打断时执行
    

    3.2 for迭代循环

    Python 中的 for 语句是对任意序列进行迭代(例如列表或字符串),条目的迭代顺序与它们在序列中出现的顺序一致

    words = ['cat', 'window', 'defenestrate']
    for w in words:
          print(w, len(w))
    else:
          print("迭代完成")
    
    1. 从words列表中依次取出值, 并赋值给变量w, 用于在循环中使用
    2. for语句也是有else子句的. 也可以使用break 和 continue来进行循环控制
    3. range对象使用在for循环语句中

    打印九九乘法表

    for i in range(1, 10):
          for j in range(1, i+1):
                print(f"{i}*{j}={i*j}	", end="")
          print()
    

    结果如下:

    >>> for i in range(1, 10):
    ...       for j in range(1, i+1):
    ...             print(f"{i}*{j}={i*j}	", end="")
    ...       print()
    ...
    1*1=1
    2*1=2   2*2=4
    3*1=3   3*2=6   3*3=9
    4*1=4   4*2=8   4*3=12  4*4=16
    5*1=5   5*2=10  5*3=15  5*4=20  5*5=25
    6*1=6   6*2=12  6*3=18  6*4=24  6*5=30  6*6=36
    7*1=7   7*2=14  7*3=21  7*4=28  7*5=35  7*6=42  7*7=49
    8*1=8   8*2=16  8*3=24  8*4=32  8*5=40  8*6=48  8*7=56  8*8=64
    9*1=9   9*2=18  9*3=27  9*4=36  9*5=45  9*6=54  9*7=63  9*8=72  9*9=81
    
    1. 循环时可以进行嵌套的。
    2. 循环语中可以使用其他语句, 比如条件语句, 辅助循环控制语句等.
  • 相关阅读:
    (zt)在PHP中使用全局变量
    (zt)Flash与C++交互
    (zt)关于Flash Socket通信的安全策略问题的一点心得
    (zt)svn 随服务器启动
    使用InstallShield安装和卸载SQL Server数据库(利用sql脚本)
    异常查看部分代码
    VC为控件添加背景
    深入分析MFC文档视图结构
    VC数据库编程概述
    (转)WEB程序打包详解:(连接SQL2005数据库,修改配置文件,建立虚拟目录)
  • 原文地址:https://www.cnblogs.com/duyupeng/p/13068844.html
Copyright © 2020-2023  润新知