【4】条件 + 【001】代码风格
if 语句
关于选择的语句,具体不必阐述,和C语言大差不差,关于几点区别会在下方列出
-
关于所有选择:
-
if
-
if-else
-
if-else 推导式
-
推导式(Comprehensions)是Python中一种简洁而强大的语法,用于创建新的序列(如列表、集合、字典)的一种方法。Python中有三种主要的推导式:列表推导式、集合推导式和字典推导式。
1.列表推导式(List Comprehensions):
列表推导式提供了一种创建新列表的紧凑语法。其基本形式如下:new_list = [expression for item in iterable if condition]
2.expression:用于生成新列表元素的表达式。
3.item:迭代的元素。
4.iterable:可迭代对象,例如列表、元组、字符串等。
5.condition(可选):一个过滤条件,仅当条件为真时才包含元素。
示例:生成一个包含1到10的平方的列表
squares = [x**2 for x in range(1, 11)]
推导式使得代码更为紧凑和可读,但要注意不要滥用,以免降低代码的可读性。
例如:
-
def abs7(n): return n if (n >= 0) else -n
就是把if-else的成分做一个式子的一部分。
注意:if-else推导式在简单的条件逻辑中很有用,但要注意,如果条件逻辑过于复杂,可能会使代码难以阅读。在这种情况下,最好使用常规的if语句块。
-
-
-
if-elif-else
- 用法和C语言的
else if
类似
- 用法和C语言的
-
match …… case
-
类似于C中switch case
-
不同的是每个case后不需要有break,只会执行一个case
-
case _:
类似于 C 和 Java 中的default:
,当其他 case 都无法匹配时,匹配这条,保证永远会匹配成功。 -
一个 case 也可以设置多个匹配条件,条件使用 | 隔开,例如:
... case 401|403|404: return "Not allowed"
-
-
-
关于所有选择的格式:
-
嵌套
-
并列
-
函数封装
-
#例如 def abs5(n): if n >= 0: return n else: return -n
-
-
-
格式与C语言的不同之处
- if后面要跟冒号 ‘:’
- 严格缩进(不缩进则视为选择部分结束)
【001】代码风格
-
缩进
- 如果有开始定界符,其余行的缩进需与开始定界符对齐。
- 需要额外的4个空格(长度等于一个Tab键),以区分开传入参数,和其他内容。
- 空格一般用于添加以上这种缩进,Tab键一般用于保持行与行之间的一致性。
- 多行if语句衔接,需要一个额外的缩进,以区分其他内容 ?
-
换行
-
将所有行限制为最多 79 个字符。
-
一般语句接受“隐式”延续,但是with语句等不支持,需要使用反斜杠 ** 来衔接。
-
另一个这样的例子是assert语句。
-
多行if语句的缩进?
-
通常不鼓励使用复合语句(同一行上的多个语句)
-
-
关于空格
- 紧接在圆括号、方括号或大括号内,不需要多余空格;
- 在逗号、分号或冒号之前,尾随逗号之后均不需要多余空格;
- 在切片中,两个冒号必须应用相同的间距;
- 紧接在开始函数调用的参数列表的左括号之前,不需要多余空格;
- 赋值(或其他)运算符周围需要多个空格以使其与另一个运算符对齐;
-
代码注释
-
注释就是对代码的解释和说明,其目的是让人们能够更加轻松地了解代码。 注释是编写程序时,写程序的人给一个语句、程序段、函数等的解释或提示,能提 高程序代码的可读性。
-
在有处理逻辑的代码中,源程序有效注释量必须在20%以上。
-
我的约定
- 在代码最前端---多行注释:创建时间、功能(任务描述)、其他
- 函数开始的前一行,用 # 描述功能和返回值的介绍(必要的话)
-
-
命名规则
- 变量名不能包含空格,但可使用下划线来分隔其中的单词。 例如,变量名
greeting_message
可行,但变量名greeting message
会引发错误。
- 变量名不能包含空格,但可使用下划线来分隔其中的单词。 例如,变量名
-
命名规范
- 不要将Python关键字和函数名用作变量名,即不要 使用Python保留用于特殊用途的单词,如
print
。 - 变量名与函数名应既简短又具有描述性。例如,
name
比n
好,student_name
比s_n
好。
- 不要将Python关键字和函数名用作变量名,即不要 使用Python保留用于特殊用途的单词,如