python集
网罗开发
全网 10万+ 粉丝, 欢迎您的关注与支持。交流合作私信+
展开
-
python 常用内建模块之collections
python学习笔记,特做记录,分享给大家,希望对大家有所帮助。collections是Python内建的一个集合模块,提供了许多有用的集合类。namedtuple我们知道tuple可以表示不变集合,例如,一个点的二维坐标就可以表示成:p = (1, 2)但是,看到(1, 2),很难看出这个tuple是用来表示一个坐标的。定义一个class又小题大做了,这时,namedtuple就派...原创 2019-11-26 17:14:02 · 191 阅读 · 0 评论 -
python 常用内建模块之datetime
python学习笔记,特做记录,分享给大家,希望对大家有所帮助。datetime是Python处理日期和时间的标准库。获取当前日期和时间我们先看如何获取当前日期和时间:from datetime import datetime# 获取当前datetimenow = datetime.now()print nowprint type(now)运行结果:2019-07-15 1...原创 2019-11-15 15:05:44 · 133 阅读 · 0 评论 -
python 进程和线程之正则表达式
python学习笔记,特做记录,分享给大家,希望对大家有所帮助。正则表达式字符串是编程时涉及到的最多的一种数据结构,对字符串进行操作的需求几乎无处不在。比如判断一个字符串是否是合法的Email地址,虽然可以编程提取@前后的子串,再分别判断是否是单词和域名,但这样做不但麻烦,而且代码难以复用。正则表达式是一种用来匹配字符串的强有力的武器。它的设计思想是用一种描述性的语言来给字符串定义一个规则,...原创 2019-11-06 09:37:12 · 176 阅读 · 0 评论 -
python 面向对象编程之获取对象信息
python学习笔记,特做记录,分享给大家,希望对大家有所帮助。获取对象信息当我们拿到一个对象的引用时,如何知道这个对象是什么类型、有哪些方法呢?使用type()首先,我们来判断对象类型,使用type()函数:基本类型都可以用type()判断:print type(1234)print type('str')print type(None)运行结果:<type 'int...原创 2019-07-17 16:27:30 · 258 阅读 · 0 评论 -
python IO编程之StringIO和BytesIO
python学习笔记,特做记录,分享给大家,希望对大家有所帮助。StringIO很多时候,数据读写不一定是文件,也可以在内存中读写。StringIO顾名思义就是在内存中读写str。要把str写入StringIO,我们需要先创建一个StringIO,然后,像文件一样写入即可:from io import StringIOf = StringIO()print f.write('hell...原创 2019-07-19 16:30:44 · 228 阅读 · 0 评论 -
python IO编程之文件读写
python学习笔记,特做记录,分享给大家,希望对大家有所帮助。文件读写读写文件是最常见的IO操作。Python内置了读写文件的函数,用法和C是兼容的。读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘,所以,读写文件就是请求操作系统打开一个文件对象(通常称为文件描述符),然后,通过操作系统提供的接口从这个文件对象中读取数据(...原创 2019-07-19 16:29:58 · 248 阅读 · 0 评论 -
python 面向对象高级编程之使用元类
python学习笔记,特做记录,分享给大家,希望对大家有所帮助。type()动态语言和静态语言最大的不同,就是函数和类的定义,不是编译时定义的,而是运行时动态创建的。比方说我们要定义一个Hello的class,就写一个hello.py模块:class Hello(object): def hello(self, name='world'): print('Hello...原创 2019-07-19 16:29:09 · 206 阅读 · 0 评论 -
python 面向对象高级编程之使用枚举类
python学习笔记,特做记录,分享给大家,希望对大家有所帮助。使用枚举类当我们需要定义常量时,一个办法是用大写变量通过整数来定义,例如月份:JAN = 1FEB = 2MAR = 3...NOV = 11DEC = 12好处是简单,缺点是类型是int,并且仍然是变量。更好的方法是为这样的枚举类型定义一个class类型,然后,每个常量都是class的一个唯一实例。Python...原创 2019-07-19 16:28:20 · 224 阅读 · 0 评论 -
python 模块的使用
python学习笔记,特做记录,分享给大家,希望对大家有所帮助。模块使用Python本身就内置了很多非常有用的模块,只要安装完毕,这些模块就可以立刻使用。我们以内建的sys模块为例,编写一个fbyHello的模块:#!/usr/bin/env python2# -*- coding: utf-8 -*-' a test module '__author__ = 'Zhan Fei...原创 2019-07-16 16:40:45 · 226 阅读 · 0 评论 -
python 函数式编程之偏函数
python学习笔记,特做记录,分享给大家,希望对大家有所帮助。偏函数Python的functools模块提供了很多有用的功能,其中一个就是偏函数(Partial function)。要注意,这里的偏函数和数学意义上的偏函数不一样。在介绍函数参数的时候,我们讲到,通过设定参数的默认值,可以降低函数调用的难度。而偏函数也可以做到这一点。举例如下:int()函数可以把字符串转换为整数,当仅传入...原创 2019-07-16 16:40:12 · 194 阅读 · 0 评论 -
python 函数式编程之装饰器
python学习笔记,特做记录,分享给大家,希望对大家有所帮助。装饰器由于函数也是一个对象,而且函数对象可以被赋值给变量,所以,通过变量也能调用该函数。def now(): print ('2019-6-24')f = nowf()运行结果:2019-6-24Process finished with exit code 0函数对象有一个__name__属性,可以拿...原创 2019-07-16 16:39:28 · 203 阅读 · 0 评论 -
python 函数式编程之匿名函数
python学习笔记,特做记录,分享给大家,希望对大家有所帮助。匿名函数当我们在传入函数时,有些时候,不需要显式地定义函数,直接传入匿名函数更方便。在Python中,对匿名函数提供了有限支持。还是以map()函数为例,计算f(x)=x2时,除了定义一个f(x)的函数外,还可以直接传入匿名函数:print list(map(lambda x: x * x, [1, 2, 3, 4, 5, 6...原创 2019-07-11 17:59:57 · 368 阅读 · 1 评论 -
python 面向对象编程之类和实例
python学习笔记,特做记录,分享给大家,希望对大家有所帮助。类和实例面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板,比如Student类,而实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法,但各自的数据可能不同。仍以Student类为例,在Python中,定义类是通过class关键字:class Student(objec...原创 2019-07-17 16:22:59 · 236 阅读 · 0 评论 -
python 面向对象编程之访问限制
python学习笔记,特做记录,分享给大家,希望对大家有所帮助。访问限制在Class内部,可以有属性和方法,而外部代码可以通过直接调用实例变量的方法来操作数据,这样,就隐藏了内部的复杂逻辑。但是,从前面Student类的定义来看,外部代码还是可以自由地修改一个实例的name、score属性:bart = Student('Bart Simpson', 59)print bart.scor...原创 2019-07-17 16:25:15 · 193 阅读 · 0 评论 -
python 进程和线程之分布式进程
python学习笔记,特做记录,分享给大家,希望对大家有所帮助。分布式进程在Thread和Process中,应当优选Process,因为Process更稳定,而且,Process可以分布到多台机器上,而Thread最多只能分布到同一台机器的多个CPU上。Python的multiprocessing模块不但支持多进程,其中managers子模块还支持把多进程分布到多台机器上。一个服务进程可以作...原创 2019-10-08 14:59:06 · 197 阅读 · 0 评论 -
python 进程和线程之进程 vs. 线程
python学习笔记,特做记录,分享给大家,希望对大家有所帮助。进程 vs. 线程我们介绍了多进程和多线程,这是实现多任务最常用的两种方式。现在,我们来讨论一下这两种方式的优缺点。首先,要实现多任务,通常我们会设计Master-Worker模式,Master负责分配任务,Worker负责执行任务,因此,多任务环境下,通常是一个Master,多个Worker。如果用多进程实现Master-W...原创 2019-09-30 11:08:55 · 153 阅读 · 0 评论 -
python 进程和线程之ThreadLocal
python学习笔记,特做记录,分享给大家,希望对大家有所帮助。ThreadLocal在多线程环境下,每个线程都有自己的数据。一个线程使用自己的局部变量比使用全局变量好,因为局部变量只有线程自己能看见,不会影响其他线程,而全局变量的修改必须加锁。但是局部变量也有问题,就是在函数调用的时候,传递起来很麻烦:def process_student(name): std = Studen...原创 2019-08-21 17:41:01 · 211 阅读 · 0 评论 -
python 进程和线程之多进程
python学习笔记,特做记录,分享给大家,希望对大家有所帮助。多进程要让Python程序实现多进程(multiprocessing),我们先了解操作系统的相关知识。Unix/Linux操作系统提供了一个fork()系统调用,它非常特殊。普通的函数调用,调用一次,返回一次,但是fork()调用一次,返回两次,因为操作系统自动把当前进程(称为父进程)复制了一份(称为子进程),然后,分别在父进程...原创 2019-08-15 11:35:45 · 140 阅读 · 0 评论 -
python IO编程之序列化
python学习笔记,特做记录,分享给大家,希望对大家有所帮助。序列化在程序运行的过程中,所有的变量都是在内存中,比如,定义一个dict:d = dict(name='Bob', age=20, score=88)可以随时修改变量,比如把name改成’Bill’,但是一旦程序结束,变量所占用的内存就被操作系统全部回收。如果没有把修改后的’Bill’存储到磁盘上,下次重新运行程序,变量又被...原创 2019-08-15 11:34:39 · 154 阅读 · 0 评论 -
python 进程和线程之多线程
python学习笔记,特做记录,分享给大家,希望对大家有所帮助。多线程多任务可以由多进程完成,也可以由一个进程内的多线程完成。我们前面提到了进程是由若干线程组成的,一个进程至少有一个线程。由于线程是操作系统直接支持的执行单元,因此,高级语言通常都内置多线程的支持,Python也不例外,并且,Python的线程是真正的Posix Thread,而不是模拟出来的线程。Python的标准库提供...原创 2019-08-20 11:19:42 · 243 阅读 · 0 评论 -
python IO编程之操作文件和目录
python学习笔记,特做记录,分享给大家,希望对大家有所帮助。操作文件和目录如果我们要操作文件、目录,可以在命令行下面输入操作系统提供的各种命令来完成。比如dir、cp等命令。如果要在Python程序中执行这些目录和文件的操作怎么办?其实操作系统提供的命令只是简单地调用了操作系统提供的接口函数,Python内置的os模块也可以直接调用操作系统提供的接口函数。打开Python交互式命令行,...原创 2019-08-14 16:51:46 · 193 阅读 · 0 评论 -
python 面向对象编程之继承和多态
python学习笔记,特做记录,分享给大家,希望对大家有所帮助。继承和多态在OOP程序设计中,当我们定义一个class的时候,可以从某个现有的class继承,新的class称为子类(Subclass),而被继承的class称为基类、父类或超类(Base class、Super class)。比如,我们已经编写了一个名为Animal的class,有一个run()方法可以直接打印:class ...原创 2019-07-17 16:26:04 · 245 阅读 · 0 评论 -
python 函数式编程之返回函数
python学习笔记,特做记录,分享给大家,希望对大家有所帮助。返回函数函数作为返回值高阶函数除了可以接受函数作为参数外,还可以把函数作为结果值返回。我们来实现一个可变参数的求和。通常情况下,求和的函数是这样定义的:def calc_sum(*args): ax = 0 for n in args: ax = ax + n return ax但...原创 2019-07-11 17:52:31 · 231 阅读 · 0 评论 -
python 面向对象高级编程之定制类
python学习笔记,特做记录,分享给大家,希望对大家有所帮助。定制类看到类似__slots__这种形如__xxx__的变量或者函数名就要注意,这些在Python中是有特殊用途的。__slots__我们已经知道怎么用了,len()方法我们也知道是为了能让class作用于len()函数。除此之外,Python的class中还有许多这样有特殊用途的函数,可以帮助我们定制类。str我们先定义...原创 2019-07-18 11:08:58 · 200 阅读 · 0 评论 -
python 高级特性之列表生成式
python学习笔记,特做记录,分享给大家,希望对大家有所帮助。列表生成式列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式。举个例子,要生成list [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]可以用list(range(1, 11)):list(range(1, 11))运行结果:[1, 2, 3...原创 2019-07-01 17:22:24 · 271 阅读 · 0 评论 -
python 加载线上图片
python学习笔记,特做记录,分享给大家,希望对大家有所帮助。此前分享的方法只适用于显示png格式的图片,这篇文章来分享一个加载线上图片的功能。首先引入包import iofrom PIL import Image, ImageTk显示图片代码:try: # Python2 import Tkinter as tk from urllib2 import u...原创 2019-05-14 11:29:54 · 920 阅读 · 0 评论 -
python 函数的可变参数
python学习笔记,特做记录,分享给大家,希望对大家有所帮助。可变参数在Python函数中,还可以定义可变参数。顾名思义,可变参数就是传入的参数个数是可变的,可以是1个、2个到任意个,还可以是0个。我们以数学题为例子,给定一组数字a,b,c……,请计算a2 + b2 + c2 + ……。在定义函数之前需要先引入math包,并允许后续代码引用math包里的sin、cos等函数:impor...原创 2019-04-19 14:16:37 · 1082 阅读 · 0 评论 -
python 函数的关键字参数
python学习笔记,特做记录,分享给大家,希望对大家有所帮助。关键字参数可变参数允许你传入0个或任意个参数,这些可变参数在函数调用时自动组装为一个tuple。而关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict。请看示例:def person(name, age, **kw): print ('name:', name, 'age:', ...原创 2019-04-23 15:47:02 · 2104 阅读 · 0 评论 -
python 判断数字是奇数还是偶数
代码如下:while True: try: num=int(input('输入一个整数:')) #判断输入是否为整数 except ValueError: #不是纯数字需要重新输入 print("输入的不是整数!") continue if num%2==0: print('偶数') else: ...原创 2019-04-23 11:10:55 · 50638 阅读 · 6 评论 -
python 获取当前时间
Python 程序能用很多方式处理日期和时间,转换日期格式是一个常见的功能。每个时间戳都以自从1970年1月1日午夜(历元)经过了多长时间来表示。当前时间-时间戳#!/usr/bin/python# -*- coding: UTF-8 -*-import time; # 引入time模块ticks = time.time()print "当前时间戳为:", ticks运...原创 2019-04-23 11:08:54 · 26470 阅读 · 0 评论 -
python 九九乘法表
python学习笔记,特做记录,分享给大家,希望对大家有所帮助。九九乘法表定义了一个函数multiplicationOne,其思路同C/C++语言通用实现方法类似,使用两层for循环,外层控制行的转换,内层控制列的口诀输出,代码如下:def multiplicationOne(): for i in range(1, 10): for j in range(1, i ...原创 2019-04-26 10:36:47 · 679 阅读 · 0 评论 -
python 显示 gif 动图
下面所介绍的方法不仅可以显示gif动图,而且可以显示图片 首先引入pyglet包import pyglet主方法源码:# 在工作目录中选择一个gif动画文件ag_file = "111.gif"animation = pyglet.resource.animation(ag_file)sprite = pyglet.sprite.Sprite(animation)# 创建一个窗口并将其设置为原创 2017-12-05 11:42:55 · 18625 阅读 · 4 评论 -
python PNG图片显示
此方法只适用于显示png格式的图片 首先引入包import matplotlib.pyplot as plt # plt 用于显示图片import matplotlib.image as mpimg # mpimg 用于读取图片显示图片代码:lena = mpimg.imread('myself.png') # 读取和代码处于同一目录下的 lena.png# 此时 lena 就已经是一个 np原创 2017-12-05 11:41:59 · 11631 阅读 · 1 评论 -
python 高级特性之生成器
python学习笔记,特做记录,分享给大家,希望对大家有所帮助。生成器通过列表生成式,我们可以直接创建一个列表。但是,受到内存限制,列表容量肯定是有限的。而且,创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元素,那后面绝大多数元素占用的空间都白白浪费了。所以,如果列表元素可以按照某种算法推算出来,那我们是否可以在循环的过程中不断推算出后续的元素呢?这样...原创 2019-07-02 17:37:56 · 152 阅读 · 0 评论 -
python 高级特性之迭代器
python学习笔记,特做记录,分享给大家,希望对大家有所帮助。迭代器我们已经知道,可以直接作用于for循环的数据类型有以下几种:一类是集合数据类型,如list、tuple、dict、set、str等;一类是generator,包括生成器和带yield的generator function。这些可以直接作用于for循环的对象统称为可迭代对象:Iterable。可以使用isinstanc...原创 2019-07-02 17:38:38 · 217 阅读 · 0 评论 -
python 递归函数
python学习笔记,特做记录,分享给大家,希望对大家有所帮助。在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数。举个例子,我们来计算阶乘n! = 1 x 2 x 3 x … x n,用函数fact(n)表示,可以看出:fact(n) = n! = 1 x 2 x 3 x ... x (n-1) x n = (n-1)! x n = fact(n-1) x ...原创 2019-06-24 14:30:19 · 350 阅读 · 0 评论 -
python 面向对象高级编程之多重继承
python学习笔记,特做记录,分享给大家,希望对大家有所帮助。多重继承继承是面向对象编程的一个重要的方式,因为通过继承,子类就可以扩展父类的功能。回忆一下Animal类层次的设计,假设我们要实现以下4种动物:Dog - 狗狗;Bat - 蝙蝠;Parrot - 鹦鹉;Ostrich - 鸵鸟。如果按照哺乳动物和鸟类归类,我们可以设计出这样的类的层次:但是如果按照“能跑”和...原创 2019-07-18 11:08:13 · 212 阅读 · 0 评论 -
python 面向对象高级编程之使用@property
python学习笔记,特做记录,分享给大家,希望对大家有所帮助。使用@property在绑定属性时,如果我们直接把属性暴露出去,虽然写起来很简单,但是,没办法检查参数,导致可以把成绩随便改:s = Student()s.score = 9999这显然不合逻辑。为了限制score的范围,可以通过一个set_score()方法来设置成绩,再通过一个get_score()来获取成绩,这样,在...原创 2019-07-18 11:07:23 · 202 阅读 · 0 评论 -
python 面向对象高级编程之使用__slots__
python学习笔记,特做记录,分享给大家,希望对大家有所帮助。使用__slots__正常情况下,当我们定义了一个class,创建了一个class的实例后,我们可以给该实例绑定任何属性和方法,这就是动态语言的灵活性。先定义class:class Student(object): pass然后,尝试给实例绑定一个属性:s = Student()s.name = 'Michael...原创 2019-07-18 11:06:18 · 236 阅读 · 0 评论 -
python 面向对象编程之实例属性和类属性
python学习笔记,特做记录,分享给大家,希望对大家有所帮助。实例属性和类属性由于Python是动态语言,根据类创建的实例可以任意绑定属性。给实例绑定属性的方法是通过实例变量,或者通过self变量:class Student(object): def __init__(self, name): self.name = names = Student('Bob')...原创 2019-07-18 11:04:58 · 337 阅读 · 0 评论