共计 4758 个字符,预计需要花费 12 分钟才能阅读完成。
1.Python 正文
单行正文 #
作为单行正文的符号,语法格局为:# 正文内容
从井号 #
开始,直到这行完结为止的所有内容都是正文。Python 解释器遇到 #
时,会疏忽它前面的整行内容。
# 应用 print 输入字符串
print("Hello World!")
#应用 print 输入数字
print(100)
多行正文 应用三个间断的单引号 ”’ 或者三个间断的双引号 ””” 正文多行内容,具体格局如下:
'''
应用 3 个单引号别离作为正文的结尾和结尾
能够一次性正文多行内容
这外面的内容全副是正文内容
'''
多行正文通常用来为 Python 文件、模块、类或者函数等增加版权或者性能形容信息。
注意事项
- Python 多行正文不反对嵌套
- 不论是多行正文还是单行正文,当正文符作为字符串的一部分呈现时,就不能再将它们视为正文标记,而应该看做失常代码的一部分
2.Python 缩进规定
Python 中实现对代码的缩进,能够应用 空格
或者 Tab 键
实现。
但无论是手动敲空格,还是应用 Tab 键,通常状况下都是采纳 4 个空格长度作为一个缩进量
height=float(input("输出身高:")) #输出身高
weight=float(input("输出体重:")) #输出体重
bmi=weight/(height*height) #计算 BMI 指数
#判断身材是否正当
if bmi<18.5:
#上面 2 行同属于 if 分支语句中蕴含的代码
#因而属于同一作用域
print("BMI 指数为:"+str(bmi)) #输入 BMI 指数
print("体重过轻")
if bmi>=18.5 and bmi<24.9:
print("BMI 指数为:"+str(bmi)) #输入 BMI 指数
print("失常范畴,留神放弃")
if bmi>=24.9 and bmi<29.9:
print("BMI 指数为:"+str(bmi)) #输入 BMI 指数
print("体重过重")
if bmi>=29.9:
print(BMI 指数为:"+str(bmi)) #输入 BMI 指数
print("瘦削")
Python 对代码的缩进要求十分严格,同一个级别代码块的缩进量必须一样,否则解释器会报 SyntaxError
异样谬误。
3.PEP8 Python 编码标准整顿
一 代码编排
1 缩进:4 个空格的缩进(编辑器都能够实现此性能),不应用 TAB,更不能混合应用 TAB 和空格
2 每行最大长度 79,换行能够应用反斜杠, 最好应用圆括号。换行点要在操作符的后边敲回车
3 类和 top-level 函数定义之间空两行;类中的办法定义之间空一行;函数内逻辑无关段落之间空一行;其余中央尽量不要再空行。
二 文档编排
1 模块内容的程序:模块阐明和 docstring—import—globals&constants—其余定义。其中 import 局部,又按规范、三方和本人编写程序顺次排放,之间空一行
2 不要在一句 import 中多个库,比方 import os, sys 不举荐。
3 如果采纳 from XX import XX 援用库,能够省略‘module.’,都是可能呈现命名抵触,这时就要采纳 import XX。
三 空格的应用
总体准则,防止不必要的空格。
1 各种右括号前不要加空格。
2 逗号、冒号、分号前不要加空格
3 函数的左括号前不要加空格。如 Func(1)
4 序列的左括号前不要加空格。如 list[2]。
5 操作符左右各加一个空格,不要为了对齐减少空格。
6 函数默认参数应用的赋值符左右省略空格。
7 不要将多句语句写在同一行,只管应用‘;’容许。
8 if/for/while 语句中,即便执行语句只有一句,也必须另起一行。
四 正文
总体准则,谬误的正文不如没有正文。所以当一段代码发生变化时,第一件事就是要批改正文!
正文必须应用英文,最好是残缺的句子,首字母大写,句后要有结束符,结束符后跟两个空格,开始下一句。如果是短语,能够省略结束符。
1 块正文,在一段代码前减少的正文。在‘#’后加一空格。段落之间以只有‘#’的行距离。比方:
Description : Module config.
# Input : None
# Output : None
2 行正文,在一句代码后加正文。比方:x = x + 1 #注这是一条正文
然而这种形式尽量少应用。
3 防止无谓的正文。
五 文档形容
1 为所有的共有模块、函数、类、办法写 docstrings;非共有的没有必要,然而能够写正文(在 def 的下一行)。
2 如果 docstring 要换行,参考如下例子, 详见 PEP 257“””Return a foobang
Optional plotz says to frobnicate the bizbaz first.
“””
六 命名标准
总体准则,新编代码必须按上面命名格调进行,现有库的编码尽量放弃格调。
1 尽量独自应用小写字母‘l’,大写字母‘O’等容易混同的字母。
2 模块命名尽量短小,应用全副小写的形式,能够应用下划线。
3 包命名尽量短小,应用全副小写的形式,不能够应用下划线。
4 类的命名应用 CapWords 的形式,模块外部应用的类采纳_CapWords 的形式。
5 异样命名应用 CapWords+Error 后缀的形式。
6 全局变量尽量只在模块内无效,相似 C 语言中的 static。实现办法有两种,一是__all__机制; 二是前缀一个下划线。
7 函数命名应用全副小写的形式,能够应用下划线。
8 常量命名应用全副大写的形式,能够应用下划线。
9 类的属性(办法和变量)命名应用全副小写的形式,能够应用下划线。
10 类的属性有 3 种作用域 public、non-public 和 subclass API,能够了解成 C ++ 中的 public、private、protected,non-public 属性前,前缀一条下划线。
11 类的属性若与关键字名字抵触,后缀一下划线,尽量不要应用缩略等其余形式。
12 为防止与子类属性命名抵触,在类的一些属性前,前缀两条下划线。比方:类 Foo 中申明__a, 拜访时,只能通过 Foo._Foo__a,防止歧义。如果子类也叫 Foo,那就无能为力了。
13 类的办法第一个参数必须是 self,而静态方法第一个参数必须是 cls。
七 编码倡议
1 编码中思考到其余 python 实现的效率等问题,比方运算符‘+’在 CPython(Python)中效率很高,都是 Jython 中却非常低,所以应该采纳.join()的形式。
2 尽可能应用‘is’‘is not’取代‘==’,比方 if x is not None 要优于 if x。
3 应用基于类的异样,每个模块或包都有本人的异样类,此异样类继承自 Exception。
4 异样中不要应用袒露的 except,except 后跟具体的 exceptions。5 异样中 try 的代码尽可能少。比方:
try:
value = collection[key]
except KeyError:
return key_not_found(key)
else:
return handle_value(value)
要优于
try:
\# Too broad!
return handle_value(collection[key])
except KeyError:
\# Will also catch KeyError raised by handle_value()
return key_not_found(key)
6 应用
startswith()
和endswith()
代替切片进行序列前缀或后缀的查看。比方Yes: if foo.startswith(‘bar’)
优于No: if foo[:3] ==‘bar’
7 应用isinstance()
比拟对象的类型。比方Yes: if isinstance(obj, int)
优于No: if type(obj) is type(1)
8 判断序列空或不空,有如下规定
Yes: if not seq:
if seq:
优于
No: if len(seq)
if not len(seq)
9 字符串不要以空格收尾。
10 二进制数据判断应用 if boolvalue 的形式
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;
- 函数名、类中的属性名和办法名,应全副应用小写字母,多个单词之间能够用下划线宰割;
常量命名应全副应用大写字母,单词之间能够用下划线宰割
5.Python 关键字
保留字是 Python
语言中一些曾经被赋予特定意义的单词,这就要求开发者在开发程序时,不能用这些保留字作为标识符给变量、函数、类、模板以及其余对象命名。
(base) leesin@LeeSin-Deepin:~$ python
Python 3.7.6 (default, Jan 8 2020, 19:59:22)
[GCC 7.3.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import keyword
>>> 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 解释器不会报错,但这会导致同名的内置函数被笼罩,从而无奈应用