首页 > 代码库 > Python简单操作笔记
Python简单操作笔记
Python 类型转换 str(),repr()|format() : 将非字符类型转成子串 int() : 转为整形 float() : 转为浮点型 list(s) : 将字串s转成列表 tuple(s) : 将字串s转成元组 set(s) : 将字串s转成集合 frozenset(s) : 将字串s转成不可变集合 dict(s) : 创建字典 其d必须是(key,value)的元组序列; chr(x) : 将整形转成字符 ord(x) : 将字符转成整形 hex(x) : 将整形转换成16进制字符 bin(x) : 将整形转化成2进制 oct(x) : 将整形转化成8进制 数字类型 Python的数字字面量 : 布尔型,整型,浮点型,复数 True : 1 False : 0 序列类型 字符类型 字符串字面量 : 把文本放入单引号、双引号或三引号中(可以实现跨行定义) 如果需要使用unicode编码,则在字符之前使用u进行标识,etc : u"luowen" 文档字串 : 模块、类或函数的第一条语句如果是字符的话,该字符串就成为文档语句.必须保持严格的缩进 字串操作 str.islower() : 所有字符为小写, str.isupper() : 所有字符为大写 str.upper() : 转换成大写 str.lower() : 转换小写 str.capitalize() : 首字母大写 str.index(s,start) : s字符首次出现位置,start : 从start位置开始找 str.replace(old,new,replaceTimes) : 字符替换 str.split(s) : 已s做分割符分割 s.join(str); : 以s做分割符,将列表组合成字串,str为序列 str.strip(s) : 清楚一s开头或结尾的字符 列表操作 list.append(s); : 将一个元素append到list中 etc demo = [1,2,3] , s = [5,6] result: [1,2,3,[5,6]] list.extend(list1); : 讲一个list1合并list中 result: [1,2,3,5,6] list.pop(s) : 将s从list中pop出来 list.index(s) : 查找list中索引为s的值 list.remove(s); : 删除列表list中值为s的元素 list.reverse(); : 将list进行逆序 ‘在原处进行修改 修改地址‘ list.sort(); : 将list中的元素进行排序 ‘在原处进行修改 修改地址‘ list1 + list2 === list1.extend(list2) : 等同于extend s in t1 : 判断s是否在元组t1中 s not in t1 : 判断s是否不在元组t1中 列表复制方法 l1 = [1,2,3,4] l2 = l1 import copy l2 = copy.deepcopy(l1) l2 = l1[:] 元组: 表达式符号 : () 容器类型: 任意对象的有序集合,通过索引访问其中的元素,不可变对象,长度固定,异构,嵌套 常见操作: demo = () : 定义一个空元组 demo = ‘x‘,‘y‘,‘z‘ : 定义了一个‘x y z‘ 的元组 len(t) : 元组长度 t1 + t2 : 两个元组合并 s in t1 : 判断s是否在元组t1中 s not in t1 : 判断s是否不在元组t1中 字典 : dict 字典在其他编程语言中又称作关联数组。 通过键实现元素存取 : 无序集合 : 可变类型 : 长度可变 : 异构 : 嵌套 etc.{key1:value1,key2:value2,....} 空字典 {},{‘x‘ : ‘2323‘,‘y‘:[1,2,3,4]} dict1.copy() : 复制dict1字典 dict1.get(‘key‘) : 获取字典中键为key的只 dict1.pop(‘x‘) : 字典中弹出键为‘x‘个元素 dict1.items() : 将字典列表中的数据转换成元组 dict1.items() : 获取字典中所有的值 dict1.keys : 获取字典中所有的key dict1.popitem() : 随机弹出键和值 dict1.has_key(‘x‘) : 字典中是否含有键为‘x‘ dict1.update(dict2) : 等同于php中的array_merge() ,dict2中的值会覆盖dict1的值 iterator = dict1.iteritems() : 获取迭代器 iterator.next(); zip(tuple1,tuple2); : 将两个元组转成列表[(1,‘x‘),(2,‘y‘)] dict1 = dict(zip(tuple1,tuple2)) : 生成一个字典 集合SET: set1 = set(); : 构造一个set len(set1) : 返回s中的项目 set1.copy : 复制set1集合 set1.difference(set2) : 求差集 同set1 & set2 set1.intersection(set2) : 求交际 set1.isdisjoint(set2) : set1和set2有相同项返回True 容器、类型、对象 1、 2、所有对象都有引用计数 sys.getrefcount(obj); 3、列表和字典都支持潜复制和深复制,浅复制穿件一个新对象,对象里面的存放的对象没有发生变化,深复制:递归的全部复制对象(包括对象内部存放的对象)原有对象改变不会改变复制后的对象。copy.deepcopy()深复制 4、Python中的所有对象都是“第一类”,这意味着所有对象都可以直接当做数据处理计算 5、所有对象都支持迭代。 6、所有序列都支持以下操作: s[i] s[i:j] s[i:j:stride] len(s) min(s) max(s) sum(s) all(s) any(s) s1 + s2 #链接 s1 * N #重复 obj in s1 #组成员 obj not in s1 7、可变序列操作 s1[index] = value #元素赋值 s1[i:j] = t #切片赋值 del s1[index] del s1[i:j] del s1[i:j:stride]Python表达式和语句 表达式 : 某事 语句 : 做某事 逻辑运算: x or y, x and y not x 成员关系: x in y , x not in y 对象实例测试: x is y , x not is y 比较运算: x > y ....... 位运算: x | y , x & y , x ^ y , x << y , x >> y 一元运算: -x , +x , ~x 幂运算: x ** y 调用运算: x(........) 属性取值: x.attribute 三元选择表达式: x if y else z 同(x == y ? x : z) 匿名函数: lambda argus : expression 生成器发送协议: yield x 优先级: (......),[.......] , {............} s[i] , s[i][j] s.attribute s(.....) +x,-x,~x x ** y * , / ,// , % +,- <<,>> & ^ | <,<=,>,>=,==,!= is,not is in,not in not or lambda 语句: 复制语句 调用语句 print: if/elif/else while/else pass:占位符 break continue def return yield global #命名空间 raise #触发异常 import from #模块属性访问 class #类 try/except/finally #扑捉异常 del #删除引用 assert 调试检查 with/as 循环管理器 赋值语句: 隐式复制: import,from,def,class,for,函数参数(arguments) 生成序列: list1 = [i for i in range(1,11) if i % 2 == 0] #[2,4,6,8] l1 = [‘x‘,‘y‘,‘z‘] l2 = [1,2,3] list2 = [(i,j) for i in l1 for j in l2] #多项式相成 将[]换成()就生成了一个生成器了,可以对应的生成器对象的next()方法取出数据OS模块: 目录: chdir() : 改变工作目录 chroot() : 设定当前进程根目录 listdir() : 列出所有文件名 mkdir() : 创建目录 makedirs() : 递归创建目录 getcwd() : 获取工作目录 rmdir() : 删除目录 removedirs() : 删除多级目录 文件: mkfifo() : 创建命名管道 mknod() : 创建设备文件 remove() : 删除文件 unlink() : 删除文件 rename() : 重命名 stat() : 返回文件状态信息 symlink() : 创建链接文件 utime() : 更新文件时间戳 tmpfile() : 创建并打开一个临时文件(打开模式是(w+b)) walk() : 文件目录树 权限: access(‘filename‘,‘userID‘) : 检验文件权限是否存在 chmod(‘filename‘,‘modeNum‘) : 改变文件权限 chown(‘filename‘,‘userID‘) : 改变宿主 umask() : 设置默认访问权限(遮罩) 文件描述符: open() : 底层操作系统的open() read() : 底层操作系统的read() write() : 底层操作系统的write 设备文件: makedev() : 创建设备 major(‘num‘) : 获取设备 minor() :OS子模块os.path: basename() : 文件基名 #etc. /etc/sysconfig/network-scripts => /etc/sysconfig dirname() : 路径基名 # etc ... => network-scripts join() : 将多个离散的路径名合并成一个 split() : 分割文件名 返回dirname,basename 结果元组 splitext() : 返回(filename,extension) 元组 #返回文件的名字,和后缀 信息: getatime() : 获取文件atime getctime() : 获取文件ctime getmtime() : 获取文件mtime getsize() : 获取文件大小 查询: exists() : 判断文件是否存在 isabs() : 判断制定路径是否是绝对路径 isdir() : 判断是否是目录 isfile() : 判断是否是文件 islink() : 判断是否是符号链接 ismount() : 判断是否是挂载点 samefile() : 两个路径是否指向了同一个文件对象序列化(持久存储): pickle() : 序列化 marshal() : 序列化 DBM接口:Python 函数: demo = 1 def f1(): print demo # 1 global demo demo = 2 print demo # 2 print demo #没有加global修饰的时候值为1 加了global时候则变成2 函数参数可变参数: def fn1(*x): print x # 传入多个数据时候,x为元组 def fn2(**x): print x # 传入多个数据时候,x为字典 调用分解参数: demo = [1,3,4,5,6] def fn3(x,y,z): print x,y,z fn3(*demo) #将列表中的元素打散传入函数 Python 匿名函数 lambda: f = lambda x,y,z: x + y + z f(1,2,4) #返回 7 list1 = [ (lambda x: x*3 ),(lambda y: y*3)] for i in list1: print i(3) filter过滤器函数: filter(fn,list1) # fn为返回布尔类型函数,list1为列表 多个队列函数 map(fn,list1,list2): list1 = [1,2,3,4] list2 = [‘S‘,‘M‘,‘T‘,‘W‘] map(None,list1,list2) # [(1,‘S‘),(2,‘M‘) ....] 同zip(); 多个序列整合一个序列 reduce: list1 = [1,2,3,4,5,6] reduce(lambda x,y: x+y,list1) #求出两个序列只和,对序列折叠 Python闭合特性: def fn1(x): def fn2(y): return x+y return fn2 fDemo = fn1(2) fDemo(2) # 4 fDemo(3) # 6 x= 2 被保存好了 Python的闭包,闭包叫 lexical closure: yield 返回一个生成器对象: def fn1(x): y = 0 while y <= x: yield y y += 1 g1 = fn1(10) g1.next() # 返回1 装饰器: 1.本身是一个函数,其目的是装饰其他函数,是其他函数功能增强 2.增强被装饰函数的功能 3.装饰器需要接受一个函数,然后对其函数进行包装 etc. def deco(func): def wrapper(): print "Please say somethings:" func() print "No zuo no die" return wrapper() @deco def show(): return "I am from Mars." Python 递归: def dix(x):#实现阶乘 if x <= 1 : return 1 else : reutrn x * dix(x-1)Python 面向对象: 简单类实例: class MyClass(): data = ‘value‘ def myMethod(self): return self.data __varname__(): #Python会在某种特定情况下自动调用 Python构造器: #__init__(): class MyClass(): data = ‘hello world‘ def __init__(self,x): self.str = x demo = Myclass(‘luowen‘) demo.str # => ‘luowen‘ Python析构器: # __del__ 当调用del时候会调用class中的del方法 class MyClass(): data = ‘value‘ def __init__(self,x): self.voice = x def __del__(self): pass def saySomeThing(self): print self.voice Python类的一些属性: __doc__ # 类的文档信息 __name__ # 类的名字 __bases__ # __dict__ # 类的属性 __module__ # 类所在的模块 __class__ # 类的名字 Python类中可用变量: 1.实例变量 #self.data 2.局部变量 : 方法内部创建变量,属于每个实例特有的数据 # demo = MyClass demo.data 3.类变量(也称静态变量,可以直接使用) # 类名.变量名 __name__ 4.全局变量:直接使用 Python类中可用方法: 1.issubclass(sub,sup): 判断一个类手否由另一个类派生 2.isinstance(obj1,obj2) : 判断一个对象是否是一个给定的类型 3.hasattr(obj,‘attr‘) : 判断一个对象是否具有某个属性 5.super(type[.obj]) 在之类中找出其父类,以便于调用其属性 一般情况下仅能采用非绑定凡是调用祖先类方法 而super()可用于传入实例或类型对象. Python 中的模块: 顶层文件 模块文件1 模块文件2 模块文件3 Python 包 : /dir | __init__.py | mod1.py | mod2.py | mod3.py import dir.mod1 as demo #导入 demo.xx #使用 Python打包: distiuls from name : 包的名称(必须) Version : 版本号(必须) author : 作者名称 author_email : 作者电子 maintainer : 维护者的名称 maintainer_email : 维护者电子邮件 url : 包的主页 description : 包的简短描述 long_description : 包的详细描述 download_url : 包的下载未知 Classfiers : 字符串分类列表 Python 打包命令 : setup.py sdist --formats = asflow zip : zip file gztar : tar.gz file bztar : tar.bz2 file ztar : tar.Z file tar : tar file setup bdist # 打包二进制文件 gztar : tar.gz file ztar : tar.Z file tar : tar file zip : zip file RPM : RPM Package pkgtool : Solaris pkgtool wininst : Windows上自解压的zip格式包 msi : Microsoft Installer #Windows可安装文件 bdist_dump: bdist_rpm : bdist_wininst : bdist_msi : setup.py中setup()中可用参数: platforms : 平台列表 license : 许可证 py_modules : 各模块名称组成的列表,此些模块可能位于包的根目录下,也可能位于某子包目录中 packages : 各子包名称的列表etc #打包是咧#!/usr/bin/env python # file name setup.pyfrom distutils.core import setupsetup( name = ‘pkg1‘ version = ‘0.1‘ author = ‘Luowen‘ author_email = ‘admin@admin.com‘ maintainer = ‘luowen@luowen.com‘ py_modules = [‘mod1‘,‘mod2‘,‘mod3‘] url = ‘http://www.luowen.com‘ download_url = ‘http://www.luowen.com/pythonmoudles/download‘ description = ‘Luowen Test Moudles‘)#打包目录结构 demo |__init__.py |mod1.py |mod2.py |mod3.py |setup.py |README python setup.py sdist # 打包 python setup.py install # 安装# pip easy_install 简单快速安装工具 Python模块、包、打包 安装: python setup.py install # build and install 第三方模块的默认安装路径为 : site-packages /usr/local/python27/lib/python2.7/site-pakcages Python setup.py install --user="USERNAME" # 把路径安装在其他的目录 --prefix="PATH" # 安装目录 --exec-prefix="PATH" # 对你制定公共目录有写的权限 深度定制: --install-purelib=/path/to/path_lib --install-platlib=/path/to/plat_lib --install-lib=/path/to/lib --install-scripts=/path/to/bin # 可执行文件的安装路径 --install-headers= Python异常: 1.语法错误 2.逻辑错误 try: #coding except IOError,e: print e except (Exception1,Exception2)[e1,e2]: suite__ else: else_suite try: try_suite #异常代码抛出问题 finally: finally_suite #用于资源释放StandaardError: #标准异常超类 ArithmeticError:#抽象子类 AssertionError: AttributeError: FloatingPointError: IOError: ImportError: IndentationError: IndexError: #索引超出范围异常 LookupError:#抽象子类 KeyError: KeyboardInterrupt: MemoryError: NameError: NotImplementedError: OSError: OverflowError: EnvironmentError:#抽象子类 SyntaxError SystemError TypeError UnboundLocalError UnicodeError ValueError WindowsError ZeroDivisionError断言: assert condtion , ‘error reson‘
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。