Python基础 - 基础语法

234 阅读6分钟

Python 基础语法

注释

Python 提供了三种注释的形式单行注释 、多行注释和中文编码声明注释。

单行注释

Python 的单行注释使用的是 # 号。Python的单行注释可以嵌套使用。

# 注释内容
print('hello world!')
hello world!

多行注释

Python 的多行注释有两种:

  1. 一种使用的是三个单引号 '''
  2. 另一种是三个双引号 """

Python 的两种多行注释都 不可以嵌套使用,但两种多行注释混合嵌套使用是允许的。Python 的多行注释通常用来为 Python 文件、模块、类或者函数等添加版权、功能描述等信息。

在 Python 中,如果多行注释标记(三单引号或三双引号)作为语句的一部分出现,就不能再将它们视为多行注释的标记,而应看做是字符串的标志(同双引号的作用相同)。

'''
注释内容
'''
"""
这里也是多行注释内容
"""
print('hello world!')
hello world!

中文编码声明注释

Python 的中文编码声明注释,主要是解决 Python2 中不支持中文的问题。中文编码问题在 Python 3.x 中已经不存在。

Python 的中文编码声明注释也有两种。

# -*- coding:编码 -*-
# coding=编码
print('hello world!')
hello world!

转义字符

Python常用转义字符:

转义字符说明
\在行尾的续行符,即一行未完,转到下一行继续写
单引号
"双引号
\0
\n换行符
\r回车符
\t水平制表符,用于横向跳到下一制表位
\a响铃
\b退格(Backspace)
\反斜线
\0dd八进制数,dd 代表字符,如 \012 代表换行
\xhh十六进制数,hh 代表字符,如 \x0a 代表换行
print('网站\t英文\t网址')
print('百度\tBaidu\twww.baidu.com')
网站	英文	网址
百度	Baidu	www.baidu.com
print('百度\nBaidu\nwww.baidu.com')
百度
Baidu
www.baidu.com

标识符

Python 对各种 变量方法、函数等命名时使用的字符序列称为标识符。也可以说凡是自己可以起名字的地方都叫标识符,简单地理解,标识符就是一个名字,它的主要作用就是作为变量、函数、类、模块以及其他对象的名称。

Python标识符的命名规则

  • Python 标识符由 26 个英文字母大小写,0-9 ,_ 组成。
  • Python 标识符不能以数字开头。
  • Python 标识符严格区分大小写。
  • Python 标识符不能包含空格、@% 以及 $ 等特殊字符。
  • 不能以系统保留关键字作为标识符(一共有25 个)。

Python标识符的命名注意事项

  • Python 标识符尽量采取有意义的包名,简短,有意义,不要和系统保留关键字冲突。
  • Python 标识符以单下划线开头的标识符,表示不能直接访问的类属性,其无法通过 import 的方式导入。
  • 以双下划线开头的标识符表示类的私有成员。
  • 以双下划线作为开头和结尾的标识符,是专用标识符。
  • Python 标识符是允许使用汉字作为标识符的。

Python标识符规范

  • 当标识符用作模块名时,应尽量短小,并且全部使用小写字母,可以使用下划线分割多个字母。
  • 当标识符用作包的名称时,应尽量短小,也全部使用小写字母,不推荐使用下划线。
  • 当标识符用作类名时,应采用单词首字母大写的形式。
  • 模块内部的类名,可以采用 “下划线+首字母大写” 的形式。
  • 函数名、类中的属性名和方法名,应全部使用小写字母,多个单词之间可以用下划线分割。
  • 常量命名应全部使用大写字母,单词之间可以用下划线分割。

Python标识符总结

  • Python 对各种变量、方法、函数等命名时使用的字符序列称为标识符。Python 标识符由 26 个英文字母大小写,0-9 ,_ 组成,不能以数字开头,且严格区分大小写。
  • Python 标识符不能包含空格、@% 以及 $ 等特殊字符,不能以系统保留关键字作为标识符(一共有25 个)。
  • Python 中,以下划线开头的标识符有特殊含义。

保留字

Python 的保留字在开发程序时,不能用这些保留字作为标识符给 变量、函数、类、模板以及其他对象命名。

Python 保留字可以通过 keyword.kwlist 命令查看。

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']

缩进

Python 和其它程序设计语言采用大括号 {} 分隔代码块不同,Python 采用代码缩进和冒号来区分代码块之间的层次,即:行尾的冒号和下一行的缩进,表示下一个代码块的开始;而缩进的结束则表示此代码块的结束。

PEP8 规范要求4个空格为语句块缩进。凡是报错信息看到:IndentationError: unexpected indent ,就是表示缩进不一致。

if 5 > 2:
    print("Five is greater than two!")
Five is greater than two!

PEP8 编码规范

代码缩进

在 Python 中,代码缩进推荐使用四个空格,而不是一个 tab 键。

最大行宽

限制所有行的最大行宽为 79 字符。文本长块,比如文档字符串或注释,行长度应限制为 72 个字符。

空行

使用空行分割顶层函数和类的定义。类中的方法的定义使用单个空行进行分割。

额外的空行可以必要的时候用于分割不同的函数组,但是要尽量节约使用。

额外的空行可以必要的时候在函数中用于分割不同的逻辑块,但是要尽量节约使用。

空格

各种右括号前不要加空格。

逗号、冒号、分号前不要加空格。

函数的左括号前不要加空格,如 Func(1)

序列的左括号前不要加空格,如 list[2]

操作符左右各加一个空格,不要为了对齐增加空格。

函数默认参数使用的赋值符左右省略空格。

import导入

import导入始终在文件的顶部,在模块注释和文档字符串之后,在模块全局变量和常量之前。

导入顺序如下:标准库进口,相关的第三方库,本地库。各组的导入之间要有空行。

不要在一行 import 多个库,每行只能 import 一个库。

注释

总体原则,错误的注释不如没有注释。所以当一段代码发生变化时,第一件事就是要修改注释。

注释必须使用英文,最好是完整的句子,首字母大写,句后要有结束符,结束符后跟两个空格,开始下一句。如果是短语,可以省略结束符。

块注释,在一段代码前增加的注释。行注释,在一句代码后加注释。但是这种方式尽量少使用。

命名规则

模块命名尽量短小,使用全部小写的方式,可以使用下划线。

包命名尽量短小,使用全部小写的方式,不可以使用下划线。

类的命名使用 CapWords 的方式,模块内部使用的类采用 _CapWords 的方式。

异常命名使用 CapWords+Error 后缀的方式。

全局变量尽量只在模块内有效,类似 C语言 中的 static。

函数命名使用全部小写的方式,可以使用下划线。

常量命名使用全部大写的方式,可以使用下划线。

类的属性(方法和变量)命名使用全部小写的方式,可以使用下划线。类的属性若与关键字名字冲突,后缀一下划线,尽量不要使用缩略等其他方式。

为避免与子类属性命名冲突,在类的一些属性前,前缀两条下划线。

类的方法第一个参数必须是self,而静态方法第一个参数必须是cls。