
Python
文章平均质量分 89
ScratKong
劝君惜取少年时
展开
-
Python简介、对比、解释器介绍
目录一、python简介二、凡事都要刨根究底么?三、安装四、Python解释器* Python 代码是怎么执行的?五、Hello wolrd Python是著名的“龟叔”Guido van Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言。龟叔给Python的定位是“优雅”、“明确”、“简单”,所以Python程序看上去总是简单...原创 2018-08-10 09:09:20 · 1855 阅读 · 0 评论 -
Python六种数据类型简介、isinstance,type的区别
目录一、Python数据类型二、Number(数字)三、String(字符串)四、List(列表) 五、Tuple(元组)六、Set(集合)七、Dictionary(字典) 八、Python数据类型转换一、Python数据类型Python3 中有六个标准的数据类型:Number(数字) St...原创 2018-08-10 10:01:05 · 2372 阅读 · 0 评论 -
Python生成随机数
如果你对在Python生成随机数与random模块中最常用的几个函数的关系与不懂之处,下面的文章就是对Python生成随机数与random模块中最常用的几个函数的关系,希望你会有所收获,以下就是这篇文章的介绍。random.random()用于生成用于生成一个指定范围内的随机符点数,两个参数其中一个是上限,一个是下限。如果a > b,则生成随机数? 1 ...转载 2018-08-11 09:04:18 · 418 阅读 · 0 评论 -
Python多态与鸭子类型
学习到多态的时候,不确定自己是否完全理解了python的多态,于是Google观看了众多资料和文献,发现很多编程大佬讲得过于抽象,不便于新手理解,这违背了python的初衷:简单。所以我在此用通俗一点的方式作了一个总结。先贴一段代码,在python3中举例:(为了给非科班出身以及中学英语偏科的python学习者更友好的阅读体验,w3n特意添加了中文注释,可以不细看代码,通过注释阅读,主...转载 2018-08-11 09:18:20 · 433 阅读 · 0 评论 -
进程通信之进程池,队列
进程的定义作用已经在其他文章中讲过,这里谈一谈进程之间的通信问题。一: 队列(Queue)可以使用multiprocessing模块的Queue实现多进程之间的数据传递下面是一个具体的实现栗子,演示一下Queue的工作原理:from multiprocessing import Queue# 创建容量为3的队列q = Queue(3)q.put('message1')q...原创 2018-08-08 10:15:25 · 260 阅读 · 0 评论 -
迭代、迭代器
一、什么是迭代器?什么是迭代:使用for...in...的循环语法从其中依次拿到数据进行使用,如对list、tuple、str等类型的数据,我们把这样的过程称为遍历(迭代)可迭代对象:可以通过for...in...这类语句迭代读取一条数据供我们使用的对象for...in 的本质:for item in Iterable 循环的本质就是先通过iter()函数获取可迭代对象Itera...原创 2018-08-08 11:18:40 · 615 阅读 · 0 评论 -
生成器
一、什么是生成器生成器是一类特殊的迭代器。利用迭代器,我们可以在每次迭代获取数据(通过next()方法)时,按照特定的规律进行数据的生成。为什么要提出生成器?在实现一个迭代器时,当前迭代到的状态需要我们自己记录,才能根据当前状态生成下一个数据。 为了实现记录当前状态,并配合next()函数进行迭代使用。可以采用更简便的语法,即生成器(generator)。二、生成器的...原创 2018-08-08 13:55:31 · 692 阅读 · 0 评论 -
协程
协程,又称微线程,纤程。英文名Coroutine。用户态执行多线程。协程的概念很早就提出来了,但直到最近几年才在某些语言(如Lua,不只是Python实现了)中得到广泛应用。一、什么是协程在多线程的模型中,操作系统会根据某种调度算法不断地切换当前正在运行的线程,由于每个线程都有自己的栈,因此在切换线程的过程中需要上下文的切换,这样会导致大量的开销,导致性能的下降。协程就是用来解决这个问...转载 2018-08-08 14:23:53 · 1011 阅读 · 0 评论 -
数据结构之队列
目录队列队列的实现双端队列队列队列(queue)是只允许在一端进行插入操作,而在另一端进行删除操作的线性表。队列是一种先进先出的(First In First Out)的线性表,简称FIFO。允许插入的一端为队尾,允许删除的一端为队头。队列不允许在中间部位进行操作!假设队列是q=(a1,a2,……,an),那么a1就是队头元素,而an是队尾元素。这样我们就可以删除时,总是从...翻译 2018-08-08 14:25:17 · 706 阅读 · 0 评论 -
Python3中str与bytes
Python3 最重要的新特性之一是对字符串和二进制数据流做了明确的区分。文本总是Unicode,由str类型表示,二进制数据则由bytes类型表示。Python 3不会以任意隐式的方式混用str和bytes,你不能拼接字符串和字节流,也无法在字节流里搜索字符串(反之亦然),也不能将字符串传入参数为字节流的函数(反之亦然)。下面让我们深入分析一下二者的区别和联系。编码发展的历史...转载 2018-08-18 21:11:12 · 240 阅读 · 0 评论 -
单元测试
如果你听说过“测试驱动开发”(TDD:Test-Driven Development),单元测试就不陌生。测试从软件开发过程可以分为:单元测试 对单独的代码块(例如函数)分别进行测试,以保证它们的正确性 集成测试 对大量的程序单元的协同工作情况做测试 系统测试 同时对整个系统的正确性进行检查,而不是针对独立的片段 在众多的测试中,与程序开发人员最密切的就是单元测试,因...转载 2018-08-26 17:49:28 · 396 阅读 · 0 评论 -
Python基础之函数,列表推导式,匿名函数,递归
1.函数函数:具有独立功能的代码块。使用包含两个步骤:1.定义函数 2.调用函数 函数的作用:开发时,提高编写效率。函数的参数:分为形参(可理解为变量),实参。默认参数:不赋的时候才生效。 关键字参数:实参可以指定对应的形参。 printinfo(name,age) -----> printinfo(age=9,name='miki')可变参数: *args...原创 2018-08-22 21:38:42 · 984 阅读 · 0 评论 -
Python : 断言(assert)
有点像if条件分支的近亲关键字 assert,当这个关键字后边的条件为假的时候,程序自动崩溃并抛出AssertionError的异常>>> assert 3>4Traceback (most recent call last):File "<stdin>", line 1, in <module>AssertionError...转载 2018-08-27 09:08:16 · 314 阅读 · 0 评论 -
python3 中map和python2中 map的区别,超级实用
map()函数map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回。例如,对于list [1, 2, 3, 4, 5, 6, 7, 8, 9]如果希望把list的每个元素都作平方,就可以用map()函数:因此,我们只需要传入函数f(x)=x*x,就可以利用map(...转载 2018-08-20 09:28:14 · 935 阅读 · 0 评论 -
Python2.x与3.x版本区别
Python的3.0版本 常被称为Python 3000,或简称Py3k。相对于Python的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0在设计的时候没有考虑向下相容。许多针对早期Python版本设计的程式都无法在Python 3.0上正常执行。为了照顾现有程式,Python 2.6作为一个过渡版本,基本使用了Python 2.x的语法和库,同...转载 2018-08-23 11:13:16 · 568 阅读 · 0 评论 -
进程交互---队列,进程池
进程的定义作用已经在其他文章中讲过,这里谈一谈进程之间的通信问题。一: 队列(Queue)可以使用multiprocessing模块的Queue实现多进程之间的数据传递下面是一个具体的实现栗子,演示一下Queue的工作原理:from multiprocessing import Queue# 创建容量为3的队列q = Queue(3)q.put('message1')q...原创 2018-08-23 21:27:23 · 635 阅读 · 0 评论 -
Linux环境安装IPython配置python开发环境
一.IPython简介IPython 是一个交互式的shell,比默认终端好用,支持自动缩进,Tab补全,并且内置了很多有用的功能和函数。可以在任何操作系统上使用。二.安装方法1.pip 在线安装pip3 install ipythonpip3 install "ipython[notebook]"2.下载安装可以到GitHub 下载安装包,切换到目录下然后运行下面的脚...转载 2018-08-21 08:57:19 · 1137 阅读 · 0 评论 -
python的各种推导式(列表推导式、字典推导式、集合推导式)
推导式comprehensions(又称解析式),是Python的一种独有特性。推导式是可以从一个数据序列构建另一个新的数据序列的结构体。 共有三种推导,在Python2和3中都有支持:列表(list)推导式 字典(dict)推导式 集合(set)推导式一、列表推导式1、使用[ ]生成list基本格式variable = [out_exp_res for out_ex...转载 2018-08-24 11:28:44 · 416 阅读 · 0 评论 -
ORM的 理解
一、ORM简介 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中。Django自带ORM框架。ORM框架两个作用:翻译对象关系为SQL语句。 解决不同数据库的差异性。ORM只...转载 2018-08-25 17:06:20 · 307 阅读 · 0 评论 -
Python Web 框架:Django、Flask 与 Tornado 的性能对比
写在前面:本文的数据涉及到我面试时遇到过的问题,大概一次 http 请求到收到响应需要多少时间。这个问题在实际工作中与框架有比较大的关系,因此特别就框架的性能做了一次分析。什么是web框架?Web框架(Web framework)是一种开发工具,用来支持动态网站、网络应用和网络服务的开发。大多数的web框架提供了一套开发和部署网站的方式,也为web行为提供了一套通用的方法。web框...转载 2018-09-08 09:26:08 · 3375 阅读 · 0 评论 -
如何理解Nginx, WSGI, Flask之间的关系
之前对 Nginx,WSGI(或者 uWSGI,uwsgi),Flask(或者 Django),这几者的关系一存存在疑惑。通过查阅了些资料,总算把它们的关系理清了。 总括来说,客户端从发送一个 HTTP 请求到 Flask 处理请求,分别经过了 web服务器层,WSGI层,web框架层,这三个层次。不同的层次其作用也不同,下面简要介绍各层的作用。web服务器,web框架与 WS...转载 2018-09-06 22:13:44 · 217 阅读 · 0 评论 -
Python 魔法方法详解
什么是Python魔法方法魔法方法就如同它的名字一样神奇,总能在你需要的时候为你提供某种方法来让你的想法实现。魔法方法是指Python内部已经包含的,被双下划线所包围的方法,这些方法在进行特定的操作时会自动被调用,它们是Python面向对象下智慧的结晶。初学者掌握Python的魔法方法也就变得尤为重要了。为什么要使用Python魔法方法使用Python的魔法方法可以使Pyth...转载 2018-09-18 21:18:52 · 607 阅读 · 0 评论 -
self,cls 与 staticmethod,classmethod
一、总体说明Python类的方法有三种(self和cls都可以用别的单词代替):一是通过def定义的 , 普通的一般的,需要至少传递一个参数,一般用self,这样的方法必须通过一个类的实例去访问,类似于c++中通过对象去访问; 二是在def前面加上@classmethod,这种类方法的一个特点就是可以通过类名去调用,但是也必须传递一个参数,一般用cls表示class,表示可以通过类直接...原创 2018-09-18 21:53:26 · 431 阅读 · 0 评论 -
Python 列表
列表的定义 List (列表)是Python中使⽤最频繁的数据类型 ,专⻔⽤于存储⼀串数据,存储的数据称为 元素 列表⽤ [ ] 定义,元素 之间使⽤ , 分隔 列表的 索引 从 0 开始 索引 就是元素在 列表 中的位置编号 name_list = ["zhangsan", "lisi", "wangwu"] # 取出列表中元素的值print(name_list[1])...转载 2018-09-19 11:11:36 · 610 阅读 · 0 评论 -
Python 字符串
字符串的定义 字符串 就是⼀串字符,是编程语⾔中表示⽂本的数据类型,在 Python 中可以使⽤ ⼀对双引号 " 或者 ⼀对单引号 ' 定义⼀个字符串 虽然可以使⽤ \" 或者 \' 做字符串的转义,但是在实际开发中: 如果字符串内部需要使⽤ " ,可以使⽤ ' 定义字符串 如果字符串内部需要使⽤ ' ,可以使⽤ " 定义字符串 可以使⽤ 索引 获取⼀个字符串中...转载 2018-09-19 11:21:41 · 769 阅读 · 0 评论 -
Python 元组
元组的定义 python元组与列表类似,不同之处在于元组的元素不可更改。元组⽤ () 定义 ,⽤于存储 ⼀串数据,元素 之间使⽤ , 分隔 。元组的索引 从 0 开始 。# 定义元组info_tuple = ("Scrat", 18, 1.75)# 取出元素的值print(info_tuple[0]) # 输出:Scrat元组中 只包含⼀个元素 时,需要 ...原创 2018-09-19 11:26:20 · 517 阅读 · 0 评论 -
Python内置性能分析----timeit模块
timeit模块timeit模块可以用来测试一小段Python代码的执行速度。class timeit.Timer(stmt='pass', setup='pass', timer=<timer function>) Timer是测量小段代码执行速度的类。 stmt参数是要测试的代码语句(statment); setup参数是运行代码时需要的设置; ...转载 2018-09-19 16:45:18 · 275 阅读 · 0 评论 -
Python 字典
字典的定义 dictionary (字典)是除列表以外 Python之中最灵活的数据类型 ,字典同样可以⽤来存储多个数据 ,通常⽤于存储描述⼀个物体的相关信息 ,字典⽤ { } 定义 。字典使⽤ 键值对 存储数据,键值对之间使⽤ , 分隔: 键 key 是索引 值 value 是数据 键 和 值 之间使⽤ : 分隔 值可以取任何数据类型,但键只能使⽤字符串、...转载 2018-09-25 23:40:38 · 502 阅读 · 0 评论 -
两句话掌握 Python 最难知识点——元类
学懂元类,只需要知道两句话:道生一,一生二,二生三,三生万物 我是谁?我从哪来里?我要到哪里去? 在python世界,拥有一个永恒的道,那就是“type”,请记在脑海中,type就是道。如此广袤无垠的python生态圈,都是由type产生出来的。道即是 type 一即是 metaclass(元类,或者叫类生成器) 二即是 class(类,或者叫实例生成...转载 2018-09-20 20:48:00 · 857 阅读 · 4 评论 -
Python format 格式化函数
Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能。基本语法是通过 {} 和 : 来代替以前的 % 。format 函数可以接受不限个参数,位置可以不按顺序。实例>>>"{} {}".format("hello", "world") # 不设置指定位置,按默认顺序 'hello world'>&g...转载 2018-09-27 11:29:44 · 281 阅读 · 0 评论 -
Python列表去重的几种方式
一、方法1 代码如下 ids = [1,2,3,3,4,2,3,4,5,6,1] news_ids = [] for id in ids: if id not in news_ids: news_ids.append(id) print news_ids 思路看起来比较清晰简单 ,也可以保持之前的排列顺序。...转载 2018-10-10 23:25:16 · 286 阅读 · 0 评论 -
CGI, FastCGI, WSGI, uWSGI 都是啥???
相信大家在学习web开发的过程中一定会遇到 cgi、 wsgi 之类的名词,然后看着他们十分相似的解释估计还没开始写代码就晕了,这都什么鬼?反正我最开始学习那会儿就不知道这些都是个啥,我也推荐学习过程不要纠结于某个词语的解释。当你拥有一定开发经验,对 web 开发有一个更系统的认识后回头来看之前的疑惑也许就迎刃而解了,今天我就谈谈当初对这些看着十分相似的名词的浅见:CGI(Commo...转载 2018-10-22 23:08:28 · 507 阅读 · 0 评论 -
弄明白python reduce 函数
弄明白python reduce 函数作者:Panda Fang出处:http://www.cnblogs.com/lonkiss/p/understanding-python-reduce-function.html原创文章,转载请注明作者和出处,未经允许不可用于商业营利活动reduce() 函数在 python 2 是内置函数, 从python 3 开始移到了 functo...转载 2018-10-26 16:41:36 · 251 阅读 · 0 评论 -
关于Pillow与PIL
关于Pillow与PILPIL(Python Imaging Library)是Python一个强大方便的图像处理库,名气也比较大。不过只支持到Python 2.7。PIL官方网站:http://www.pythonware.com/products/pil/Pillow是PIL的一个派生分支,但如今已经发展成为比PIL本身更具活力的图像处理库。目前最新版本是3.0.0。Pill...转载 2018-10-25 00:14:51 · 8760 阅读 · 0 评论 -
二分查找Python实现
二分法查找二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后...转载 2018-10-25 00:22:34 · 580 阅读 · 0 评论 -
Python 的GIL 和 互斥锁
GIL有 Python 开发经验的人也许听说过这样一句话:Python 不能充分利用 CPU 的多核优势。为什么呢?因为Python(Cpython) 中存在 GIL,即global interpreter lock(全局解释器锁)。用于限制一个进程中同一时刻只有一个线程被CPU调度。Python 程序尽管也支持多线程,但由于受到 GIL 的保护,所以同一时刻,只有一条线程可以向前执...转载 2018-11-11 22:07:30 · 479 阅读 · 0 评论 -
Python中 sys.argv[]的用法简明解释
Python中 sys.argv[]的用法简明解释 sys.argv[]说白了就是一个从程序外部获取参数的桥梁,这个“外部”很关键,所以那些试图从代码来说明它作用的解释一直没看明白。因为我们从外部取得的参数可以是多个,所以获得的是一个列表(list),也就是说sys.argv其实可以看作是一个列表,所以才能用[]提取其中的元素。其第一个元素是程序本身,随后才依次是外部给予的参数。下面我们...转载 2018-11-05 10:12:50 · 256 阅读 · 0 评论 -
Python网络编程----TCP\UDP、Socket、粘包
软件开发架构我们了解的涉及到两个程序之间通讯的应用大致可以分为两种:应用类:qq、微信、网盘、优酷这一类是属于需要安装的桌面应用 web类:比如百度、知乎、博客园等使用浏览器访问就可以直接使用的应用这些应用的本质是两个程序间的通信,这两个分类对应了两种架构模式:CS架构: client server (通过客户端访问) BS架构: browser server (通过浏览器访问)...转载 2018-11-05 10:18:43 · 1395 阅读 · 0 评论 -
Python作用域和命名空间(Scope and Namespace)
在Python中,对象是独立的,不同作用域中的不同名字都可以被绑定在同一个对象上,当然对这个对象的修改会影响所有的引用。赋值操作就是名字和对象的绑定或重绑定。这和C++中的引用是一样的。1,基础概念1.1 命名空间(namespace) Anamespaceis a mapping from names to objects命名空间是名字和对象的映射。也就是可以把一个name...转载 2018-11-08 21:46:28 · 343 阅读 · 0 评论 -
Python os.path, sys.path
1.sys.path —— 动态地改变Python搜索路径如果python中导入的package或module不在环境变量PATH中,那么可以使用sys.path将要导入的package或module加入到PATH环境变量中。import sys sys.path.append(’引用模块的地址') #或者 import sys sys.path.inser...转载 2018-12-02 14:53:02 · 250 阅读 · 0 评论