Python2知识点

  • # -*- coding: UTF-8 -*-或者 #coding=utf-8 python2支持中文
  • 以下划线开头的标识符是有特殊意义的。以单下划线开头 _foo 的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用 from xxx import * 而导入;
以双下划线开头的  __foo  代表类的私有成员;以双下划线开头和结尾的  __foo__  代表 Python 里特殊方法专用的标识,如 __init__()  代表类的构造函数。
  • Python 可以同一行显示多条语句,方法是用分号 ; 分开
  • 多行语句, Python语句中一般以新行作为为语句的结束符。但是我们可以使用斜杠 \将一行的语句分为多行显示
  • Print 输出. print 默认输出是换行的,如果要实现不换行需要在变量末尾加上逗号 ,
  • 通过使用del语句删除单个或多个对象的引用。例如:del var del var_a, var_b
  • python的字串列表(字符串)有2种取值顺序: 可以使用变量 [头下标:尾下标],就可以截取相应的字符串
从左到右索引默认0开始的,最大范围是字符串长度少1
从右到左索引默认-1开始的,最大范围是字符串开头
  • List(列表): 列表用 [ ] 标识,加号 + 是列表连接运算符,星号 * 是重复操作。
  • 元组(tuple)用"()"标识。内部元素用逗号隔开。但是元组不能二次赋值,相当于只读列表。如果元组只有1个元素,就必须加一个逗号,防止被当作括号运算.
  • 字典用"{ }"标识。字典由索引(key)和它对应的值value组成。字典当中的元素是通过键来存取的,而不是通过偏移存取。tinydict = {'name': 'john','code':6734, 'dept': 'sales'}, dict = {} dict['one'] = "This is one" dict[2] = "This is two"
  • in 如果在指定的序列中找到值返回 True,否则返回 False。 x 在 y 序列中 , 如果 x 在 y 序列中返回 True。
not in 如果在指定的序列中没有找到值返回 True,否则返回 False。 x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。
  • is 与 == 区别:is 用于判断两个变量引用对象是否为同一个, == 用于判断引用变量的值是否相等。
  • 循环使用 else 语句
在 python 中,for … else 表示这样的意思,for 中的语句和普通的没有区别,else 中的语句会在循环正常执行完(即 for 不是通过 break 跳出而中断的)的情况下执行,while … else 也是一样。
  • Python pass是空语句,是为了保持程序结构的完整性。pass 不做任何事情,一般用做占位语句。
  • Python Number类型转换
int(x [,base ])-- 将x转换为一个整数 long(x [,base ])--将x转换为一个长整数 float(x )--将x转换到一个浮点数
complex(real [,imag ])--创建一个复数 str(x )--将对象 x 转换为字符串 repr(x )--将对象 x 转换为表达式字符串
eval(str )--用来计算在字符串中的有效Python表达式,并返回一个对象 tuple(s )-- 将序列 s 转换为一个元组
list(s )--将序列 s 转换为一个列表 chr(x )--将一个整数转换为一个字符 unichr(x )--将一个整数转换为Unicode字符
ord(x )--将一个字符转换为它的整数值 hex(x )--将一个整数转换为一个十六进制字符串 oct(x )-- 将一个整数转换为一个八进制字符串
  • range()函数-- range(1,5) # 代表从1到5(不包含5) range(1,5,2)# 代表从1到5,间隔2(不包含5) range(5) # 代表从0到5(不包含5)
默认情况下,range() 的起始值是 0。
  • Python 字符串格式化: print "My name is %s and weight is %d kg!" % ('Zara', 21)
  • python中三引号(''' """)可以将复杂的字符串进行复制: python三引号允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符。三引号的语法是一对连续的单引号或者双引号(通常都是成对的用)。一个典型的用例是,当你需要一块HTML或者SQL时,这时用字符串组合,特殊字符串转义将会非常的繁琐。当然这个用法也用在注释当中。
  • Unicode 字符串: u'Hello World !'
  • 列表截取: L[2]--读取列表中第三个元素 L[-2]--读取列表中倒数第二个元素 L[1:]--从第二个元素开始截取列表
  • lambda函数的语法只包含一个语句: lambda [arg1 [,arg2,.....argn]]:expression
sum = lambda arg1, arg2: arg1 + arg2; print "相加后的值为 : ", sum( 10, 20 )
  • 全局变量想作用于函数内,需加 global
  • import module1[, module2[,... moduleN], 使用时 模块名.函数名 这样引用。
也可以 from modname import name1[, name2[, ... nameN]], 这样可以直接使用使用该name的函数。
from modname import * 是导入所有,但不应该过多使用
  • reload() 函数--重新执行模块里顶层部分的代码,可以用 reload() 函数。该函数会重新导入之前导入过的模块。语法如下:reload(module_name)
  • Python中的包:包是一个分层次的文件目录结构,它定义了一个由模块及子包,和子包下的子包等组成的 Python 的应用环境。
简单来说,包就是文件夹,但该文件夹下必须存在 __init__.py 文件, 该文件的内容可以为空。__int__.py用于标识当前文件夹是一个包。
  • Python异常处理:
try :
<语句> #运行别的代码
except <名字>: <语句> #如果在try部份引发了'name'异常
except <名字>,<数据>: <语句> #如果引发了'name'异常,获得附加的数据
else : <语句> #如果没有异常发生

  • 类的继承
面向对象的编程带来的主要好处之一是代码的重用,实现这种重用的方法之一是通过继承机制。继承完全可以理解成类之间的类型和子类型关系。
需要注意的地方: 继承语法  class 派生类名( 基类名 )://... 基类名写在括号里,基本类是在类定义的时候,在元组之中指明的。
在python中继承中的一些特点:
1:在继承中基类的构造(__init__()方法)不会被自动调用,它需要在其派生类的构造中亲自专门调用。
2:在调用基类的方法时,需要加上基类的类名前缀,且需要带上self参数变量。区别在于类中调用普通函数时并不需要带上self参数
3:Python总是首先查找对应类型的方法,如果它不能在派生类中找到对应的方法,它才开始到基类中逐个查找。(先在本类中查找调用的方法,找不到才去基类中找)。
如果在继承元组中列了一个以上的类,那么它就被称作"多重继承"。 你可以使用issubclass()或者isinstance()方法来检测。
  • 类属性与方法
类的私有属性
__private_attrs :两个下划线开头,声明该属性为私有,不能在类的外部被使用或直接访问。在类内部的方法中使用时 self.__private_attrs
类的方法
在类的内部,使用  def  关键字可以为类定义一个方法,与一般函数定义不同,类方法必须包含参数 self,且为第一个参数
类的私有方法
__private_method :两个下划线开头,声明该方法为私有方法,不能在类地外部调用。在类的内部调用 self.__private_methods。 Python不允许实例化的类访问私有数据,但你可以使用  object._className__attrName  访问属性
  • zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。
a = [1,2,3] c = [4,5,6,7,8] zip(a,c) --> [(1, 4), (2, 5), (3, 6)] # 元素个数与最短的列表一致

















猜你喜欢

转载自blog.csdn.net/chinagreenwall/article/details/80110620