一、 语句和语法
井号(#)表示之后的字符为Python 注释 |
换行(\n)是标准的行分隔符(通常一个语句一行) |
反斜线(\)继续上一行 |
分号(;)将两个语句连接在一行中 |
冒号(:)将代码块的头和体分开 |
语句(代码块)用缩进块的方式体现 |
不同的缩进深度分隔不同的代码块 |
Python文件以模块的形式组织 |
(1) 注释(#)
(2) 继续(\)
一般使用换行分隔,也就是说一行一个语句。
# check conditions if (weather_is_hot == 1) and \ (shark_warnings == 0): send_goto_beach_mesg_to_pager()
有两种例外情况一个语句不使用反斜线也可以跨行:在含有小括号、中括号、花括号时可以多行书写。
三引号包括下的字符串可以跨行书写
print '''hi there, this is a long message of you that goes over multiple lines...you will find out soon that triple quotes in Python allows this kind of fun!''' go_surf, get_a_tan_while, boat_size, toll_money = (1, 'windsurfing', 40.0, -2.00)
(3)多个语句构成代码组(:)
if、while、def、class语句,首行以关键字开始,以冒号结束。该行之后的一行或多行代码构成代码组。
我们将首行及后面的代码组称为一个子句
(4)代码组由不同的缩进分隔
缩进4个空格,避免使用制表符(Tab)
(5)同一行书写多个语句(;)
分号允许你将多个语句写在同一行上,语句之间用分号隔开,而这些语句也不能在这行开始一个新的代码块。
import sys; x = 'foo'; sys.stdout.write(x + '\n')
(6)模块
每一个Python脚本文件都可以被当成是一个模块,模块以磁盘文件的形式存在。
二、 变量赋值
(1) 赋值操作符 (=)
anInt = -12 aString = 'cart' aFloat = -3.14159 * (5.0 ** 2) anotherString = 'shop' + 'ping' aList = [3.14e10, '2nd elmt of a list', 8.82-4.371j]
(2) 增量赋值
x = x + 1
可以写成:
x += 1
= | 简单的赋值运算符 | c = a + b 将 a + b 的运算结果赋值为 c |
+= | 加法赋值运算符 | c += a 等效于 c = c + a |
-= | 减法赋值运算符 | c -= a 等效于 c = c - a |
*= | 乘法赋值运算符 | c *= a 等效于 c = c * a |
/= | 除法赋值运算符 | c /= a 等效于 c = c / a |
%= | 取模赋值运算符 | c %= a 等效于 c = c % a |
**= | 幂赋值运算符 | c **= a 等效于 c = c ** a |
//= | 取整除赋值运算符 | c //= a 等效于 c = c // a |
(3) 多重赋值
>>> x = y = z = 1 >>> x 1 >>> y 1 >>> z 1
(4) ”多元“赋值
>>> (x, y, z) = (1, 2, 'a string') >>> x 1 >>> y 2 >>> z a string
# Python 中两个变量交换 >>> x, y = (1, 2) >>> x 1 >>> y 2 >>> x, y = (y, x) >>> x 2 >>> y 1
(3)标识符
1、 合法的Python 标识符
第一个字符必须是字母或下划线(_) |
剩下的字符可以是字母和数字或下划线 |
大小写敏感 |
标识符不能以数字开头;除了下划线,其他的符号都不允许使用。
2、 关键字
and | as | assert | break |
class | continue | def | del |
elif | else | except | exec |
finally | for | from | global |
if | import | in | is |
lambda | not | or | pass |
raise | return | try | |
while | with | yield | None |
3、 内建
4、 专用下划线标识符
Python 用下划线作为变量前缀和后缀制定特殊变量
_xxx | 不用'from module import *'导入 |
_xxx_ | 系统定义名字 |
_xxx | 类中的私有变量名 |
(4)、 基本风格指南
1、 模块结构和布局
# (1) 起始行(Unix)
# (2) 模块文档
# (3) 模块导入
# (4) 变量定义
# (5) 类定义
# (6) 函数定义
# (7) 主程序
检测模块是被导入或者执行:
(__name__) 指示模块:如果模块是导入,__name__的值为模块名字
如果模块是被直接执行,__name__的值为'__main__'
(5)、 内存管理
引用计数
要保持追踪内存中的对象,Python使用了引用计数这一简单技术。
一个内部跟踪变量,称为一个引用计数器。每个对象各有多少个引用,简称引用计数。
1、 增加引用计数:
对象被创建: x = 3.14
或另外的别名被创建: y = x
或被作为参数传递给函数(新的本地引用):foobar(x)
或成为容器对象的一个元素: myList = ]123, x, 'xyz']
2、 减少引用计数:
一个本地引用离开了其作用范围
对象的别人被显示销毁:del y
对象被从一个窗口对象中移除:myList.remove(x)
窗口对象本身被销毁:del myList
3、 del语句
Del语句会删除对象的一个引用,她的语法如下:
del obj1[, obj2, obj3......objN]
从现在的名称空间中删除y
x的引用计数减1