
Python
范桂飓
若抽象才是美之定义,追求明确性的我们是否象征着丑陋。
-
原创 Python 编程系列
目录文章目录目录入门进阶模块数据结构笔试集入门《Python 是一门怎样的语言》《Python_编程特色》《拒绝从入门到放弃_《Python 核心编程 (第二版)》必读目录》《送书福利| Python 完全自学手册》《MAC Pro 同时安装 Python2 和 Python3》《CentOS6.5 升级 Python 2.7 版本》《Setup Python 开发环境和IPython的基本使用》《IPython4_Notebook》《Python 基础知识储备》《Python 基础2020-07-08 00:36:44659
0
-
原创 Python GIL 对线程并发性能的影响
目录文章目录目录Python GIL 对线程并发性能的影响Python 的线程安全问题Python 的原子性操作Python 的线程库锁Python GIL 对线程并发性能的影响说到这里,不妨继续引入 Python GIL 的问题。在多处理器时代,程序要想充分的利用计算平台的性能,就必须按照并发方式进行设计。但是很遗憾,对于 Python 程序而言,不管你的服务器拥有多少个处理器,任何时候...2020-05-02 23:34:00637
0
-
原创 Sphinx 自动化文档
目录文章目录目录Sphinx入门reStructuredText 语法格式标题、列表、正文、要点表格代码块引用其他模块文件引用静态图片SphinxSphinx 是一个工具,它使得创建一个智能而美丽的文档变得简单。作者是 Georg Brandl,基于 BSD 许可证。起初为写 Python 文档而诞生的 Sphinx,现在已经支持为各种语言生成软件开发文档。Sphinx 使用 reStruc...2020-03-03 22:15:26752
0
-
转载 MAC Pro 同时安装 Python2 和 Python3
目录文章目录目录安装 Python2安装 Python3不同版本Python路径配置 Python2 和 Python3安装 Python2MAC 系统已经默认带有 Python2.7 了,所以无需安装它。安装 Python3brew install python3不同版本Python路径MAC 系统自带 Python2.7,而我们安装 Python3 的时候,可以通过 brew ...2020-03-03 01:06:281015
0
-
原创 SQLite 版本引发的 Python 程序调用问题
问题在跑 OpenStack functional 功能测试的时候有两个用例过不去。nova.tests.functional.db.test_resource_provider.ResourceClassTestCase.test_create_duplicate_id_retrynova.tests.functional.db.test_resource_provider.Resour...2019-06-04 18:52:061560
0
-
原创 用 Python 解答两道来自阿里伯乐系统的笔试题
目录目录前言题目一分析实现题目二分析实现前言朋友到阿里面试,分享两道小题,博主比较闲就试着用 Python 解答一下,实现方式肯定是多种多样的,优劣也会各有不同,欢迎交流。题目一三个线程交替打印 abcabcabc…,一个打印 a,一个打印 b,一个打印 c。分析典型的线程同步问题,解决思路是互斥锁,三个线程通过锁来完成互斥下的协作...2018-07-29 11:04:112936
1
-
原创 Python 2 和 3 的区别及兼容技巧
目录目录前言Python 2 or 3 ?不同与兼容统一不等于语法统一整数类型统一整数除法统一缩进语法统一类定义统一字符编码类型统一导入模块的路径搜索方式修正列表推导式的变量作用域泄露修正非法比较操作异常统一抛出异常语法统一异常处理语法统一输入函数统一输出函数统一文件操作函数统一列表迭代器生成函数统一迭代器迭代函数前言最近 Py...2018-03-18 13:06:393565
0
-
原创 Python 笔试集(4):True + True == ?
目录目录前文列表面试题True Ture 布尔值布尔类型是特殊的整数类型前文列表Python 笔试集:什么时候 i = i + 1 并不等于 i += 1? Python 笔试集(1):关于 Python 链式赋值的坑 Python 笔试集(2):你不知道的 Python 整数 Python 笔试集(3):编译/解释?动态/静态?强/弱?Python 是一门怎样的语言面试题:Tru2017-12-28 08:54:071413
0
-
原创 Python 是一门怎样的语言
面试题解释/编译?动态/静态?强/弱?Python 到底是一门怎样的语言?编译 or 解释?编译、解释都是指将(与人类亲和的)编程语言翻译成(计算机能够理解的)机器语言(Machine code)的过程。 而两者的区别就在于「翻译时机」的不同,看一个例子:Emmmmmmmmmmmmm~ 神比喻 !!没错,编译型语言会将全部源代码一次性翻译完成,最终得到可执行文件,所以其主要特征就是「一次编译,多次2017-12-21 09:21:011679
0
-
原创 Python 笔试集(2):你不知道的 Python 整数
面试题分别给出下述代码在终端(e.g. IPyhon)中和在程序中运行的结果:a = 256b = 256c = 257d = 257def foo(): e = 257 f = 257 print('a is b: %s' % (a is b)) print('c is d: %s' % (c is d)) print('c is e: %s' % (c2017-12-14 12:51:501289
0
-
原创 Python 笔试集(1):关于 Python 链式赋值的坑
前言Python 的链式赋值是一种简易型批量赋值语句,一行代码即可为多个变量同时进行赋值。 例如:x = y = z = 1链式赋值是一种非常优雅的赋值方式,简单、高效且实用。但同时它也是一个危险的糖衣炸弹,值得我们引起关注。面试题:求链式赋值语句中变量 x 的值?x = [1, 2, 3, 4, 5]i = 0i = x[i] = 3如果你有过 C 语言的编程经验,那么你的思维习惯可能会让2017-12-07 00:28:051984
0
-
原创 Python 笔试集:什么时候 i = i + 1 并不等于 i += 1?
增强型赋值语句是经常被使用到的,因为从各种学习渠道中,我们能够得知 i += 1 的效率往往要比 i = i + 1 更高一些(这里以 += 为例,实际上增强型赋值语句不仅限于此)。所以我们会乐此不疲的在任何能够替换普通赋值语句的地方使用增量型赋值语句,以此来优化代码。那么我们是否有想过,在什么情况下 i += 1 其实并不等效于 i = i + 1 !!例一:使用增强型赋值语句:In [1]:2017-11-29 11:55:1310549
2
-
原创 Python Module_Socket_网络编程
目录目录Socket套接字套接字的原理套接字的数据处理方式套接字类型Socket 标准函数ServerSocket 标准函数ClientSocket 标准函数公有标准函数Socket 编程编程思路DemoTCP 服务端TCP 客户端Socket套接字源 IP 地址和目的 IP 地址以及源端口号和目的端口号的组合称为套接字,是支持 TCP/IP 的网络通信的基本操作单元,可2017-08-06 11:21:261417
0
-
原创 Python 常用 PEP8 编码规范和建议
目录目录代码布局缩进最大行宽空行模块导入字符串表达式和语句中的空格注释命名规则编程建议代码布局缩进每级缩进用4个空格。括号中使用垂直隐式缩进或使用悬挂缩进。EXAMPLE:# (垂直隐式缩进)对准左括号foo = long_function_name(var_one, var_two, var_three, var_fo2017-01-03 17:51:325782
0
-
原创 Python 进阶_OOP 面向对象编程_组合与继承
目录目录前言组合派生前言我们定义一个类是希望能够把类当成模块来使用, 并把类嵌入到我们的应用代码中, 和其他的数据类型/逻辑执行流结合使用. 一般来说我们可以使用两种方法在代码中利用类. 那就是组合和派生.组合组合: 就是将不同的类混合并加入到其他类中, 来 增加类的功能 / 提高代码的重用性 / 易于维护(对类的修改会直接反应到整个应用中) . 我们可以2016-11-06 13:14:074445
0
-
原创 Python 进阶_OOP 面向对象编程_静态方法和类方法
目录目录静态方法类方法使用函数修饰符来声明静态方法和类方法静态方法静态方法仅是类中的函数, 不需要绑定实例, 也就是说静态方法的定义不需要传入 self 参数. 静态方法不属于类的某一个实例对象, 而是属于类本身, 所以不需要绑定到实例对象. 可以通过 className.staticMethodName 的方式来调用. 特点: 只能使用静态变量, 所以始终占用同一个内存, 执行效率更高,2016-10-29 19:34:532109
0
-
原创 Python 进阶_OOP 面向对象编程_self 的实例绑定
目录目录self 和绑定调用非绑定的方法self 和绑定在 Python 中 self 变量是特殊的, 其用于在实例方法中引用该方法所绑定的实例, 换句话说就是 Python 在实例化对象时会自动的将实例对象传递到类体的 self 变量中, 类体中的 self 变量代表了该类的实例对象. 实例方法无论在任何地方被调用, 实例对象总是作为第一个参数被传递进去, 从而实现了实例对象和实例方法的绑定,2016-10-26 19:59:222009
0
-
原创 Python 进阶_OOP 面向对象编程_实例属性和方法
目录目录构造器和解构器构造器 __init__真构造器 __new__解构器 __del__实例方法Python 中的 抽象方法实例属性查看实例属性实例属性和类属性的区别访问不可变类属性访问可变类属性构造器和解构器构造器 __init__()类函数 __init__() 是 Python 类中预定义的方法,需要被重载才会生效。以双下划线 “__” 开头和结尾, 在 Python2016-10-23 19:42:221752
0
-
原创 Python 进阶_OOP 面向对象编程_类属性和方法
类属性在理解类属性之前要先搞清楚 实例属性 和 函数属性 之间的区别: 1. 实例属性:指的是实例化类对象的属性,需要在类中使用 self 关键字来将其和实例化对象绑定的属性。 2. 函数属性:指的是定义在函数体内的属性,其可以是实例属性,也可以是类属性。 3. 类属性:是一个与实例无关的属性,比起实例属性而言,它更加的 静态,当定义在类方法中时,并不会因为方法2016-10-23 15:51:181777
0
-
原创 Python 进阶_OOP 面向对象编程_类和继承
python 类的定义是使用2016-10-23 11:38:091932
0
-
原创 Python 进阶_模块 & 包
目录目录模块的搜索路径和路径搜索搜索路径命名空间和变量作用域的比较变量名的查找覆盖导入模块import 语句from-import 语句模块的搜索路径和路径搜索搜索路径默认的模块搜索路径在 Python 解析器编译安装时被指定, 我们可以通过 sys 模块来查看和修改它:In [4]: sys.pathOut[4]: ['', '2016-10-19 17:11:001739
0
-
原创 Python 进阶_函数式编程
目录 [toc]函数式编程首先要确定一点就是:函数 != 函数式 函数式编程是一种编程的范式。 特点:把计算视为函数而非指令纯函数式编程,不需要变量,没有副作用,测试简单支持高阶函数,代码简介Python 的函数式编程特点需要注意的是,Python 不是也不可能会成为一种纯函数是编程语言,但 Python 仍支持许多有价值的函数式编程语言的构建方法。Py2016-10-16 01:09:461684
0
-
原创 拒绝从入门到放弃_《Python 核心编程 (第二版)》必读目录
目录目录关于这本书必看知识点最后关于这本书《Python 核心编程 (第二版)》是一本 Python 编程的入门书,分为 Python 核心(其实并不核心,应该叫基础) 和 高级主题 两大部分,以 Python 2.x 作为主要演示版本,涵盖的知识面广,知识点较齐全,代码多且好理解,但对 Python 版本特性的内容太久远,不合时宜。整体来说 Python 核心 部分是主要内容,高级主题 部分2016-10-07 15:20:173852
0
-
原创 Python 进阶_生成器 & 生成器表达式
目录目录相关知识点生成器生成器 fab 的执行过程生成器和迭代器的区别生成器的优势加强的生成器特性生成器表达式生成器表达式样例小结相关知识点Python 进阶_迭代器 & 列表解析 生成器带有 yield 关键字的的函数在 Python 中被称之为 generator(生成器)。Python 解释器会将带有 yield 关键字的函数视为一个 generator 来处理。一个函数或者2016-09-17 12:44:578142
3
-
原创 Python 进阶_迭代器 & 列表解析
目录目录迭代器iter 内建的迭代器生成函数迭代器在 for 循环中迭代器与字典迭代器与文件创建迭代器对象创建迭代对象并实现委托迭代列表解析列表解析的样例列表解析和迭代器迭代器迭代器是一个含有 next() 方法的对象,让我们可以迭代不是序列数据类型但表现出序列行为的对象,所以可以说迭代器为类序列对象提供了一个类序列的接口(只要是实现了 __iter__() 方法的对象,就可以使2016-09-17 01:44:263957
4
-
原创 Python 进阶_闭包 & 装饰器
目录目录闭包函数的实质和属性闭包有什么好处小结装饰器更加深入的看看装饰器的执行过程小结闭包Closure: 如果内层函数引用了外层函数的局部变量(L),并且在外层函数中 return 内层函数时,这种关系就称之为闭包。 闭包的特点就是返回的内层函数还引用了外层函数的局部变量,所以要想正确的使用闭包,那么就要确保这个被内层函数引用的局部变量是不变的。函数的实质和属性函数是一个对象,在2016-09-11 17:38:082215
0
-
原创 SQLAlchemy_定义(一对一/一对多/多对多)关系
目录目录Basic Relationship PatternsOne To ManyOne To OneMany To ManyBasic Relationship Patterns基本关系模式 The imports used for each of the following sections is as follows: 下列的 import 语句,应用到接下来所有的代章节中:fr2016-09-05 23:36:1821960
0
-
原创 Python 数据结构_队列
目录目录队列队列Queue 队列是一种先进先出(FIFO)的数据类型, 新的元素通过 入队 的方式添加进 Queue 的末尾, 出队 就是从 Queue 的头部删除元素.用列表来做 Queue:queue = [] # 初始化一个列表数据类型对象, 作为一个队列def enQ(): # 定义一个入栈方法 queue.append(r2016-08-30 17:03:271335
0
-
原创 Python 数据结构_堆栈
目录目录堆栈堆栈堆栈是一个后进先出(LIFO)的数据结构. 堆栈这个数据结构可以用于处理大部分具有后进先出的特性的程序流 . 在堆栈中, push 和 pop 是常用术语: push: 意思是把一个对象入栈. pop: 意思是把一个对象出栈.下面是一个由 Python 实现的简单的堆栈结构:stack = [] # 初始化一个列表数据类型对象, 作为一个2016-08-30 16:41:022455
0
-
原创 Python Module_pdb_DEBUG 方法
目录目录pdbpdb 的 Debug 方式pdb 的调试指令示例IPython 自带的 Debug 工具 ipdbpdbpdb 是 Python 自带的程序包,为 Python 程序提供了一种可交互的源码调试功能。主要特性包括:设置断点单步调试进入函数调试查看当前代码查看栈片段动态修改变量值pdb 的 Debug 方式pdb 可以在源码内直接使用,相当于打断点,import2016-08-29 23:37:342074
2
-
原创 Python Module_oslo.vmware_连接 vCenter
目录目录前言Install oslsvmwareHow to use the vSphere Web Service SDK前言oslo.vmware 是一个由 Python 实现的 vCenter 连接驱动 , 提供了连接并操作 vCenter 的 Method . 如果希望应用 Openstack 来接管 vCenter 的资源(调用 vSphere SDK) 的话,那么 olso.vmw2016-08-22 17:16:234181
4
-
原创 Web 开发规范 — WSGI
目录目录WSGI 简介为什么需要 WSGI 这个规范WSGI 如何工作WSGI的角色Server 如何调用 Applicationapplication 的两个参数application 对象的返回值再谈Server如何调用applicationWSGI 中间件WSGI的实现和部署参考资料WSGI 简介WSGI(Web Server Gateway Interface) Web2016-07-26 16:17:394583
0
-
原创 Python基本语法_基本数据类型_序列类型详解
目录目录序列序列的标准操作符切片操作符一个例子序列的功能函数enumerate 枚举出序列对象的元素len 获取序列对象的长度min 取出sequence中的最小值max 取出sequence中的最大值reversed 返回一个逆序访问的迭代器sorted 序列的排序sum 计算序列中的各项元素和zip 混合两个序列对象all 检测sequence中各项元素是否均为Tru2016-07-18 00:50:286590
1
-
原创 Python基本语法_基本数据类型_数值型详解
目录目录软件环境Python变量调用的过程数值型删除一个数值类型对象布尔型 Bool标准整型 Int长整型双精度浮点型 Float复数数值类型对象的内建功能函数absNumber 求Number的绝对值coercex y 将x y转换为同一种数值类型divmodx y 除法-取余运算的结合pow 指数运算或将结果取余round 浮点型的四舍五入运算和求精度仅用于整型对2016-07-16 13:47:555211
0
-
原创 Python Module_os_操作系统
目录目录前言软件环境os模块内建属性osname 获取执行平台的类型oslinesep 输出当前平台使用的行终止符ossep 输出操作系统特定的路径分隔符ospathsep 输出用于分割文件路径的字符串Otheros模块内建方法文件或目录的路径操作方法osgetcwd 获取当前工作目录ospathexists 判断一个路径是否存在ospathisfile 判断指定对象是否为2016-04-16 23:47:592935
0
-
原创 PythonScript_demo--搭建PXE服务器
前言是一个测试向的Demo,在实验环境中改改还是可以用的,有助理解PXE服务器的原理。可以结合PXE服务器原理细节来看,传送门:点这里软件环境系统 RHEL7软件 Python 27RHEL7 ISO文件CodePXE Server所需要的所有服务的配置文件都是以重定向输出的方式来写入。建议在干净的系统中测试。 : )#!/usr/local/bin/python#coding=utf2016-02-29 02:33:372182
0
-
原创 PyQt GUI--信号与槽
目录目录前言系统软件GUI的主循环信号与槽信号的应用使用控件类的内建信号自定义信号带参数的信号槽的应用创建槽信号和槽的连接最后前言PyQt中的信号和槽,就是一个触发和执行的关系。系统软件系统 Win 10软件 Python 3.4.3IPython 4.0.0PyCharm 5PyQt 4GUI的主循环在理解信号和槽之前,首先先了解GUI的实现过程。 GUI2016-02-27 14:38:104452
0
-
原创 QT Desinger设计窗体应用程序框架
目录目录前言系统软件QT DesignerUsing QT DesignerOpen QTDesigner ToolWidget BoxQT Designer的布局属性栏示例i 我们选择Main Windowii 拖动控件设计你喜欢的窗体框架iii 保存ui文件iiii 将ui文件转换为py文件使用pyuic4bat使用PyCharm External Tools前言Q2016-02-25 02:03:434536
2
-
原创 PyCharm+QT Designer整合
目录目录前言软件系统添加QTDesgner Tool继续添加PyUIC Tool非必备项最后前言将QT Designer整合到PyCharm的External Tools中,以后就可以非常方便的调用QT Designer工具了。软件系统系统 Win10软件 Python 3.4.3PyQt4PyCharm 5添加QTDesgner Tool打开PyCharm的Setting2016-02-24 13:22:4218317
1
-
原创 PyQt4 Python GUI窗体应用程序
目录目录前言软件环境PyQT简介Setup PyCharmSetup SIPSetup PyQt4测试PyQt是否安装成功常见错误最后前言还是一句老话,公司要什么我就做什么。这次来玩Python的GUI编程,做一个用于监控警报、简化SOP的窗体应用程序。首先当然是部署开发环境了,这次用PyCharm5+Python3.4+PyQt4(QT Designer)软件环境系统 Win2016-02-23 16:27:075352
0