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. 循环语中可以使用其他语句, 比如条件语句, 辅助循环控制语句等.
原文地址:https://www.cnblogs.com/duyupeng/p/13068844.html