chapter 4 条件 conditons
python 内置了一个函数叫 abs() 用于绝对值计算,所以我i们将函数命名成 abs1,abs2
if-else 语句 if-else statement
例如:
1 def abs5(n):
2
3 return n
4 else:
5 return -n
1 def abs6(n):
2 if n >= 0:
3 sign = +1
4 else:
5 sign = -1
6 return sign * n
if-else 推导式
1 def abs7(n):
2 return n if (n >=0) else -n
MATCH-CASE 语句
case _:类似于 C 和 Java 中的 default: 当其他 case 都无法匹配时,匹配这条,保证永远会匹配成功。
例如:
def https_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(https_error(400))
课外:HTTP 响应状态码
HTTP 响应状态码用来表明特定 HTTP 请求是否成功完成,响应归为以下五大类:
1.信息响应(100 - 199)
2.成功响应(200 - 299)
3.重定向消息(300 - 399)
4.客户端错误响应(400 - 499)
5.服务器错误响应(500 - 599)
401 Unauthorized
虽然 HTTP 标准指定了"unauthorized",但从语义上来说,这个响应意味着"unauthenticated"
也就是说,客户端必须对自身进行身份验证才能获得请求的响应
402 Payment Required
此响应代码保留供将来使用,创建此代码的最初目的是将其用于数字支付系统,但是此状态代码很少使用,并且不存在标准约定。
403 Forbidden
客服端没有访问内容的权限; 也就是说,它是未经授权的,因此服务器拒绝提供的资源。与401 Unauthorized 不同,服务器知道客户端的身份。
404 Not Found
服务器找不到请求的资源。在浏览器中,这意味着无法识别 URL。在 API 中,这也可能意味着端点有效,但资源本身不存在。服务器也可以发送此响应,而不是 403 Forbidden,以向未经授权的客户端隐藏资源的存在。这个响应代码可能是最广为人知的,因为它经常出现在网络上。
405 Method Not Allowed
服务器知道请求方法,但目标资源不支持该方法。例如,API可能不允许调用 DELETE 来删除资源
406 Not Accectable
当 web 服务器在执行服务器驱动型内容协商机制后,没有发现任何符合用户代理给定标准的内容
418 I'm a teapot
服务端拒绝用茶壶煮咖啡,典故来源于茶壶冲泡咖啡
清晰的代码风格 CLARITY AND STYLE
用 if 的时候就多思考 elif 因为全 if 风险太大了
使用一些 trick,(比如用算数逻辑来代替布尔逻辑)
比如:
1 #并不清晰的:
2 x = 4
3 Y = ((X>0) and 99)
总结
-
Conditions Make Decisions
-
if-else 结构构成了Python分支控制,if还能嵌套使用
-