
python
JINKELA_
坚持做你自己
展开
-
python连接数据库(3)插入更新和删除
首先说一下事务与回滚:事务就是执行单元的集合回滚就是回到执行之前的状态事务应该具有4个属性:原子性、一致性、隔离性、持久性。这四个属性通常称为ACID特性。① 原子性(atomicity)。一个事务是一个不可分割的工作单位,事务中包括的诸操作要么都做,要么都不做。② 一致性(consistency)。事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相原创 2017-05-30 11:27:27 · 7779 阅读 · 2 评论 -
python中 __call__
python中 __call__在Python中,函数其实是一个对象:>>> f = abs>>> f.__name__'abs'>>> f(-123)123由于 f 可以被调用,所以,f 被称为可调用对象。所有的函数都是可调用对象。一个类实例也可以变成一个可调用对象,只需要实现一个特殊方法__call__()。我们把 Person 类变成一个可调用对象:原创 2016-11-11 18:20:19 · 455 阅读 · 0 评论 -
python中 __slots__
由于Python是动态语言,任何实例在运行期都可以动态地添加属性。如果要限制添加的属性,例如,Student类只允许添加 name、gender和score 这3个属性,就可以利用Python的一个特殊的__slots__来实现。顾名思义,__slots__是指一个类允许的属性列表:class Student(object): __slots__ = ('name', 'gen原创 2016-11-11 17:45:32 · 533 阅读 · 0 评论 -
python中类型转换
python中类型转换Rational类实现了有理数运算,但是,如果要把结果转为 int 或 float 怎么办?考察整数和浮点数的转换:>>> int(12.34)12>>> float(12)12.0如果要把 Rational 转为 int,应该使用:r = Rational(12, 5)n = int(r)要让int()函数正常工作,只需要实现特殊方法__in原创 2016-11-11 17:15:45 · 476 阅读 · 1 评论 -
python中 @property
python中 @property考察 Student 类:class Student(object): def __init__(self, name, score): self.name = name self.score = score当我们想要修改一个 Student 的 scroe 属性时,可以这么写:s = Student原创 2016-11-11 17:14:44 · 424 阅读 · 0 评论 -
python中数学运算
python中数学运算Python 提供的基本数据类型 int、float 可以做整数和浮点的四则运算以及乘方等运算。但是,四则运算不局限于int和float,还可以是有理数、矩阵等。要表示有理数,可以用一个Rational类来表示:class Rational(object): def __init__(self, p, q): self.p =原创 2016-11-11 16:48:18 · 3566 阅读 · 0 评论 -
python中 __len__
如果一个类表现得像一个list,要获取有多少个元素,就得用 len() 函数。要让 len() 函数工作正常,类必须提供一个特殊方法__len__(),它返回元素的个数。例如,我们写一个 Students 类,把名字传进去:class Students(object): def __init__(self, *args): self.names = args原创 2016-11-11 13:38:02 · 1107 阅读 · 0 评论 -
python中 __cmp__
python中 __cmp__对 int、str 等内置数据类型排序时,Python的 sorted() 按照默认的比较函数 cmp 排序,但是,如果对一组 Student 类的实例排序时,就必须提供我们自己的特殊方法__cmp__():class Student(object): def __init__(self, name, score): sel原创 2016-11-10 14:08:00 · 3641 阅读 · 0 评论 -
python中 __str__和__repr__
如果要把一个类的实例变成 str,就需要实现特殊方法__str__():class Person(object): def __init__(self, name, gender): self.name = name self.gender = gender def __str__(self): return '(Person:原创 2016-11-10 13:32:41 · 430 阅读 · 0 评论 -
下载网页的三种方法
1.最简洁的:给定一个URL,将其传送给urllib2模块的urlopen(url)方法,以url作为参数,发送网页请求。返回的内容传送给response对象。2.增强处理,添加data、http header.步骤如下:1)添加一个header,可以向服务器提交http的头信息;添加一个data,可以向服务器提交需要用户输入的数据2)把三个参数url、data、header原创 2016-12-11 22:33:21 · 7003 阅读 · 2 评论 -
python 正则表达式 re模块
#1.首先要导入包 reimport re2.In [1]: str1='imooc python'In [2]: str1.find('i')Out[2]: 0In [4]: str1.find('z')Out[4]: -1In [6]: str1.startswith('i')Out[6]: True#3.正则表达式re的使用import re#匹配'imooc',re原创 2016-12-04 21:02:38 · 765 阅读 · 0 评论 -
python -正则表达式--单字符匹配
In [37]: clearIn [38]: ma=re.match(r'.','b')#'.'的意思是可以匹配任何单个字符In [39]: ma.group()Out[39]: 'b'In [2]: ma=re.match(r'{.}','{a}')#大括号里面加点可以匹配大括号里面的任意单字符In [3]: ma.group()Out[3]: '{a}'In [4]:原创 2016-12-05 14:00:48 · 3190 阅读 · 0 评论 -
python数据库编程(2) 游标对象cursor
刚打开电脑连接不到数据库,已查要手动开。百度一下还挺简单的。mysql -u root -p 为打开mysql命令。接下来就是数据库建表了,自信满满的以为数据库学的很好。事实表明还是个渣渣。果断抛弃命令行制表。结束之后,暗下狠心。还要饿补一下数据库。今天学的cursor还是收获蛮大的。cursor有fetch方法:(返回都是元组)fetcchone ():取结果集的下一行(说白了就是每原创 2017-05-29 18:25:38 · 3199 阅读 · 1 评论 -
python 操纵数据库(1) 连接数据库
慕课终于开始实战python,激动地端午节放假迫不及待的学了起来。先学着准备着工具,什么mysql呀!sqlyog呀!pythonconnect都重新装了一遍。视频是在eclipse下敲得python代码,果然是月食大法好!进入正题,python是怎么访问数据库的呢?数据库有很多种,怎么才能不混乱呢?原来python有一个接口规范https://www.python.org/dev/peps/pe原创 2017-05-27 17:25:12 · 736 阅读 · 2 评论 -
python PIL 图片正确使用方法
要把图片的地址保存到C:\Python27\Lib\site-packages 文件里面,而且另存为生成的图片也保存到这个目录里面。多看一下错误代码提示!加油!Windows下的导入image包是from PIL import Image原创 2017-05-25 10:18:54 · 1953 阅读 · 0 评论 -
爬虫----BeautifulSoup 模块
一、根据下载好的HTML网页字符串创建一个BeautifulSoup的对象,创建的同时是将整个文档加载成一个DOM树;二、根据这个DOM树就可以按照节点的名称、属性和文字搜索节点:find_all()方法会搜索出所有满足要求的节点,find()方法只会搜索出第一个满足要求的节点;两个方法的参数一模一样;三、得到节点以后,就可以访问它的名称、属性、文字。原创 2016-12-19 13:26:16 · 902 阅读 · 0 评论 -
小虫出世----第一个爬虫程序(扒下慕课网站的图片)
1.urllib2是Python的一个获取URLs(Uniform Resource Locators)的组件。他以urlopen函数的形式提供了一个非常简单的接口,这是具有利用不同协议获取URLs的能力,他同样提供了一个比较复杂的接口来处理一般情况,例如:基础验证,cookies,代理和其他。它们通过handlers和openers的对象提供。urllib2支持获取不同格式的URLs(在URL的原创 2016-12-09 15:11:56 · 3815 阅读 · 0 评论 -
python 正则表达式 字符串的 匹配 替换 分割 查找
In [1]: import reIn [2]: str1='imooc video=1000'In [3]: str1.find('1000')#可以查找出索引值Out[3]: 12In [4]: str1='imoocvideo=1000'In [5]: str1.find('1000')Out[5]: 11In [6]: info=re.search(r'\d+',s原创 2016-12-08 15:10:00 · 10477 阅读 · 0 评论 -
python -正则表达式 杂类
In [10]: clearIn [11]: import reIn [12]: ma=re.match(r'^[\w]{4,7}@163.com$','2991483698@qq.com')#'^'定义以字符串为开头,'$'以字符串为结尾In [13]: maIn [14]: ma.group()-----------------------------------------原创 2016-12-07 18:59:02 · 541 阅读 · 0 评论 -
python-正则表达式 匹配多个字符串的语法规则
#'*'的作用就是匹配前一个字符0次或者是无限次In [5]: ma=re.match(r'[A-Z][a-z]*','A')#匹配0次In [6]: maOut[6]: In [7]: ma.group()Out[7]: 'A'In [8]: ma=re.match(r'[A-Z][a-z]*','Asdkjljfsjdfoidjs')#'*'的作用就是匹配前一个字符无限次,无原创 2016-12-07 14:53:19 · 19339 阅读 · 0 评论 -
python中获取对象信息
拿到一个变量,除了用 isinstance() 判断它是否是某种类型的实例外,还有没有别的方法获取到更多的信息呢?例如,已有定义:class Person(object): def __init__(self, name, gender): self.name = name self.gender = genderclass Student(Pe原创 2016-11-09 19:43:56 · 1493 阅读 · 0 评论 -
python中判断类型
函数isinstance()可以判断一个变量的类型,既可以用在Python内置的数据类型如str、list、dict,也可以用在我们自定义的类,它们本质上都是数据类型。假设有如下的 Person、Student 和 Teacher 的定义及继承关系如下:class Person(object): def __init__(self, name, gender): s原创 2016-11-09 16:11:13 · 608 阅读 · 0 评论 -
python中继承一个类
如果已经定义了Person类,需要定义新的Student和Teacher类时,可以直接从Person类继承:class Person(object): def __init__(self, name, gender): self.name = name self.gender = gender定义Student类时,只需要把额外的属性加上,例如sco原创 2016-11-09 16:04:58 · 8439 阅读 · 1 评论 -
python中闭包
在函数内部定义的函数和外部定义的函数是一样的,只是他们无法被外部访问:def g(): print 'g()...'def f(): print 'f()...' return g将 g 的定义移入函数 f 内部,防止其他代码调用 g:def f(): print 'f()...' def g(): print 'g()...原创 2016-11-05 10:41:47 · 349 阅读 · 0 评论 -
python中返回函数
Python的函数不但可以返回int、str、list、dict等数据类型,还可以返回函数!例如,定义一个函数 f(),我们让它返回一个函数 g,可以这样写:def f(): print 'call f()...' # 定义函数g: def g(): print 'call g()...' # 返回函数g: return g仔细观原创 2016-11-03 17:06:41 · 1066 阅读 · 0 评论 -
python中自定义排序函数
Python内置的 sorted()函数可对list进行排序:>>>sorted([36, 5, 12, 9, 21])[5, 9, 12, 21, 36]但 sorted()也是一个高阶函数,它可以接收一个比较函数来实现自定义排序,比较函数的定义是,传入两个待比较的元素 x, y,如果 x 应该排在 y 的前面,返回 -1,如果 x 应该排在 y 的后面,返回 1。如果 x 和 y原创 2016-11-03 16:35:08 · 2503 阅读 · 0 评论 -
python中filter()函数
filter()函数是 Python 内置的另一个有用的高阶函数,filter()函数接收一个函数 f 和一个list,这个函数 f 的作用是对每个元素进行判断,返回 True或 False,filter()根据判断结果自动过滤掉不符合条件的元素,返回由符合条件元素组成的新list。例如,要从一个list [1, 4, 6, 7, 9, 12, 17]中删除偶数,保留奇数,首先,要编写一个判断原创 2016-11-03 15:58:14 · 779 阅读 · 0 评论 -
python中reduce()函数
reduce()函数也是Python内置的一个高阶函数。reduce()函数接收的参数和 map()类似,一个函数 f,一个list,但行为和 map()不同,reduce()传入的函数 f 必须接收两个参数,reduce()对list的每个元素反复调用函数f,并返回最终结果值。例如,编写一个f函数,接收x和y,返回x和y的和:def f(x, y): return x + y原创 2016-11-03 15:32:47 · 470 阅读 · 0 评论 -
python中map()函数
python中map()函数map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回。例如,对于list [1, 2, 3, 4, 5, 6, 7, 8, 9]如果希望把list的每个元素都作平方,就可以用map()函数:因此,我们只需要传入函数f(x)=x原创 2016-11-03 15:16:51 · 2865 阅读 · 0 评论 -
python把函数作为参数
在2.1小节中,我们讲了高阶函数的概念,并编写了一个简单的高阶函数:def add(x, y, f): return f(x) + f(y)如果传入abs作为参数f的值:add(-5, 9, abs)根据函数的定义,函数执行的代码实际上是:abs(-5) + abs(9)由于参数 x, y 和 f 都可以任意传入,如果 f 传入其他函数,就可以得到不同的返回值。原创 2016-11-03 15:03:22 · 625 阅读 · 0 评论 -
python 网络编程 TCP和UDP
基础知识: TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能,用户数据报协议(UDP)是同一层内[1] 另一个重要的传输协议。在因特网协议族(Internet protocol suite)原创 2016-09-26 11:09:34 · 987 阅读 · 0 评论 -
python中匿名函数
高阶函数可以接收函数做参数,有些时候,我们不需要显式地定义函数,直接传入匿名函数更方便。在Python中,对匿名函数提供了有限支持。还是以map()函数为例,计算 f(x)=x2 时,除了定义一个f(x)的函数外,还可以直接传入匿名函数:>>> map(lambda x: x * x, [1, 2, 3, 4, 5, 6, 7, 8, 9])[1, 4, 9, 16, 25, 36, 4原创 2016-11-05 11:05:57 · 418 阅读 · 0 评论 -
python之导入模块
要使用一个模块,我们必须首先导入该模块。Python使用import语句导入一个模块。例如,导入系统自带的模块 math:import math你可以认为math就是一个指向已导入模块的变量,通过该变量,我们可以访问math模块中所定义的所有公开的函数、变量和类:>>> math.pow(2, 0.5) # pow是函数1.4142135623730951>>> math.pi原创 2016-11-08 13:31:07 · 980 阅读 · 0 评论 -
python中动态导入模块
如果导入的模块不存在,Python解释器会报 ImportError 错误:>>> import somethingTraceback (most recent call last): File "", line 1, in ImportError: No module named something有的时候,两个不同的模块提供了相同的功能,比如 StringIO 和 cStrin原创 2016-11-08 13:44:30 · 500 阅读 · 0 评论 -
python中定义类方法
和属性类似,方法也分实例方法和类方法。在class中定义的全部是实例方法,实例方法第一个参数 self 是实例本身。要在class中定义类方法,需要这么写:class Person(object): count = 0 @classmethod def how_many(cls): return cls.count def __init_原创 2016-11-09 15:47:49 · 3206 阅读 · 1 评论 -
python中定义实例方法
一个实例的私有属性就是以__开头的属性,无法被外部访问,那这些属性定义有什么用?虽然私有属性无法从外部访问,但是,从类的内部是可以访问的。除了可以定义实例的属性外,还可以定义实例的方法。实例的方法就是在类中定义的函数,它的第一个参数永远是 self,指向调用该方法的实例本身,其他参数和一个普通函数是完全一样的:class Person(object): def __init_原创 2016-11-09 13:49:58 · 2885 阅读 · 0 评论 -
python中创建类属性
python中创建类属性类是模板,而实例则是根据类创建的对象。绑定在一个实例上的属性不会影响其他实例,但是,类本身也是一个对象,如果在类上绑定一个属性,则所有实例都可以访问类的属性,并且,所有实例访问的类属性都是同一个!也就是说,实例属性每个实例各自拥有,互相独立,而类属性有且只有一份。定义类属性可以直接在 class 中定义:class Person(object):原创 2016-11-08 16:19:57 · 643 阅读 · 0 评论 -
python中访问限制
python中访问限制我们可以给一个实例绑定很多属性,如果有些属性不希望被外部访问到怎么办?Python对属性权限的控制是通过属性名来实现的,如果一个属性由双下划线开头(__),该属性就无法被外部访问。看例子:class Person(object): def __init__(self, name): self.name = name原创 2016-11-08 15:53:59 · 911 阅读 · 0 评论 -
python中初始化实例属性
虽然我们可以自由地给一个实例绑定各种属性,但是,现实世界中,一种类型的实例应该拥有相同名字的属性。例如,Person类应该在创建的时候就拥有 name、gender 和 birth 属性,怎么办?在定义 Person 类时,可以为Person类添加一个特殊的__init__()方法,当创建实例时,__init__()方法被自动调用,我们就能在此为每个实例都统一加上以下属性:class Pe原创 2016-11-08 15:20:10 · 4533 阅读 · 1 评论 -
python中创建实例属性
虽然可以通过Person类创建出xiaoming、xiaohong等实例,但是这些实例看上除了地址不同外,没有什么其他不同。在现实世界中,区分xiaoming、xiaohong要依靠他们各自的名字、性别、生日等属性。如何让每个实例拥有各自不同的属性?由于Python是动态语言,对每一个实例,都可以直接给他们的属性赋值,例如,给xiaoming这个实例加上name、gender和birth属性:原创 2016-11-08 15:06:23 · 1609 阅读 · 1 评论