主页链接:登录 - HydroOJhttps://hydro.ac/d/datawhale_p2s/user/63061
目录
if-else 推导式 if-else expression
Chapter 4 条件 Conditionals
在函数中,当遇到return语句时,就不再继续执行下面的语句了。
def abs4(n):
return (n < 0)*(-n) + (n>=0)*(n) # 这家伙长得太奇怪了
一种特别的表达
# False == 0; True == 1
if-else 语句 if-else statement
rise reveal.js 包 用来显示ppt的
def abs6(n):
if n >= 0:
sign = +1
else:
sign = -1
return sign * n
只有一个if, 一个else,可以有无数个elif
if-else 推导式 if-else expression
推导式举例:
def abs7(n):
return n if (n >= 0) else -n
def abs7(n):
if n >= 0:
return n
else:
return -n
match...case
Python 3.10 增加了 match...case 的条件判断,不需要再使用一连串的 if-else 来判断了。
match 后的对象会依次与 case 后的内容进行匹配,如果匹配成功,则执行匹配到的表达式,否则直接跳过,_ 可以匹配一切。
case _: 类似于 C 和 Java 中的 default:,当其他 case 都无法匹配时,匹配这条,保证永远会匹配成功。
match subject:
case <pattern_1>:
<action_1>
case <pattern_2>:
<action_2>
case <pattern_3>:
<action_3>
case _:
<action_wildcard>
def http_error(status):
match status:
case 400:
return "Bad request"
case 404:
return "Not found"
case 418:
return "I'm a teapot"
case _:
return "Something's wrong with the internet"
mystatus=400
print(http_error(400))
一个 case 也可以设置多个匹配条件,条件使用 | 隔开,例如:
...
case 401|403|404:
return "Not allowed"
如果没有return语句的话,会继续向下执行case _:
在python中,建议先写一个函数,然后调用
cet4, cet6 = input().split()
清晰的代码风格 Clarity and style
本节讨论的内容主要针对样式而非正确性,这里的所有例子都“正确的”,但有些例子比其他例子更巧妙,我们希望大家形成一个好的代码习惯。
- 否定条件(带有 `else` 部分)
- 空白的 `if` 部分
- 用嵌套的 `if` 而不是 `and` 来判断
- 使用 `if` 而不是 `else` 来控制
- 使用一些 trick(如用算数逻辑来代替布尔逻辑)
总结
- Conditionals Make Decisions.
- if-else 结构构成了 Python 分支控制,if 还能嵌套使用。
- 合理的编写风格会让代码更易读,还能尽可能避免引入 bug。