python学习笔记1
来源:互联网 发布:蔡司三坐标软件 编辑:程序博客网 时间:2024/06/10 20:17
转自: python学习笔记 皮大庆
常见函数:内置函数
range(start, end, step):产生一个逐步增加数字的list。
range(6) -> [0, 1, 2, 3, 4, 5]range(1,10,2) -> [1, 3, 5, 7, 9]range(2,5) -> [2, 3, 4]filter(函数, 序列): 返回符合筛选规则(函数(序列元素)=true)的序列元素。
>>> filter(lambda m: m%2!=0 and m%3!=0,range(2,10)) [5, 7]map(函数, 序列[, 序列]): 对指定序列的每一项调用指定函数,并返回由返回值组成的列表。
>>> map(lambdam: m*m*m,range(1,6))[1,8, 27,64, 125] >>> map(None,range(8),map(lambdam: m*m,range(8)))[(0,0), (1,1), (2,4), (3,9), (4,16), (5,25), (6,36), (7,49)] >>> map(lambdam,n: m+n,range(8),map(lambdam: m*m,range(8)))[0,2, 6,12, 20,30, 42,56]reduce(函数, 序列): 先用序列前两项调用函数得到一个结果,再用此结果和序列下一项再调用函数;依次类推到序列尾部。
>>> reduce((lambda m,n:m+n),range(1,11)) 55type():返回值和变量的类型,如
>>> type("world") <type 'str'>id():返回值和变量的唯一标识符, 返回值是一整数。每个值或变量都有一个唯一id,id值与变量或值在内存中的位置相关。变量的id也就是它所指向值的id。
>>> id("world") 33394368
字符串、列表、序列:由字符组成的字符串,由任意类型的元素组成的列表,
区别:列表list中的元素能够被修改,序列tuple中的元素不能被修改,而字符串string中的字符则不能被修改。
相同:都用整数作为索引(而字典的索引可以为字符串)
列表的别名和克隆之区别:其id是否相同
>>> fruit = ['apple','orange', 'pear', 'banana']>>> alian = fruit>>> id(alian),id(fruit)(33415536,33415536)>>> clone = fruit[:]>>> id(clone),id(fruit)(33415216,33415536)列表的元素还可以是变量:但是修改变量的值,并不影响列表中元素的值; 说明它只是把变量的值赋给了列表的元素,而不是变量本身。
>>> a =1>>> b =2>>> nums = [a, b]>>> printnums[1,2]>>> a =b = 0>>> printnums[1,2]>>> a, b(0,0)字符串片段:字符串也可以通过[start:end:step](像list列表一样,不过不能被赋值)来查找或显示指定片段。
>>> 'hello world!!'[1:]'ello world!!'>>> 'hello world!!'[1:5]'ello'>>> 'hello world!!'[1:5:2]'el'>>> 'hello world!!'[1::2]'el ol!'
string模块之split和join函数:分离字符串为列表,结合列表为字符串;其默认分隔符为空格
>>> importstring>>> lists = ['The','rain','is','Spain...']>>> string.join(lists,'_')'The_rain_is_Spain...'>>> string.split(string.join(lists,'_'),'_')['The','rain', 'is', 'Spain...']序列赋值简化了某些运算(省却了中间变量): 说明其赋值时先确定值后再进行赋值,期间不会再修改右侧的值。
>>> x ="str x"; y ="str y">>> x, y = y, x>>> printx, ystr y str x字典:
字典的别名和拷贝:
>>> opposites = {'up':'down', 'right': 'wrong', \'true':'false'}>>> alias = opposites>>> id(alias),id(opposites)(33395888,33395888)>>> copy = opposites.copy()>>> id(copy),id(opposites)(33397472,33395888)
文件的打开关闭和读写:
打开:f = open("c:\\test.dat", "w")、f = open("test.dat", "r")
写入:f.write("Now is the time"),write的参数只能是字符串,如要写入其他类型变量需要用str变成字符串;或用格式化操作符%d、%f、%s。
import pickle; f = open("test.dat", "w"); pickle.dump(100, f): 也可用dump方法分别向文件中写入了整数、浮点数、列表和数组。
读取:text = f.read()、f.read(50),read可以接受数字参数,表示读出一定数量的字符。如果读到文件的末尾,就返回空字符。
print f.readline(),readline方法每次从文本文件中读取一行的内容,包括换行符;末尾时readline 方法返回空字符。
print f.readline(),readlines方法以列表的方法返回文件内其余的内容;末尾时readlines方法返回空列表。
关闭:f.close()
raise自定义异常:举例
class BadNumberError(Exception): pass def inputAge(): age= input("Input your age:") if(age>100 or age<18): raiseBadNumberError, 'out of range' returnage if __name__ =="__main__": print"your name is: %d" % inputAge()对象的拷贝和深拷贝:
浅拷贝:r2 = copy.copy(r1); 一些简单的对象,如点,没有包含任何嵌入的对象,copy方法已经足够了。这种复制叫做浅拷贝。
深拷贝:r2 = copy.deepcopy(r1);对于象长方形类的对象,它的属性中包含点对象,再用copy方法进行复制,虽然生成了新的长方形对象,但这两个对象的点对象是同一个对象;
这样就用到copy模块包含的一个名为deepcopy 的方法,它可以拷贝任何嵌入的对象。这种拷贝我们称之为深拷贝
操作符重定义:
加减法:只需要对__add__和__sub__进行重新定义可以。
乘法:与乘法重定义相关的方法有两个,一个是mul ,另一个是rmul;
如果乘法操作符“*”的左右操作数都是用户定义的数据类型,那么调用mul;
若左边的操作数是原始数据类型,而右边是用户定义数据类型,则调用rmul 。
类的私有与公有:类的方法和属性是公有,还是私有,可以从它的名字判断。如果名字是以两个下划线开始,但并不是以两个下划线结束,则是私有的。其余的都是公有的。
如 def __distance(self): #私有方法;self.__p1 = p1 #私有属性
函数参数: 一般参数,带默认值的参数,dictionary参数(形式为**args),tuple参数(形式为*args)。后两者由于dict和tuple故其参数个数为未知和随意长。
lanbda匿名函数:lanbda x, y, z, ...: expression (其中expression为一句话语句,且为返回结果)
多重继承:如下所示,当它调用其一个函数或内部变量时,查找规则为:depth first,left to right;
即先查找base1,然后查找base1的所有基类;查不到时再查找base2及其所有基类;以此类推到base3
class DerivedClassName (base1,base2,base3):
<statement-1>
...
<statement-N>
ZOPE: python的killer应用程序,web应用。
wxPython: wxPython is a GUI toolkit for the Python programming language. It allows Python programmers to create programs with a robust, highly functional graphical user interface, simply and easily. It is implemented as a Python extension module (native code) that wraps the popular wxWidgets cross platform GUI library, which is written in C++.- python学习笔记1
- python学习笔记(1)
- python学习笔记(1)
- Python学习笔记1
- Python学习笔记1
- Python 学习笔记(1)
- Python学习笔记1
- python学习笔记【1】
- Python学习笔记【1】
- python学习笔记--1
- python学习笔记1
- Python学习笔记[1]
- python学习笔记--1
- python学习笔记1
- Python学习笔记 - 1
- 学习Python笔记1
- Python学习笔记(1)
- Python学习笔记.1
- 图像处理与计算机视觉 基础、经典以及最近发展
- PHP UNICODE 转 UTF8
- C#操作符重载
- php表单提交时的身份证号码验证
- 【捡肥皂】Microsoft SQL Server 2000 MSSQL2000下载中文企业版个人版免费下载
- python学习笔记1
- 使用受限的随机游动进行交互式网格切割
- UILabel的各种属性与方法的使用(转)
- 微博数据的抓取---正则表达式的构想
- XML-世界上最难学的语言,我的XML创新之路(1)
- 图像的分割和灰度处理(VC++实现)
- 黑马程序员——高新技术(银行业务调度系统)
- 关于Android设备屏幕大小及密度的系统参数类
- 到底要下载哪个?ubuntu-releases 镜像详解