python学习 Chap4 条件 与 Talk 代码风格

发布时间 2023-11-28 21:01:43作者: WDS望尘

一、HAPTER4条件

1、IF语句

if (<expr>): 

    <statement> 

elif (<expr>):

    <statement>  

else:

    <Statement> 

 <fo1lowing statement>

(1)使用布尔表达式

return fn<0)*(-n)+(n>=0)*(n)#这家伙长得太奇怪了

不要这样写

注:1>0相当于1

        0>1相当于0

2、MATCH-CASE语句

match...case 

Python3.10增加了match..case 的条件判断,不需要再使用一连串的if-else来判断了。

match后的对象会依次与case后的内容进行匹配,如果匹配成功,则执行匹配到的表达式,否则直接跳过,可以匹配一切。

语法格式如下:

match subject:

    case <pattern_1>: 

        <action_1> 

    case <pattern_2>: 

        <action_2>

    case <pattern_3>:

        <action_3> 

    case _:

        <action_wildcard>

case:类似于C和Java中的default:,当其他case都无法匹配时,匹配这条,保证永远会匹配成功

(1)一个case也可以设置多个匹配条件,条件使用|隔开,例如:

        case 401|403|404:

注意:用嵌套的if 而不是 and来判断

          否定条件(带有else部分),要用直接的方式

          使用if而不是else来控制

二、代码风格

1、风格介绍

·“修饰”的前提一定是“跑通”代码,也就是说你得先确保你的code没有任何的bug

·这种“修饰”并不是对每一个人都强制学习的内容,他并不影响你快乐学习接下来的所有课程。

2、缩进与换行

(1)缩进

       01.如果有开始定界符,其余行的缩进需与开始定界符对齐。

       02.需要额外的4个空格(长度等于一个Tab键),以区分开传入参数,和其他内容。

       03.空格一般用于添加以上这种缩进,Tab键一般用于保持行与行之间的一致性。

       04.多行i语句衔接,需要一个额外的缩进,以区分其他内容

 (2)换行

       01.将所有行限制为最多79个字符。

       02.一般语句接受“隐式”延续,但是with语句等不支持,需要使用反斜杠|来衔接。

       03.另一个这样的例子是assert语句。

       04.多行if语句的缩进详见上一小节。

       05.通常不鼓励使用复合语句(同一行上的多个语句)。

3、导入规范

————import本地模块/包

1.当我们需要导入本地自己封装好的一些模块时,需要通过import来导入。

2.如果我们需要在m1.py文件中导入同目录下的m2.py文件,直接导入即可。

————import Python库的模块/包

1.Python的基础库自带了丰富的模块和包,无需自己逐一实现,只需要一键import即可

享用。

2.使用fromximporty其中×是包前缀,y是没有前缀的模块名称

4、关于空格

1.紧接在圆括号、方括号或大括号内,不需要多余空格;

2.在逗号、分号或冒号之前,尾随逗号之后均不需要多余空格;

3.在切片中,两个冒号必须应用相同的间距;

4.紧接在开始函数调用的参数列表的左括号之前,不需要多余空格;

5.赋值(或其他)运算符周围需要多个空格以使其与另一个运算符对齐;

5、代码注释

注释就是对代码的解释和说明,其目的是让人们能够更加轻松地了解代码。

·注释是编写程序时,写程序的人给一个语句、程序段、函数等的解释或提示,能提高程序代码的可读性。

在有处理逻辑的代码中,源程序有效注释量必须在20%以上。

6、命名规则

·变量名只能包含字母、数字和下划线。变量名可以字母或下划线打头,但不能以数字打头,例如,可将变量命名为message_1,但不能将其命名为1_message.

·变量名不能包含空格,但可使用下划线来分隔其中的单词。例如,变量名greeting_message可行,但变量名greeting message会引发错误。

7、命名规范

·不要将Python关键字和函数名用作变量名,即不要使用Python保留用于特殊用途的单词,如print.

·变量名与函数名应既简短又具有描述性。例如,name比n好,student name比s_n好。