python笔记
文章平均质量分 90
zhao12501
这个作者很懒,什么都没留下…
展开
-
Python通用编程规范-09 安全编程规范
1.9 安全编程规范1.9.1 异常行为1.9.1.1 禁止抑制或者忽略已检查异常【说明】: 编码人员常常会通过一个空的或者无意义的catch块来抑制捕获的已检查异常。每一个catch块都应该确保程序只会在继续有效的情况下才会继续运行下去。因此,catch块必须要么从异常情况中恢复,要么重新抛出适合当前catch块上下文的另一个异常以允许最邻近的外层try-catch语句块来进行恢复工作。异常会打断应用原本预期的控制流程。例如,try块中位于异常发生点之后的任何表达式和语句都不会被执行。因此,异常必须原创 2021-04-26 18:05:13 · 2475 阅读 · 0 评论 -
Python通用编程规范-08 编程实践
文章目录elif option == 'active':ActiveCmd(sys.argv[2:3][0])elif option == 'inactive':InActiveCmd(sys.argv[2:3][0])...more code...more code1.8.1 可变参数默认值设为None函数参数中的可变参数不要使用默认值,在定义时使用None说明:参数的默认值会在方法定义被执行时就已经设定了,这就意味着默认值只会被设定一次,当函数定义后,每次被调用时都会有"预计算"的过程。当参数的默原创 2021-04-26 17:04:43 · 545 阅读 · 1 评论 -
Python通用编程规范-07 性能
文章目录1.7.1 List容量初始化在list成员个数可以预知的情况下,创建list时需预留空间正好容纳所有成员的空间说明:与Java、C++等语言的list一样,Python语言的list在append()成员时,如果没有多余的空间容纳新的成员,就会分配一块更大的内存,并将原来内存里的成员拷贝到新的内存上,并将最新append()的成员也拷贝到此新内存空间中,然后释放老的内存空间。如果append()调用次数很大,则如上过程会频繁发生,因而会造成灾难性性能下降,而不仅仅是一点下降。错误示例:m原创 2021-04-26 16:45:56 · 849 阅读 · 0 评论 -
Python通用编程规范-06 并发与并行
文章目录6.1 线程6.1.2 多线程适用于阻塞式IO场景,不适用于并行计算场景-*- coding:utf-8 -*--*- coding:utf-8 -*-6.1 线程6.1.2 多线程适用于阻塞式IO场景,不适用于并行计算场景Python的标准实现是CPython。CPython执行Python代码分为2个步骤:首先,将文本源码解释编译为字节码,然后再用一个解释器去解释运行字节码。字节码解释器是有状态的,需要维护该状态的一致性,因此使用了GIL(Global Interpreter Lock,原创 2021-04-26 16:31:05 · 289 阅读 · 0 评论 -
Python通用编程规范-05 异常处理
文章目录5.1 异常处理5.1.1 异常捕获后要加 `finally`5.1.2 异常捕获时需注明异常类型5.1.3 不在`except`分支里面的`raise`都必须带异常5.1.4 尽量用异常来表示特殊情况,而不要返回None5.1.5不在`finally`中使用`return`或者`break`5.1.6 禁止使用`except X, x`语法5.2 异常恢复5.3 断言5.1 异常处理5.1.1 异常捕获后要加 finally使用try…except…结构对代码作保护时,需要在异常后使用fin原创 2021-04-06 14:30:29 · 1844 阅读 · 1 评论 -
Python通用编程规范-04 编码
文章目录4.1 `None`值比较4.2 模块导入控制 __all__4.3 字典取值的推荐方式(`get`)4.4 列表切边不推荐负步长值4.5 参数的类型检查推荐`isinstance`4.6 使用列表推导式替换循环4.7 功能代码应该封装在函数或类中4.8 精确数值计算的场景使用`Decimal`模块4.9 避免对不同对象使用同一个变量名4.10 类方法的装饰4.11 使用包(`package`)形式管理不同目录下的源码4.12 避免在代码中修改`sys.path`列表4.13 使用枚举替代`rang原创 2021-04-06 11:09:03 · 725 阅读 · 0 评论 -
Python通用编程规范-03 命名
文章目录3.1 包和模块3.2 类3.3 函数3.4 变量3.4.1 变量(`variable`)采用小写加下划线(`lower_with_under`)的风格命名。常量(`constant`)采用大写加下划线(`CAPS_WITH_UNDER`)的风格命名3.4.2 类或对象的私有成员一般用单下划线`_`开头;对于需要被继承的基类成员,如果想要防止与派生类成员重名,可用双下划线`__`开头。3.4.3 变量(`variable`)命名要有明确含义,使用完整的单词或大家基本可以理解的缩写,避免使人产生误解3原创 2021-04-06 10:35:43 · 696 阅读 · 0 评论 -
Python通用编程规范-02注释
文章目录2.1 类、接口和函数2.1.1 类和接口的注释写在类声明(class ClassName:)所在行的下一行,并向后缩进4个空格2.1.2 公共函数的注释写在函数声明(`def FunctionName(self):`)所在行的下一行,并向后缩进4个空格2.2 属性2.2.1 公共属性的注释写在属性声明的上方,与声明保持同样的缩进。行内注释应以`#`和一个空格作为开始,与后面的文字注释以一个空格隔开2.3 格式2.3.1 模块注释写在文件的顶部,导入(`import`)部分之前的位置,不需要缩进2.原创 2021-04-06 10:16:40 · 1619 阅读 · 0 评论 -
Python通用编程规范-01排版
文章目录1.1 缩进1.1.1 程序块采用4个空格缩进风格编写1.1.2 禁止混合使用空格(space)和跳格(Tab)1.1.3 新项目必须使用纯空格(spaces)来代替跳格(Tab)1.2 语句1.2.1 Python文件中必须使用UTF-8编码1.2.2 一行只写一条语句1.2.3 相对独立的程序块之间、变量说明之后必须加空行1.1 缩进1.1.1 程序块采用4个空格缩进风格编写说明:程序块采用缩进风格编写,缩进的空格数为4个,是业界通用的标准。错误示例:空格个数不为4个def loa原创 2021-04-06 10:08:38 · 1305 阅读 · 0 评论 -
python 常见的异常类型
python标准异常异常名称 描述BaseException 所有异常的基类SystemExit 解释器请求退出KeyboardInterrupt 用户中断执行(通常是输入^C)Exception 常规错误的基类StopIteration 迭代器没有更多的值GeneratorExit 生成器(generator)发生异常来通知退出StandardError 所有的内建标准异常的基类Arithmet...原创 2018-03-09 22:20:45 · 652 阅读 · 0 评论 -
IP代理池的Python实现
爬虫采集数据时,如果频繁的访问某个网站,会被封IP,有些是禁止访问3小时,有些是直接拉黑名单。为了避免被禁,一般采取的措施有三种:放慢抓取的速度,设置一个时间间隔;模拟浏览器行为,如采用Selenium + PhantomJS;设置IP代理,定期更换代理IP,让网站不认为来自一个IP。本文实现其中的第三种方法。 国内提供IP代理的网站有很多,我们以其中的一个为例:http://www.haodai...转载 2018-03-01 17:34:29 · 212 阅读 · 0 评论 -
八大排序算法的 Python 实现
本文用Python实现了插入排序、希尔排序、冒泡排序、快速排序、直接选择排序、堆排序、归并排序、基数排序。1、插入排序描述插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2)。是稳定的排序方法。插入算法把要排序的数组分成两部分:第一部分包含了这个数组的所有元素,但将最后一个元素转载 2017-12-23 23:15:44 · 137 阅读 · 0 评论 -
Python中的join()函数的用法
函数:string.join()Python中有join()和os.path.join()两个函数,具体作用如下: join(): 连接字符串数组。将字符串、元组、列表中的元素以指定的字符(分隔符)连接生成一个新的字符串 os.path.join(): 将多个路径组合后返回一、函数说明1、join()函数语法: 'sep'.join(seq转载 2018-01-17 11:28:59 · 313 阅读 · 0 评论 -
python之禅
>>> import thisThe Zen of Python, by Tim PetersBeautiful is better than ugly.Explicit is better than implicit.Simple is better than complex.Complex is better than complicated.Flat is b转载 2018-01-17 11:28:11 · 170 阅读 · 0 评论 -
python format格式控制
用法: 它通过{}和:来代替传统%方式 1、使用位置参数要点:从以下例子可以看出位置参数不受顺序约束,且可以为{},只要format里有相对应的参数值即可,参数索引从0开,传入位置参数列表可用*列表>>> li = ['hoho',18]>>> 'my name is {} ,age {}'.format('hoho',18)'my name is转载 2018-01-17 11:27:17 · 2594 阅读 · 0 评论 -
判断素数系列
判断素数:检查一个正整数N是否为素数,最简单的方法就是试除法,将该数N用小于等于根号N的所有素数去试除,若均无法整除,N则为素数[python] view plain copydef isprime(n): for i in range(2,(int(n**0.5))+1): if n % i == 0:转载 2017-12-23 22:38:02 · 745 阅读 · 0 评论 -
Python 魔法方法详解
据说,Python 的对象天生拥有一些神奇的方法,它们总被双下划线所包围,他们是面向对象的 Python 的一切。他们是可以给你的类增加魔力的特殊方法,如果你的对象实现(重载)了这些方法中的某一个,那么这个方法就会在特殊的情况下被 Python 所调用,你可以定义自己想要的行为,而这一切都是自动发生的。Python 的魔术方法非常强大,然而随之而来的则是责任。了解正确的方法去使用非转载 2017-12-23 22:39:43 · 232 阅读 · 0 评论 -
divmod数字处理函数
用divmod处理十进制转二进制很方便[python] view plain copydef gc(n,k): s = '' while n: n,f = divmod(n,k) s = str(f) + s return s print(gc(789转载 2017-12-23 22:44:10 · 712 阅读 · 0 评论 -
random模块
Python中的random模块用于生成随机数。下面介绍一下random模块中最常用的几个函数。random.randomrandom.random()用于生成一个0到1的随机符点数: 0 random.uniform random.uniform的函数原型为:random.uniform(a, b),用于生成一个指定范围内的随机符点数,两个参数其中一个是上限,一转载 2017-12-23 22:49:11 · 129 阅读 · 0 评论 -
格式化format()输出字符串
Python中格式化输出字符串使用format()函数, 字符串即类, 可以使用方法;Python是完全面向对象的语言, 任何东西都是对象;字符串的参数使用{NUM}进行表示,0, 表示第一个参数,1, 表示第二个参数, 以后顺次递加;使用":", 指定代表元素需要的操作, 如":.3"小数点三位, ":8"占8个字符空间等;还可以添加特定的字母, 如:转载 2017-12-23 22:51:12 · 2036 阅读 · 0 评论 -
Python正则表达式
正则表达式是字符一个特殊的序列,可帮助匹配或者寻找其他的字符串或一组字符串,用一个模式支持一个专门的语法。正则表达式被广泛应用于UNIX世界中。模块re在Python提供类似Perl的正则表达式全面支持。 re模块引发异常re.error如果在编译或使用正则表达式时发生错误。我们将涉及两个重要的功能,这将被用于处理的正则表达式。但是首先:有各种各样的字符,当它们在正则表达式中使用,转载 2017-12-23 22:53:22 · 154 阅读 · 0 评论 -
os、os.path 模块中关于文件、目录常用的函数使用方法
os模块中关于文件/目录常用的函数使用方法函数名使用方法 getcwd() 返回当前工作目录 chdir(path) 改变工作目录 listdir(path='.') 列举指定目录中的文件名('.'表示当前目录,'..'表示上一级目录)转载 2017-12-23 22:54:22 · 202 阅读 · 0 评论 -
Python 标准异常总结
Python标准异常总结AssertionError断言语句(assert)失败AttributeError尝试访问未知的对象属性EOFError用户输入文件末尾标志EOF(Ctrl+d)FloatingPointError浮点计算错误GeneratorExitgen转载 2017-12-23 22:55:21 · 203 阅读 · 0 评论 -
python多线程
threading最近工作上要使用到python多线程,由于之前没有写过,所以第一反应是查阅官方文档,找到了threading模块,但随即发现python实现多线程的局限:GIL (PS:GIL存在与否取决于python采用的编译器,比如cpython有GIL,JPython就没有) 虽然代码并不是CPU密集型,但本强迫症还是决定换用multiprocessing。mult转载 2017-12-24 00:26:27 · 201 阅读 · 0 评论 -
python多线程
http://www.cnblogs.com/fnng/p/3670789.html单线程 在好些年前的MS-DOS时代,操作系统处理问题都是单任务的,我想做听音乐和看电影两件事儿,那么一定要先排一下顺序。(好吧!我们不纠结在DOS时代是否有听音乐和看影的应用。^_^)[python] view plain copy转载 2018-01-17 10:44:56 · 119 阅读 · 0 评论 -
Python:使用threading模块实现多线程(转)
综述Python这门解释性语言也有专门的线程模型,Python虚拟机使用GIL(Global Interpreter Lock,全局解释器锁)来互斥线程对共享资源的访问,但暂时无法利用多处理器的优势。在Python中我们主要是通过thread和 threading这两个模块来实现的,其中Python的threading模块是对thread做了一些包装的,可以更加方便的被使用,所以我转载 2018-01-17 10:46:40 · 283 阅读 · 0 评论 -
数据结构与算法-排序篇-Python描述
前言此篇博客为 @哈士奇说喵 原创,链接为http://blog.csdn.net/MrLevo520/article/details/77829204排序算法冒泡排序 冒泡排序原理即:从数组下标为0的位置开始,比较下标位置为0和1的数据,如果0号位置的大,则交换位置,如果1号位置大,则什么也不做,然后右移一个位置,比较1号和2号的数据,和刚才的一样,转载 2018-01-17 10:47:08 · 287 阅读 · 0 评论 -
字符串的方法及注释
capitalize() 把字符串的第一个字符改为大写 casefold() 把整个字符串的所有字符改为小写 center(width) 将字符串居中,并使用空格填充至长度width的新字符串 count(sub[,start[,end]]) 返回sub在字符串里边出现的次数,转载 2017-12-23 22:34:03 · 258 阅读 · 0 评论