Python基础语法

1、以单下划线开头 _foo 的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用 from xxx import * 而导入。

2、以双下划线开头的_foo 代表类的私有成员,以双下划线开头和结尾的_foo 代表 Python 里特殊方法专用的标识,如_init_() 代表类的构造函数。

3、Python 的关键字只包含小写字母,and、exec、not、assert、finally、or、break、for pass、class、from、print、continue、global 、raise、def、if、return、del、import、try、elif、in、while、else、is、with、except、lambda、yield。

4、缩进的空白数量是可变的,但是所有代码块语句必须包含相同的缩进空白数量,这个必须严格执行。

5、Python语句中一般以新行作为语句的结束符,一行可以执行多个语句用;分开,可以使用斜杠\将一行的语句分为多行显示。

6、使用引号( ‘ )、双引号( “ )、三引号( ‘’’ 或 “”” ) 来表示字符串,三引号可以由多行组成,编写多行文本的快捷语法,常用于文档字符串,在文件的特定地点,被当做注释。

7、python中单行注释采用 # 开头,多行注释使用三个单引号(‘’’)或三个双引号(“””)。

8、print 默认输出是换行的,如果要实现不换行需要在变量末尾加上逗号 ,。

9、Python 中的变量赋值不需要类型声明,每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。

10、标准数据类型,Numbers(数字)、String(字符串)、List(列表)、Tuple(元组)、Dictionary(字典)。

11、Python支持四种不同的数字类型,int(有符号整型)、long(长整型[也可以代表八进制和十六进制])、float(浮点型)、complex(复数)

12、Python 还支持复数,复数由实数部分和虚数部分构成,可以用 a + bj,或者 complex(a,b) 表示, 复数的实部 a 和虚部 b 都是浮点型。

13、字符串截取 [头下标:尾下标] 获取的子字符串包含头下标的字符,但不包含尾下标的字符。例如 s = ‘abcdef’ s[1:5] 输出’bcde’,s[2:],输出从第三个字符开始的字符串 s[1] 的值 b ,s[5] 的值 f。

14、列表相当于IOS中的数组。截取可以接收第三个参数,参数作用是截取的步长,以下实例在索引 1 到索引 4 的位置并设置为步长为 2(间隔一个位置)来截取字符串,如:ss = [‘c’,’h’,’e’,’c’,’k’,’i’,’o’] ss[1:4:2] 结果为[‘h’,’c’]。

15、加号(+)是字符串连接运算符 str + “TEST” ,星号(*)是重复操作 s * 2 输出字符串两次。

16、元组是另一个数据类型,类似于 List(列表)。元组用 () 标识。内部元素用逗号隔开。但是元组不能二次赋值,相当于只读列表。tuple = ( ‘runoob’, 786 , 2.23, ‘john’, 70.2 ) list = [ ‘runoob’, 786 , 2.23, ‘john’, 70.2 ] tuple[2] = 1000 元组中是非法应用 list[2] = 1000 列表中是合法应用

17、pythan中的字典当中的元素是通过键来存取的,而不是通过偏移存取。字典用”{ }”标识。字典由索引(key)和它对应的值value组成。dict.keys()取出所有键 dict.values()取出所有值 和IOS基本无异。

18、数据类型转换 float(x) 将x转换到一个浮点数 int(x [,base])将x转换为一个整数 str(x) 将对象 x 转换为字符串 set(s) 转换为可变集合 dict(d) 创建一个字典。d 必须是一个序列 (key,value)元组。

19、算术运算符,这儿介绍一个// 取整除 - 返回商的整数部分(向下取整)9//2 4 和js基本无异。

20、Python身份运算符 is 是判断两个标识符是不是引用自一个对象 x is y, id() 函数用于获取对象内存地址 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 False is not 是判断两个标识符是不是引用自不同对象

21、is 与 == 区别 is 用于判断两个变量引用对象是否为同一个(同一块内存空间), == 用于判断引用变量的值是否相等。

22、简单的语句,可以在同一行的位置上使用if条件判断语句,如:var = 100 ;if ( var == 100 ) : print “变量 var 的值为100” .

23、Python for 循环语句 for iterating_var in sequence: statements(s) for letter in ‘Python’: # 第一个实例 print ‘当前字母 :’, letter

24、 使用 class 语句来创建一个新类,class 之后为类的名称并以冒号结尾:
class Employee:
‘所有员工的基类’
empCount = 0

def init(self, name, salary):
self.name = name
self.salary = salary
Employee.empCount += 1

def displayCount(self):
print “Total Employee %d” % Employee.empCount

def displayEmployee(self):
print “Name : “, self.name, “, Salary: “, self.salary

empCount 变量是一个类变量,它的值将在这个类的所有实例之间共享。你可以在内部类或外部类使用 Employee.empCount 访问。第一种方法init()方法是一种特殊的方法,被称为类的构造函数或初始化方法,当创建了这个类的实例时就会调用该方法,self 代表类的实例,self 在定义类的方法时是必须有的,虽然在调用时不必传入相应的参数。

25、self代表类的实例,而非类 类的方法与普通的函数只有一个特别的区别——它们必须有一个额外的第一个参数名称, 按照惯例它的名称是 self。
class Test:
def prt(self):
print(self)
print(self.class)

t = Test()
t.prt()

26、使用点号 . 来访问对象的属性。使用如下类的名称访问类变量:

emp1.displayEmployee()
emp2.displayEmployee()
print “Total Employee %d” % Employee.empCount

也可以删除 del emp1.age # 删除 ‘age’ 属性

hasattr(emp1, ‘age’) # 如果存在 ‘age’ 属性返回 True。
getattr(emp1, ‘age’) # 返回 ‘age’ 属性的值
setattr(emp1, ‘age’, 8) # 添加属性 ‘age’ 值为 8
delattr(emp1, ‘age’) # 删除属性 ‘age’

27、pythan可以多继承,继承过后父类方法的功能不能满足你的需求,子类重写你父类的方法。你可以使用issubclass()或者isinstance()方法来检测。issubclass() - 布尔函数判断一个类是另一个类的子类或者子孙类,语法:issubclass(sub,sup), isinstance(obj, Class) 布尔函数如果obj是Class类的实例对象或者是一个Class子类的实例对象则返回true。

28、Python同样支持运算符重载,实例如下:

class Vector:
def _init_(self, a, b):
self.a = a
self.b = b

def _str_(self):
return ‘Vector (%d, %d)’ % (self.a, self.b)

def_add_(self,other):
return Vector(self.a + other.a, self.b + other.b)

v1 = Vector(2,10)
v2 = Vector(5,-2)
print v1 + v2
结果:Vector(7,8)

29、类的私有属性__private_attrs:两个下划线开头,声明该属性为私有,不能在类的外部被使用或直接访问。在类内部的方法中使用时 self.__private_attrs,在类的内部,使用 def 关键字可以为类定义一个方法,与一般函数定义不同,类方法必须包含参数 self,且为第一个参数。

30、单下划线、双下划线、头尾双下划线说明:
_foo_: 定义的是特殊方法,一般是系统定义名字 ,类似_init_() 之类的。

_foo: 以单下划线开头的表示的是 protected 类型的变量,即保护类型只能允许其本身与子类进行访问,不能用于 from module import *

__foo: 双下划线的表示的是私有类型(private)的变量, 只能是允许这个类本身进行访问了。