目录
1、字面量
含义:程序中直接写出来固定的值,不是变量或表达式。
分类:
|----------------|-----------------------------------------|----------------------------------------|
| 类型 | 描述 | 说明 |
| 数字(Number) | 整数(int) 浮点数(float) 复数(complex) 布尔(bool) | 整数、浮点数包括正、负数;复数如1+2j,以j/J结尾;布尔使用与C差不多。 |
| 字符串(String) | 描述文本的数据类型 | 由任意数量的中文、英文、任意符号、数字组成 |
| 列表(List) | 有序可变序列 | 有序记录一堆数据 |
| 元组(Tuple) | 有序不可变序列 | 有序记录一堆不可变的数据 |
| 集合(Set) | 无序不重复集合 | 无序记录一堆不重复数据 |
| 字典(Dictionary) | 无序Key-Value集合 | 无序记录一堆Key-Value数据 |
2、标识符
标识符是编程时使用的名字,用于给变量、函数、语句块等命名,Python 中标识符由字母、数字、下划线组成,不能以数字开头,区分大小写。
以下划线开头的标识符有特殊含义
- 单下划线开头:_xxx ,表示不能直接访问的类属性,需通过类提供的接口进行访问,不能用 from xxx import * 导入;
- 双下划线开头:__xx,表示私有成员;
- 双下划线开头和结尾:xx,表示 Python 中内置标识,如__init__() 表示类的构造函数。
3、关键字
Python 中的关键字(保留字)在自定义标识符时不能使用。在命令行输入以下可查看当前版本的python保留字。
python
>>> 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']
4、变量
变量可理解为标签,当把一个值赋给一个名字时,这个名字就成为变量,即变量是用于存储值的。Python是一种动态类型语言,++变量类型可以随时变化++ 。并且,++允许变量指向同一个值++。
变量的定义
在Python中,变量不需要先声明,可以直接赋值即可创建各种类型的变量。格式如下:
变量名 = value
变量的命名
不能使用保留字,慎用小写l和大写字母O,选择有意义的单词命名。
5、注释
注释是代码中的解释型语句,用来对代码内容进行注解。注释不是代码,不会被程序执行。
单行注释
- 通过 # 号定义,在#号右侧的所有内容均作为注释;
- 建议在#号和注释内容之间,间隔一个空格;
- 单行注释一般用于对一行或一小部分代码进行解释。
多行注释
- 通过一对三个引号来定义("""注释内容"""),引号内部均是注释,可以换行;
- 多行注释一般对:Python 文件、类或方法进行解释。
6、行与缩进
python最具特色的就是使用缩进来表示代码块,不需要使用大括号 {} 。缩进的空格数是可变的,但是同一个代码块的语句必须包含相同的缩进空格数,否则会报错。实例如下:
python
if True:
print ("True")
else:
print ("False")
多行语句
Python 通常是一行写完一条语句,但如果语句很长,我们可以使用反斜杠 \ 来实现多行语句,例如:
python
total = item_one + \
item_two + \
item_three
在 [], {}, 或 () 中的多行语句,不需要使用反斜杠 \,例如:
python
total = ['item_one', 'item_two', 'item_three',
'item_four', 'item_five']
7、运算符
分类
|---------|------------------|----------------------------|
| 运算符 | 描述 | 示例 |
| + | 相加 | a + b |
| - | 相减 | a - b |
| * | 相乘 | a * b |
| / | 相除 | a / b |
| % | 取模 | a % b |
| ** | 幂 | a**b 表示 a 的 b 次幂 |
| // | 取整除 | 9 // 4 结果为 2 |
| == | 是否相等 | a == b |
| != | 是否不等于 | a != b |
| > | 是否大于 | a > b |
| >= | 是否大于等于 | a >= b |
| <= | 是否小于等于 | a <= b |
| = | 简单的赋值运算符 | a = b + c |
| += | 加法赋值运算符 | a += b 等效于 a = a + b |
| -= | 减法赋值运算符 | a -= b 等效于 a = a - b |
| *= | 乘法赋值运算符 | a *= b 等效于 a = a * b |
| /= | 除法赋值运算符 | a /= b 等效于 a = a / b |
| %= | 取模赋值运算符 | a %= b 等效于 a = a % b |
| **= | 幂赋值运算符 | a **= b 等效于 a = a ** b |
| //= | 取整除赋值运算符 | a //= b 等效于 a = a // b |
| & | 与 | a & b |
| | | 或 | a | b |
| ^ | 异或 | a ^ b |
| ~ | 取反 | ~a |
| << | 左移动 | a << 3 |
| >> | 右移动 | a >> 3 |
| and | 布尔类型与 | a and b |
| or | 布尔类型或 | a or b |
| not | 布尔类型非 | not a |
| is | 判断两个标识符是否引用同一个对象 | a is b |
| is not | 判断两个标识符是否引用不同对象 | a is not b |
优先级
|-----------------------------|-------------------|
| 运算符 | 由上至下对应优先级由高到低 |
| ** | 幂运算 |
| ~ + - | 取反、正号、负号 |
| * / % // | 乘、除、取模、取整除 |
| + - | 加法、减法 |
| >> << | 右移、左移 |
| & | 与 |
| ^ | | 异或、或 |
| <= < > >= | 比较运算符 |
| == != | 是否等于、是否不等于 |
| = %= /= //= -= += *= **= | 赋值运算符 |
| is is not | 身份运算符 |
| in not in | 成员运算符 |
| not and or | 逻辑运算符 |
8、编程规范
- 每个import语句只导入一个模块,避免一次导入多个模块。
- 不要在行尾添加分号";",不要用分号把两条代码放同一行。
- 每行建议不要超过80字符,超过用"()"将多行内容隐式连接起来,不推荐使用"\"连接。示例如下:
python
print("和他们一起,我为什么像一只蜗牛。"
"一直爬,爬不到金字塔顶端。")
#不推荐
#print("他们眼里,我为什么像一只蜗牛。\
#一直爬,爬不到金字塔顶端。")
- 运算符两侧、函数参数间、逗号两侧建议用空格分隔。
- 模块名应该尽量短小,并且全部使用小写字母 ,可以使用下划线分隔多个单词。
- 包名尽量短小,并且也全部使用小写字母,但是不推荐使用下划线。
- 类名首字母大写。
- 模块++内部的类++ 采用下划线在前、(每个)首字母大写单词在后形式。
- 函数、类的属性和方法的命名规则通模块类相似,也是全部使用小写字母 ,多个单词间用下划线分隔。
- 常量命名全部字母大写。