当前位置: 首页 > 后端技术 > Python

Python学习笔记Day1——开发基础

时间:2023-03-26 11:55:10 Python

1.Python注释单行注释#作为单行注释符号,语法格式为:#注释内容从井号#开始,到这一行结束的所有内容是评论。当Python解释器遇到#时,它会忽略它后面的整行。#使用print输出字符串print("HelloWorld!")#使用print输出数字print(100)多行注释使用三个连续的单引号'''或者三个连续的双引号"""进行多行注释content,具体格式如下:'''分别用3个单引号作为评论的首尾,一次评论多行内容,里面的内容全部为评论内容'''多条-行注释通常用于Python文件、模块、类或函数等添加版权或函数描述信息,注意Python多行注释不支持嵌套无论是多行注释还是单行注释,当注释字符作为字符串的一部分出现时,不能再将其视为注释标记,而应将其视为正常代码的一部分2.Python缩进规则Python中代码的缩进可以通过使用空格来实现或Tab键。但是无论是手动输入空格还是使用Tab键,通常都是以4个空格的长度作为缩进"))#输入体重bmi=weight/(身高*身高)#计算BMI指数#判断身材是否合理ifbmi<18.5:#下面2行属于if分支语句中包含的代码#所以属于同一个函数Domainprint("BMIindexis:"+str(bmi))#outputBMIindexprint("underweight")ifbmi>=18.5andbmi<24.9:print("BMIindexis:"+str(bmi))#输出BMI指数print("正常范围,注意保持")ifbmi>=24.9andbmi<29.9:print("BMI指数为:"+str(bmi))#输出BMI指数print("Overweight")ifbmi>=29.9:print(BMIindexis:"+str(bmi))#输出BMI指数print("obesity")Python对代码缩进要求非常严格,同级代码块的缩进必须相同,否则解释器会报SyntaxError异常e错误。3.PEP8PythonCodingStandardsOrganize1CodeArrangement1Indentation:4个空格缩进(编者可完成此功能),不要使用TAB,更不能混用TAB和空格2每行最大长度为79,可以使用反斜杠作换行,最好用括号。换行点应在运算符之后命中。3类和顶层函数定义之间有两个空行;方法定义之间的空行;函数中逻辑上不相关的段落之间的空行;其他地方尽量不要有空行。2文档排版1模块内容顺序:模块描述和docstring—import—globals&constants—otherdefinitions。导入部分,按照标准、第三方、自写的顺序排列,中间一行。2不要在一句话import中使用多个库,比如importos,sys不推荐。3如果使用fromXXimportXX来引用库,可以省略'module.',可能会出现命名冲突,所以必须使用importXX。三个空格的一般使用原则,避免不必要的空格。1不要在各种右括号前添加空格。2逗号、冒号、分号前不要加空格3函数的左括号前不要加空格。例如,不要在序列Func(1)4的左括号前添加空格。如列表[2]。5运算符左右加空格,不加空格对齐。6函数默认参数使用的赋值符左右省略空格。7不要在同一行写多个语句,虽然';'被允许。8在if/for/while语句中,即使执行语句只有一句,也要换行。四、注释的一般原则,错误的注释不如不注释。所以当一段代码发生变化时,首先要做的就是修改注释!评论必须是英文,最好是完整的句子,首字母大写,句后有终止符,后面有两个空格开始下一句。如果是短语,结束符可以省略。1块注释,在一段代码之前添加的注释。在“#”后添加一个空格。段落之间仅以“#”分隔。例如:Description:Moduleconfig.#Input:None#Output:None2行注释,在一行代码后添加注释。例如:x=x+1#Note这是一个注释,但是这个方法应该尽量少用。3避免无意义的评论。五文档说明1为所有常用的模块、函数、类、方法编写docstrings;非常用的不是必须的,但是你可以写注释(在def的下一行)。2如果docstring需要换行,参考下面的例子,见PEP257"""ReturnafoobangOptionalplotzsaystofrobnicatethebizbazfirst."""命名约定的六大原则,新代码必须遵循以下命名风格,现有库编码尽量保持风格。1尽量分别使用小写字母“l”、大写字母“O”和其他容易混淆的字母。2模块名尽量短,全部小写,可以使用下划线。3包名尽量短,全部小写,不能有下划线。4类使用CapWords方法命名,模块内部使用的类使用_CapWords方法。5异常名称使用CapWords+Error后缀。6全局变量尽量只在模块内有效,类似于C语言中的static。实现方式有两种,一种是__all__机制;另一个是带下划线的前缀。7函数名全部小写,可以使用下划线。8常量命名全部大写,可以使用下划线。9类的属性(方法和变量)命名全部小写,可以使用下划线。10Class属性有public、non-public、subclassAPI三种作用域,在C++中可以理解为public、private、protected。在非公共属性之前,有一个下划线作为前缀。如果类别11的属性与关键字名称冲突,则在后缀中加下划线,尽量不要使用缩写等其他方式。12为了避免与子类属性的命名冲突,类的一些属性在前面加了两个下划线。例如:__a在类Foo中声明。访问时,只能通过Foo._Foo__a来访问,避免产生歧义。如果子类也叫Foo,就没办法了。13类方法的第一个参数必须是self,静态方法的第一个参数必须是cls。七大编码建议1在编码时考虑其他python实现的效率。例如运算符'+'在CPython(Python)中效率很高,但在Jython中效率很低,所以应该使用.join()方法。2尽可能使用'is'和'isnot'而不是'=='。例如,ifxisnotNone比ifx更好。3使用基于类的异常,每个模块或包都有自己的异常类,它继承自Exception。4不要使用bareexceptinexceptions,except后面跟特定的exceptions。5异常中的try代码尽量少。例如:try:value=collection[key]exceptKeyError:returnkey_not_found(key)else:returnhandle_value(value)比try:#太宽泛了!returnhandle_value(collection[key])exceptKeyError:#也会捕获handle_value()返回key_not_found(key)6引发的KeyError使用startswith()和endswith()而不是切片来检查序列前缀或后缀。例如Yes:iffoo.startswith('bar')优于No:iffoo[:3]=='bar'7使用isinstance()比较对象类型。例如Yes:ifisinstance(obj,int)优于No:iftype(obj)istype(1)8来判断序列是否为空,有如下规则Yes:ifnotseq:ifseq:betterthanNo:iflen(seq)ifnotlen(seq)9不要以空格结束字符串。10使用ifboolvalue判断二进制数据4.Python标识符命名约定Python标识符命名规则:标识符由字符(A~Z和a~z)、下划线和数字组成,但第一个字符不能是数字。标识符不能与Python中的保留字相同。保留字将在后续章节详细介绍。Python中的标识符不能包含特殊字符,例如空格、@、%和$。在Python中,标识符中的字母严格区分大小写。在Python语言中,以下划线开头的标识符具有特殊的含义。例如,单下划线开头的标识符(如_width)表示不能直接访问的类属性,不能通过from...import*导入;双下划线开头的标识符(如__add)表示类的私有成员;以双下划线开头和结尾的标识符(例如__init__)是私有标识符。因此,除非特定场景需要,否则应避免使用下划线开头的标识符。标识符的命名,除了要遵守以上规则外,不同场景下标识符的命名也有一定的规范要遵循,例如:标识符作为模块名时,尽可能短且全小写字母,可以用下划线分隔多个字母,比如game_mian,game_register等。当标识符作为包名时,尽量短,全部使用小写字母。不推荐使用下划线,例如com.mr、com.mr.book等。标识符作为类名时,要大写。例如,要定义一个书籍类,您可以将其命名为Book。模块内部的类名可以采用“下划线+首字母大写”的形式,如_Book;类中的函数名、属性名、方法名均应使用小写字母,多个单词之间可用下划线分隔;constants名称中应全部使用大写字母,单词之间可以用下划线分隔。标识符为变量、函数、类、模板和其他对象命名。(base)leesin@LeeSin-Deepin:~$pythonPython3.7.6(default,Jan82020,19:59:22)[GCC7.3.0]::Anaconda,Inc.onlinuxType"help","copyright",“学分”或“许可证”以获取更多信息。>>>导入关键字>>>keyword.kwlist['False','None','True','and','as','assert','async','await','break','class','continue','def','del','elif','else','except','finally','for','from','global','if','import','in','is','lambda','nonlocal','not','or','pass','raise','return','try','while','with','yield']6.Python内置函数Python解释器也是一个为用户提供一些常用函数并赋予它们唯一名称的程序。这些常用函数是内置函数。Python解释器启动后,内置函数也生效,可以直接使用。Python标准库相当于解释器的外部扩展。它不会随着解释器的启动而启动。如果要使用这些外部扩展,必须提前导入它们。Python标准库非常庞大,包含很多模块。如果要使用某个功能,必须提前导入相应的模块,否则该功能将失效。内置函数是解释器的一部分,在解释器启动时生效;标准库函数是解释器的外部扩展,导入模块后生效。通常,内置函数比标准库函数执行得更高效。注意:不要使用内置函数的名字作为标识符(如变量名、函数名、类名、模板名、对象名等)虽然Python解释器不会报错,但是这样会导致内置同名函数被覆盖,无法使用