一、控制流程用到的运算符
- 身份运算符
is
- 比较的时对象
id
, 也即是cpython中的地址
- 比较的时对象
- 成员运算符
in
- 判断对象是否时某个容器中的值
- 比较运算符
运算 | 含义 |
---|---|
< | 严格小于 |
<= | 小于或等于 |
> | 严格大于 |
>= | 大于或等于 |
== | 等于 |
!= | 不等于 |
- 逻辑运算符
按优先级升序排列
运算 | 结果 |
---|---|
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
会引发语法错误
二、判断语句
- if语句
条件成立执行
当要进行用户信息匹配时, 要求用户输入用户名和密码进行匹配, 匹配成功就运行用户进入系统
username = "dyp"
password = "abcd1234"
if username == (name := input("输入用户名:")) and password == (passwd := input("输入密码")):
print("登录完成, 欢迎进入系统")
elif username != name:
print("用户名输入有误")
elif password != passwd:
print("密码有误")
else:
print("您还未注册账户, 请注册")
elif
是else if
的缩写- 从上到下依次进行判断, 当条件成立, 执行条件成立的语句块. 然后结束判断
- 可以有零个或多个
elif
部分,以及一个可选的else
部分 - 一个
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 # 跳过当前循环
break
: 跳出最近一层循环continue
: 跳过当前一次循环while
后面条件控制循环次数.- 当要使用到无限循环(死循环), 使用
while 1:
的性能要比while True
要好 - 检查循环是否被
break
打断使用else
子句:
while 条件:
条件成立执行
else:
没有被break打断时执行
3.2 for迭代循环
Python 中的 for 语句是对任意序列进行迭代(例如列表或字符串),条目的迭代顺序与它们在序列中出现的顺序一致
words = ['cat', 'window', 'defenestrate']
for w in words:
print(w, len(w))
else:
print("迭代完成")
- 从words列表中依次取出值, 并赋值给变量
w
, 用于在循环中使用 for
语句也是有else
子句的. 也可以使用break 和 continue
来进行循环控制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
- 循环时可以进行嵌套的。
- 循环语中可以使用其他语句, 比如条件语句, 辅助循环控制语句等.