第 2 章 语法基础
2.1Python 代码规范
Python 程序的组成
1.Python 程序由模块组成。一个模块对应 Python 源文件,一般后缀名是:.py。
2.模块由语句组成。运行 Python 程序时,按照模块中语句的顺序依次执行。
3.语句是 Python 程序的构造单元,用于创建对象、变量赋值、调用函数、控制语句等。
代码的组织
1.标点符号都是英文/半角符号,而不是中文,例如:(,”
2.Python 区分大小写,例如True不等于true
3. 每行代码结束没必要加 ;
代码的缩进
很多编程语言通过字符(例如:花括号{} )、关键字(例如:begain/end)来划分程序代码块,同时配合代码的缩进增加可读性。而“龟叔”设计Python 语言时,直接通过缩进来划分程序代码块,同一级缩进为一个程序代码块。“缩进”成为Python 语法强制的规定(但这并不是说Python 中没有{} )。
1.每行行首的空白量决定此行的缩进层次,从而用来决定语句的分组。
2.空白量统一用空格、制表符Tab生成,IDE会自动将 单个制表符 设置成 4个空格。
3.通常每个缩进层次使用 单个制表符 或 四个空格。
缩进示例:
def qian(): #第一级缩进,0个空格 data = a #第二级缩进,4个空格 url = b #第二级缩进,4个空格,如果不是4个空格会报错,与其他语言的一个明显区别 header = { #第二级缩进,4个空格 'cookie': cookie #第三级缩进,8个空格 } #第二级缩进,4个空格 |
Python 官方推荐的 PEP-8 代码风格详细说明,有兴趣的可以参考:PEP 8 – Style Guide for Python Code | peps.python.org
注释
1.行注释
每行注释前加#号,最好再加个空格。当解释器看到#,则忽略这一行#后面的内容。
2.段注释
使用三个连续单引号'''(或者三个连续双引号""")。当解释看到''',则会扫描到下一个''',然后忽略他们之间的内容。
换行
一行程序长度是没有限制的,但是为了可读性更强,通常将一行比较长的程序分为多行。我们可以使用\行连接符,把它放在行结束的地方。Python 解释器仍然将它们解释为同一行。
例:long_tuple = ( \
1, 2, 3, \
4, 5, 6 \
)
print(long_tuple)
执行后:
(1, 2, 3, 4, 5, 6)
但是,使用\进行硬连接并不是PEP-8推荐的首选方式,因为这可能导致不易察觉的缩进错误和格式混乱。更好的做法是利用Python的()、{}+自动换行功能。
my_tuple = (
1, 2, 3,
4, 5, 6
)
print(my_tuple)
my_list = [
'item1',
'item2',
'item3',
]
print(my_list)
my_dict = {
'key1': 'value1',
'key2': 'value2',
'key3': 'value3',
}
执行后:
print(my_dict)
(1, 2, 3, 4, 5, 6)
['item1', 'item2', 'item3']
{'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}
2.2对象
Python 中,一切皆对象。每个对象由:标识(identity)、类型(type)、value(值)组成。
1. 标识用于唯一标识对象,通常对应于对象在计算机内存中的地址。使用内置函数 id(obj) 可返回对象 obj 的标识。
2. 类型用于表示对象存储的“数据”的类型。类型可以限制对象的取值范围以及可执行的操作。可以使用 type(obj)获得对象的所属类型。
3. 值表示对象所存储的数据的信息。使用 print(obj)可以直接打印出值。
对象的本质就是:一个内存块,拥有特定的值,支持特定类型的相关操作。
例1:
a=3 # 动态类型语言不需要定义时声明数据类型
print(id(3))
print(type(3))
print(3)
print(id(a))
print(type(a))
print(a)
执行后:
1531372336
<class 'int'>
3
1531372336
<class 'int'>
3
例2:
b='我爱你' # 或者b="我爱你"也行
print(id(b))
print(type(b))
print(b)
执行后:
46806816
<class 'str'>
我爱你
示意图:
2.3引用
在Python 中,变量也成为:对象的引用。因为变量存储的就是对象的地址。 变量通过地址引用了“对象”。
变量位于:栈内存(压栈出栈等细节,后续再介绍)。
对象位于:堆内存。
Python 是动态类型语言:变量的数据类型不在编译时确定,而在运行时确定,即变量不需要显式声明数据类型。根据变量引用的对象,Python 解释器自动确定其数据类型,这一点不同于C、C++、JAVA。
Python 是强类型语言:每个对象都有数据类型,只支持该类型支持的操作。
2.4关键字、标识符
关键字/保留字
关键字/保留字是Python语言中一些已经被赋予特定意义的单词。开发程序时,不可以把这些保留字作为标识符、变量、函数、类、模块和其他对象的名称来使用。Python 中所有保留字是区分字母大小写的。
and |
as |
assert |
break |