python基础
1、语句和语法
python语句中有一些基本规则和特殊字符:
井号(#)表示之后的字符为python注释
换行(\n)是标准的行分隔符(通常一个语句一行)
反斜线(\)继续上一行
分号(;)将两个语句连接在一行
冒号(:)将代码块的头和体分开
语句(代码块)用缩进块的方式体现
不同的缩进深度分隔不同的代码块
python文件以模块的形式组织
2、变量赋值
赋值运算符,在python语言中,等号(=)是主要的赋值运算符。如:
anInt = 12
aString = 'cat'
aFloat = 2.14
anotherString = 'shop' + 'ping'
对象是通过引用传递的。
链式赋值:y = x = x + 1;增量赋值:x = x + 1 或者 x += 1;多重赋值:x = y = z = 1(在上面的例子中,一个值为 1 的整数对象被创建,该对象的同一个引用被赋值给 x、y 和z 。也就是将一个对象赋给了多个变量); 多元赋值:x, y, z = 1, 2, 'a string' 或者 (x, y, z) = (1, 2, 'a string')
3、标识符
合法标识符:
▶ 第一个字符必须是字母或者下划线(_)
▶ 剩下的字符可以是字母和数字或者下划线
▶ 大小写敏感
关键字:
内建:python可以再任何一级代码使用的“内建”的名字集合,这些名字可以由解释器设置或使用。
专用下划线标识符:python用下划线作为变量前缀和后缀指定的特殊变量。如下总结:
▶ _xxx 不用'from module import *'导入
▶ __xxx__ 系统定义名字
▶ __xxx 类中的私有变量名
注:避免用下划线作为变量名的开始
4、内存管理
变量和内存管理的细节包括:
▶变量无需事先声明
▶变量无需指定类型
▶程序员不用关心内存管理
▶变量名会被“回收”
▶del语句能够直接释放资源
1)变量定义:在python中,无需显式变量声明语句,变量在第一次被赋值时自动声明。和其他大多数语言一样,变量只有被创建和赋值后才能被使用。
2)动态类型:在python中不但变量名无需事先声明,而且也无需类型声明,在程序中,对象的类型和内存所占用的都是运行时确定的。尽管代码被编译成字节码,python仍然是一种解释型语言。在创建也就是赋值时,解释器会根据语法和右侧的操作数来决定新对象的类型,在对象创建后,一个该对象的应用会被赋值给左侧的变量。
3)内存分配:Python 解释器承担了内存管理的复杂任务, 这大大简化了应用程序的编写。你只需要关心你要解决的问题,至于底层的事情放心交给 Python 解释器去做就行了
4)引用计数:在python中使用了引用计数这一简单技术,一个内部跟踪变量称为一个引用计数器,当这个对象不再需要时,这个对象的引用计数为0时,它被垃圾回收。
对象的引用计数增加的情况:
▶对象被创建
▶或另外的别名被创建
▶或被作为参数传递给函数
▶或称为容器对象的一个元素
对象的引用计数减少的情况:
▶一个本地引用离开了其作用范围。
▶对象的别名被显式的销毁
▶对象的一个别名被赋值给其他的对象
▶对象被从一个窗口对象移出
▶窗口对象本身被销毁
del 语句
del语句会删除对象的一个引用,语法:del obj1[, obj2[, ....objN]],例如:del y会产生两个结果(1)从现在的名字空间中删除y(2)改对象的引用对象减1。
5)垃圾收集:Python 的垃圾收集器实际上是一 个引用计数器和一个循环垃圾收集器。 当一个对象的引用计数变为 0,解释器会暂停,释放掉这个对象和仅有这个对象可访问(可到达)的其它对象。作为引用计数的补充, 垃圾收集器也会留心被分配的总量很大(及未通过引用计数销毁的那些)的对象。在这种情况下, 解释器会暂停下来, 试图清理所有未引用的循环。