聪明办法学python第5次笔记

主页链接:登录 - HydroOJicon-default.png?t=O83Ahttps://hydro.ac/d/datawhale_p2s/user/63061


目录

Chapter 4 条件 Conditionals 

if-else 语句 if-else statement

if-else 推导式 if-else expression

match...case

清晰的代码风格 Clarity and style

总结


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。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值