Python基础
文章平均质量分 55
dxk_093812
这个作者很懒,什么都没留下…
展开
-
Python学习之通用序列操作
Python中最基本的数据结构是序列,Python包括六种内建的序列:列表、元组、字符串、Unicode字符串、buffer对象和xrange对象。接下来 我们学习序列的通用操作。 索引 序列中的元素都是有编号的,并且从0开始。可以使用正数索引从第一个元素开始计数: >>>greeting="How a原创 2018-01-13 12:21:36 · 171 阅读 · 0 评论 -
Python正则表达式【转载】
这是转载的文章,原文章地址如下:Python 正则表达式入门(初级篇).引子首先说 正则表达式是什么?正则表达式,又称正规表示式、正规表示法、正规表达式、规则表达式、常规表示法(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。在很多文本编辑器里,正则表达...转载 2018-11-09 12:17:49 · 150 阅读 · 0 评论 -
Python的切片操作
当我们需要获取列表或者元组的部分元素时,我们可能会用到切片特性。对于一个列表:l=[0,1,2,3,4,5,6,7,8,9]如果我们要取前两个元素,我们通常会使用:>>>l[0],l[1]但是当元素特别多,我们需要取连续n个元素时,这个方法就很不方便了。当然,也有人想到使用循环的方式:l_tmp=[]n=100for i in range(50,150):...原创 2018-11-05 10:03:01 · 135 阅读 · 0 评论 -
Python中的argv
在做一道关于argv的题目时做错了,发现对这个不太了解,马上看了一下Python3官方文档,在此进行一个小小的总结。首先argv是sys模块的一个变量,它是传递给Python脚本的命令行参数列表,argv[0]是脚本名称,是否为完整的路径名取决于操作系统,如果没有脚本名称传递给Python解释器,那么argv[0]为一个空字符串。我们已经给出了argv的定义,接下来我们通过程序来直观的理解它的...原创 2018-11-05 10:45:32 · 5663 阅读 · 0 评论 -
Python的itertools模块
这篇文章参考的是Python3官方文档,应该说是翻译文档。https://docspy3zh.readthedocs.io/en/latest/library/itertools.html#itertools.cycleitertools模块实现了一些迭代器的构建块,它标准化了一组快速、内存高效的工具。itertools模块中有三种迭代器生产工具:无限迭代器、处理短输入文本的迭代器、组合...翻译 2018-11-08 20:36:57 · 178 阅读 · 0 评论 -
Python异步IO:asyncio模块
协程一个协程可以:result=await future 或者 result=yield from future——这两句将会挂起协程,直到future完成后再返回future的运行结果,或者抛出异常。result=await coroutine 或者 result=yield from coroutine——它将等待另一个协程产生结果,或者抛出异常@asyncio.coroutine...原创 2018-11-15 11:53:17 · 258 阅读 · 0 评论 -
Python中__new__和__init__的简单介绍
__init__方法相信大家对__init__方法是很熟悉了,它是在实例化类的时候被调用,用于初始化该对象。class Student: def __init__(self,name,number): self.name=name self.number=number def __str__(self): return 'Student:%s(%s)'%(self.nam...原创 2018-11-17 11:40:36 · 177 阅读 · 0 评论 -
Python中的函数参数【转载】
原文地址:廖雪峰的官方网站:函数的参数.定义函数的时候,我们把参数的名字和位置确定下来,函数的接口定义就完成了。对于函数的调用者来说,只需要知道如何传递正确的参数,以及函数将返回什么样的值就够了,函数内部的复杂逻辑被封装起来,调用者无需了解。Python的函数定义非常简单,但灵活度却非常大。除了正常定义的必选参数外,还可以使用默认参数、可变参数和关键字参数,使得函数定义出来的接口,不但能处理复...转载 2018-11-28 11:15:44 · 107 阅读 · 0 评论 -
Python中inspect模块的一些认识
学习python时遇到了inspect模块的使用,不甚了解,在此简要的认识一下。inspect模块主要提供了四种用处:对是否是模块,框架,函数等进行类型检查。获取源码获取类或函数的参数信息解析堆栈这里我不详细的叙述这四种用法,当当讲一下如何使用inspect获取类或函数的参数信息。还是通过代码进行说明。import inspectdef test(a=0,b='hello',...原创 2018-11-28 11:29:36 · 1411 阅读 · 0 评论 -
Python装饰器
Python装饰器什么是装饰器装饰器是一种用来扩展原来的函数功能的一种函数,它的返回值也是一个函数,它可以在不改变原有函数代码的前提下给它增加新的功能。python装饰器在插入日志、性能测试、事物处理、缓存和权限校验等方面都有很好的应用。为什么要使用装饰器正如前面所说,我们可以在不改变函数代码的前提下增加新的功能,并且便于代码的复用。例如,有如下两个函数:def task_A(): ...原创 2018-12-01 12:28:58 · 116 阅读 · 0 评论 -
Python的IO操作
io模块提供python处理各种I/O的主要工具。有三种主要的I/O类型:Text I/O、Binary I/O和Raw I/O。属于这些类别的对象通常称为流。Raw I/O通常用作二进制和文本流的低级构建块,很少拿来直接操作,在此不再赘述。磁盘上读写文件的功能是由操作系统提供的,现代操作系统不允许普通程序直接操作磁盘。读写文件是请求操作系统打开一个文件对象(文件描述符),然后,通过操作系统提供...原创 2018-12-01 16:05:39 · 217 阅读 · 0 评论 -
Numpy中一些函数的简单使用
在学习Char-RNN时,遇到了一些Numpy下的一些参数,在此记录一下。argsort()我们先给出个例子:import numpy as npx=np.array([6,0,2,8,-1,9,4])y=x.argsort()[:]print(y) 输出结果为:[4 1 2 6 0 3 5] argsort()函数首先将x从小到大排列,然后给出排序后的每个元素在原数...原创 2018-12-09 22:40:14 · 930 阅读 · 0 评论 -
Python中类的创建-metaclass
metaclass很少被用到,以至于学习Python时你根本可以先不用管它。最近跟着廖雪峰大神编写orm,所以来看看metaclass的用法。metaclass的作用metaclass是指定类由谁创建的,它能够定制类的创建过程。object和type是python中的两个源对象,python的新式类中都是继承自object类,而<class ‘object’>的子类的类型都是&l...原创 2019-01-04 14:41:57 · 327 阅读 · 0 评论 -
Python实现ORM的一些理解
这里给出廖雪峰编写的orm例子的一些注释。# -*- coding:utf-8 -*-import asyncio,loggingimport aiomysqldef log(sql,args=()): logging.info('SQL:%s'%sql)async def create_pool(loop,**kw): logging.info('create databa...原创 2019-01-04 15:11:16 · 854 阅读 · 0 评论 -
Python中的type和object【转载】
转载自:python中的type和object详解关于这篇博客这篇博客主要描述Python的新风格对象(new-style objects),如下:<type ‘type’>和<type ‘object’>分别是什么?用户自定义的类和实例之间是怎么联系的?它们和内置类型又是怎么联系的?什么是元类(metaclasses)?New-style表明这篇博客所说的...转载 2019-01-02 11:13:15 · 178 阅读 · 0 评论 -
Python中赋值、浅拷贝与深拷贝的区别
赋值,其实就是对象的引用,对新对象的如何修改都会影响到原始对象。Python中有两种拷贝操作:浅拷贝和深拷贝。copy.copy(x):返回x的浅拷贝。copy.deepcopy(x):返回x的深拷贝。那么都是拷贝,浅拷贝和深拷贝有什么不同吗?浅拷贝与深拷贝的差异只与复合对象(对象中包含其他对象,比如列表或类实例)相关。浅拷贝构造新的复合对象,然后向其插入对原始对象中对象(即子对...原创 2018-11-03 22:06:52 · 120 阅读 · 0 评论 -
Python的四种命名方式
Python中存在着四种命名方式object:公用方法_object:半保护方法,视为‘protect’,只有类对象或者子类对象才可以访问这些变量。它在模块或类外不可以使用,因此不能用‘from module import *’导入。它们的名字实际上是_classname__methodname。__object:全保护,及私有成员‘private’,它只能被类对象所访问,子对象也不可以,...原创 2018-11-03 16:23:30 · 280 阅读 · 0 评论 -
Python协程
什么是协程协程,又叫做微线程和纤程,英文名叫做coroutine。协程是用户级别的轻量级线程。前面我们讲过线程,Python中线程调度和操作系统的进程调度类似,都属于抢占式的调度。而协程是程序级别的,根据程序员的需求自己调度。子程序,或者说函数是层级调用的,它是一个入口,一次返回,并且调用顺序明确。协程就是在子程序执行的过程中,转而执行别的子程序,然后在返回来接着执行,这个过程并不是函数调用,...原创 2018-10-30 17:29:28 · 614 阅读 · 0 评论 -
Python学习之列表
这次我们来学习Python中常用的序列之一——列表。 列表功能强大,并且可以修改列表的内容。我们学习列表的基本操作和列表方法,掌握列表的使用。 一、列表的基本操作 赋值 通过列表的索引标记为特定位置的元素赋值,不能为位置不存在的元素赋值。 >>>x=[1,2,3]原创 2018-01-14 09:40:46 · 298 阅读 · 0 评论 -
Python学习之元组
元组也是Python中常用的序列,与列表不同的是,元组是不可以修改的。 当实现一个只包含一个值的元组时,必须加逗号。 >>>3*(1+2) 9 >>>3*(1+2,) (3,3,3) tuple函数 该函数接收一个序列作为参数,并将它转换为元组。原创 2018-01-15 20:47:06 · 132 阅读 · 0 评论 -
Python学习之字符串
我们来学习Python的另一种序列——字符串。 基本的字符串操作 同样的,之前介绍的序列的基本操作对字符串也是适用的,如索引、分片等。 字符串格式化 字符串格式化使用了格式化操作符%来实现,%s部分被称为转换说明符,它标记了需要插入的转换值的位置。若该值不是字符串,则会使用str将其转换为字符串。只有使用元组和字典时可以格式化原创 2018-01-16 21:12:54 · 117 阅读 · 0 评论 -
Python学习之字典
本节我们学习Python中唯一内建的数据类型——字典。 字典的由键-值对组成,键可以是任意的不可变类型。而且键必须是唯一的,值可以不唯一。字典的意义在于通过键快速的找到对应的值。 字典的创建 dict函数 通过其他映射或键值对的序列创建字典。 >>>items=[('product','pen'),(原创 2018-01-17 16:19:28 · 131 阅读 · 0 评论 -
Python学习之魔法方法
什么是魔法方法? 在Python中,有的方法的前后被双下划线所包围,这就是魔法方法,这些方法会在特殊的情况下被调用,而不用显示调用。其中,Python中最常见的魔法方法便是构造方法_init_,同样的,构造方法也不用显示调用,当你创建一个对象时,程序会自动调用构造方法。class test: def __init__(self,value=1): self.t...原创 2018-03-26 15:45:20 · 170 阅读 · 0 评论 -
Python多进程
多进程介绍Python多线程无法利用CPU多核的优势。因此在Python开发中,我们一般使用多进程进行并行开发。multiprocessing是类似于threading模块的包。它支持了本地和远程并发性,可以更充分的利用多核资源。Process类要运行一个进程需要创建实例化一个Process对象并且调用该类的start()方法。`from multiprocessing imp...原创 2018-04-17 15:28:55 · 760 阅读 · 0 评论 -
Python多线程
Thread类class threading.Thread(group=None, target=None, name=None, args=(), kwargs={})class threading.Thread(group=None, target=None, name=None, args=(), kwargs={})group为None;target是被run()方法调用的对...原创 2018-04-22 18:22:26 · 149 阅读 · 0 评论 -
几种编码方式的总结
之前总是会遇到编码的问题,一直处于半懂不懂的状态,这次来对几种编码方式简单的进行梳理一下,今后遇到这种问题再也不用怕了。首先介绍字符的编码方式ASCII码 首先需要清楚的是ASCII码主要是用来显示英语和部分西欧语言的编码系统。标准的ARCII码使用7位二进制数表示所有的大小写字母、数字、标点符号及特殊字符,剩下的一位规定为0。非ASCII码 英文字符用7个二进制位就可以完全表示,...原创 2018-09-02 14:18:42 · 1101 阅读 · 0 评论 -
Python迭代器和生成器
可迭代对象在介绍迭代器之前,我们得先引入可迭代对象(iterable)的概念。可迭代对象可以直接作用于for循环。例如常见的列表、字典和元组都是可迭代对象。例如我们可以使用for循环依次输出列表的值。x=[1,2,3,4]for i in x: print(i) 事实上,只要对象实现了__iter__()方法,我们就可以对该对象进行迭代。该方法返回了一个迭代器对象。迭代器迭代器(...原创 2018-10-16 16:32:49 · 94 阅读 · 0 评论 -
Python匿名函数
Python中使用lambda来创建匿名函数。匿名函数的优点:一些情况下,使用lambda可以省去定义函数的过程,使代码简洁易读。使用lambda不需要考虑函数重名的问题。语法lambda [arg1 [,arg2,.....argn]]:expression lambda函数的语法中只包含了一条语句,而不是一个代码块。冒号左边为lambda的参数列表,右边为返回值。它拥有自己...原创 2018-10-16 20:18:19 · 239 阅读 · 0 评论 -
Python中slots的使用
默认情况下每个类都会有一个dict,这个dict维护了实例的所有属性,每个实例都有一个dict,并且通过__dict__访问。通过如下的例子来说明这个dict的使用。class Test(object): x=9 #类变量 def __init__(self): passt1=Test()t2=Test()t1.y=8 #给实例绑定一个属性t2.x=5prin...原创 2018-10-22 10:48:13 · 493 阅读 · 1 评论 -
Python的property函数
这篇文章我们来学习property函数的用法,它是一种创建属性的机制。Python中访问对象的属性可以这么做:实例名.变量名。但是有些人却不同意这种访问方法,他们觉得这样做破坏了封装的原则,对象的状态对于外部应该是隐藏的。因此,Python中更推荐使用私有特性,通过在名字前面加上双下划线,然后getter,setter方法访问这些特性。然而,将“实例名.变量名”的方式改为使用getter、se...原创 2018-10-20 12:05:22 · 2720 阅读 · 0 评论 -
Python网络编程(一)
Socketsocket被称为套接字,用来描述ip地址和端口,可以实现不同计算机或虚拟机之间的通信。计算机上同时运行着几种服务,要区分计算机之间是哪个程序进行数据传送,就需要给每种服务唯一确定一个端口号。计算机之间通信时首先根据IP地址找到相应的计算机,然后根据端口号找到相应的服务。IP地址和端口号就构成了一个socket,所以每种服务都打开了一个socket。套接字的连接一般可分为三个过程:...原创 2018-10-26 14:29:35 · 248 阅读 · 0 评论 -
Python中super的用法【转载】
转载自 Python面向对象中super用法与MRO机制1、 引言最近在研究django rest_framework的源码,老是遇到super,搞得一团蒙,多番查看各路大神博客,总算明白了一点,今天做一点总结。2、 为什么要用super1)让代码维护更加简单Python是一门面向对象的语言,定义类时经常用到继承的概念,既然用到继承就少不得要在子类中引用父类的属性,我们可以通过“父类名....转载 2019-02-17 20:12:18 · 13302 阅读 · 7 评论