自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 收藏
  • 关注

原创 Python通用编程规范-09 安全编程规范

1.9 安全编程规范1.9.1 异常行为1.9.1.1 禁止抑制或者忽略已检查异常【说明】: 编码人员常常会通过一个空的或者无意义的catch块来抑制捕获的已检查异常。每一个catch块都应该确保程序只会在继续有效的情况下才会继续运行下去。因此,catch块必须要么从异常情况中恢复,要么重新抛出适合当前catch块上下文的另一个异常以允许最邻近的外层try-catch语句块来进行恢复工作。异常会打断应用原本预期的控制流程。例如,try块中位于异常发生点之后的任何表达式和语句都不会被执行。因此,异常必须

2021-04-26 18:05:13 2305

原创 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 505 1

原创 Python通用编程规范-07 性能

文章目录1.7.1 List容量初始化在list成员个数可以预知的情况下,创建list时需预留空间正好容纳所有成员的空间说明:与Java、C++等语言的list一样,Python语言的list在append()成员时,如果没有多余的空间容纳新的成员,就会分配一块更大的内存,并将原来内存里的成员拷贝到新的内存上,并将最新append()的成员也拷贝到此新内存空间中,然后释放老的内存空间。如果append()调用次数很大,则如上过程会频繁发生,因而会造成灾难性性能下降,而不仅仅是一点下降。错误示例:m

2021-04-26 16:45:56 781

原创 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 244

原创 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 1709 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 678

原创 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 618

原创 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 1483

原创 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 1125

原创 C++核心编程 02 - 引用

02 引用2.1 引用的基本使用2.2 引用注意事项2.3 引用做函数参数2.4 引用做函数的返回值2.1 引用的基本使用作用: 给变量起别名语法: 数据类型& 别名 = 原名示例:#include <iostream>using namespace std;int main() { // 引用基本语法 // 数据类型& 别名 = 原名; int a = 10; // 创建引用 int& b = a; co

2021-03-15 14:56:29 65

原创 C++核心编程 01 - 内存分区模型

1. 内存分区模型C++ 程序在执行时, 将内存大方向划分为4个区域代码区: 存放函数体的二进制代码, 由操作系统进行管理的全局区: 存放全局变量和静态变量及全局常量栈区: 由编译器自动分配释放, 存放函数的参数值, 局部变量等堆区: 有程序员分配和释放, 若程序员不释放, 程序结束时由操作系统回收内存四区意义不同区域存放的数据, 赋予不同的生命周期, 给我们更大的灵活编程1.1 程序运行前在程序编译后, 生成了 exe 可执行程序, 未执行该程序前 分为两个区域代码区:存放 C

2021-03-12 17:14:30 87

转载 mysql5.7设置简单密码报错ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

原文链接:https://blog.csdn.net/kuluzs/article/details/51924374【问题】有时候,只是为了自己测试,不想密码设置得那么复杂,譬如只想设置root的密码为123456。SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123456');但是会报错:[plain] view plain copymysql&...

2018-04-15 19:51:06 300

转载 MYSQL常用命令

原文链接:https://www.cnblogs.com/hateislove214/archive/2010/11/05/1869889.htmlMYSQL常用命令1.导出整个数据库mysqldump -u 用户名 -p --default-character-set=latin1 数据库名 &gt; 导出的文件名(数据库默认编码是latin1)mysqldump -u wcnc -p smgp...

2018-04-11 22:00:50 129

转载 SCRAPY命令详解

原文链接:http://baijiahao.baidu.com/s?id=1569010593678770&amp;wfr=spider&amp;for=pc1.创建一个新的项目scrapy startproject +一个项目的名称我们可以进入创建的项目执行相关的命令 cd +demo12.生成爬虫scrapy genspider +文件名+网址3.运行(crawl)scrapy crawl +...

2018-04-06 15:12:35 376

原创 译:在 CentOS 7上安装Anaconda

原文(英文)网址为:https://linuxhint.com/install-anaconda-centos7/The original (English) URL is: https://linuxhint.com/install-anaconda-centos7/Anaconda Python is a distribution of Python which provides many t...

2018-04-06 13:48:11 7572

转载 CentOS 7 安装 MySQL数据库

第一种转载自:https://www.cnblogs.com/bigbrotherer/p/7241845.html在CentOS中默认安装有MariaDB,这个是MySQL的分支,但为了需要,还是要在系统中安装MySQL,而且安装完成之后可以直接覆盖掉MariaDB。1 下载并安装MySQL官方的 Yum Repository[root@localhost ~]# wget -i -c http...

2018-04-05 22:14:41 202

原创 CentOS 7 安装 Anaconda

下载地址(Linux):python3(64位):https://repo.continuum.io/archive/Anaconda3-5.1.0-Linux-x86_64.sh              (32位):https://repo.continuum.io/archive/Anaconda3-5.1.0-Linux-x86.shpython2(64位):https://repo.co...

2018-04-05 21:10:07 3287

转载 bunzip2: command not found

错误信息:bunzip2: command not found[/root/anaconda2] &gt;&gt;&gt; PREFIX=/root/anaconda2Anaconda2-5.0.0-Linux-ppc64le.sh: line 317: bunzip2: command not foundtar: This does not look like a tar archive...

2018-04-05 20:37:16 4677

原创 Centos7安装Python3的方法

由于centos7原本就安装了Python2,而且这个Python2不能被删除,因为有很多系统命令,比如yum都要用到。输入Python命令,查看可以得知是Python2.7.5版本输入which python可以查看位置,一般是位于/usr/bin/python目录下。下面介绍安装Python3的方法首先安装依赖包yum -y install gccyum -y groupinstall "De...

2018-04-05 19:48:28 618

转载 xshell输入ctrl-s后,终端冻结,怎么解决?

问题描述:按Ctrl+S键组合冻结终端屏幕。解决:这不是一个bug,ctrl-s 是停止字符输出的终端控制字符。键入ctrl-q组合键重新启用终端输出。这个组合键可能根据不同的终端设置而不同。下面的命令显示当前的设置。$ stty -a受影响的软件:All Xshell versions,putty(本人补充,应该是所有的类似软件都受影响)。...

2018-03-31 17:47:45 1347

转载 关于vi不正常退出产生的swp文件

非正常关闭vi编辑器时会生成一个.swp文件关于swp文件使用vi,经常可以看到swp这个文件,那这个文件是怎么产生的呢,当你打开一个文件,vi就会生成这么一个.(filename)swp文件 以备不测(不测下面讨论),如果你正常退出,那么这个这个swp文件将会自动删除 。下面说不测。不测分为:1当你用多个程序编辑同一个文件时。         2非常规退出时。第一种情况的话,为了避免同一个文件产...

2018-03-31 17:35:00 284

原创 python 常见的异常类型

python标准异常异常名称 描述BaseException 所有异常的基类SystemExit 解释器请求退出KeyboardInterrupt 用户中断执行(通常是输入^C)Exception 常规错误的基类StopIteration 迭代器没有更多的值GeneratorExit 生成器(generator)发生异常来通知退出StandardError 所有的内建标准异常的基类Arithmet...

2018-03-09 22:20:45 629

转载 IP代理池的Python实现

爬虫采集数据时,如果频繁的访问某个网站,会被封IP,有些是禁止访问3小时,有些是直接拉黑名单。为了避免被禁,一般采取的措施有三种:放慢抓取的速度,设置一个时间间隔;模拟浏览器行为,如采用Selenium + PhantomJS;设置IP代理,定期更换代理IP,让网站不认为来自一个IP。本文实现其中的第三种方法。 国内提供IP代理的网站有很多,我们以其中的一个为例:http://www.haodai...

2018-03-01 17:34:29 186

转载 Python中的join()函数的用法

函数:string.join()Python中有join()和os.path.join()两个函数,具体作用如下:    join():    连接字符串数组。将字符串、元组、列表中的元素以指定的字符(分隔符)连接生成一个新的字符串    os.path.join():  将多个路径组合后返回一、函数说明1、join()函数语法:  'sep'.join(seq

2018-01-17 11:28:59 279

转载 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 144

转载 python format格式控制

用法:  它通过{}和:来代替传统%方式 1、使用位置参数要点:从以下例子可以看出位置参数不受顺序约束,且可以为{},只要format里有相对应的参数值即可,参数索引从0开,传入位置参数列表可用*列表>>> li = ['hoho',18]>>> 'my name is {} ,age {}'.format('hoho',18)'my name is

2018-01-17 11:27:17 2545

转载 数据结构与算法-排序篇-Python描述

前言此篇博客为 @哈士奇说喵 原创,链接为http://blog.csdn.net/MrLevo520/article/details/77829204排序算法冒泡排序​ 冒泡排序原理即:从数组下标为0的位置开始,比较下标位置为0和1的数据,如果0号位置的大,则交换位置,如果1号位置大,则什么也不做,然后右移一个位置,比较1号和2号的数据,和刚才的一样,

2018-01-17 10:47:08 258

转载 Python:使用threading模块实现多线程(转)

综述Python这门解释性语言也有专门的线程模型,Python虚拟机使用GIL(Global Interpreter Lock,全局解释器锁)来互斥线程对共享资源的访问,但暂时无法利用多处理器的优势。在Python中我们主要是通过thread和 threading这两个模块来实现的,其中Python的threading模块是对thread做了一些包装的,可以更加方便的被使用,所以我

2018-01-17 10:46:40 252

转载 python多线程

http://www.cnblogs.com/fnng/p/3670789.html单线程   在好些年前的MS-DOS时代,操作系统处理问题都是单任务的,我想做听音乐和看电影两件事儿,那么一定要先排一下顺序。(好吧!我们不纠结在DOS时代是否有听音乐和看影的应用。^_^)[python] view plain copy

2018-01-17 10:44:56 100

转载 python多线程

threading最近工作上要使用到python多线程,由于之前没有写过,所以第一反应是查阅官方文档,找到了threading模块,但随即发现python实现多线程的局限:GIL (PS:GIL存在与否取决于python采用的编译器,比如cpython有GIL,JPython就没有) 虽然代码并不是CPU密集型,但本强迫症还是决定换用multiprocessing。mult

2017-12-24 00:26:27 174

转载 八大排序算法的 Python 实现

本文用Python实现了插入排序、希尔排序、冒泡排序、快速排序、直接选择排序、堆排序、归并排序、基数排序。1、插入排序描述插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2)。是稳定的排序方法。插入算法把要排序的数组分成两部分:第一部分包含了这个数组的所有元素,但将最后一个元素

2017-12-23 23:15:44 116

转载 Python 标准异常总结

Python标准异常总结AssertionError断言语句(assert)失败AttributeError尝试访问未知的对象属性EOFError用户输入文件末尾标志EOF(Ctrl+d)FloatingPointError浮点计算错误GeneratorExitgen

2017-12-23 22:55:21 186

转载 os、os.path 模块中关于文件、目录常用的函数使用方法

os模块中关于文件/目录常用的函数使用方法函数名使用方法  getcwd()  返回当前工作目录  chdir(path)  改变工作目录  listdir(path='.')  列举指定目录中的文件名('.'表示当前目录,'..'表示上一级目录)

2017-12-23 22:54:22 182

转载 Python正则表达式

正则表达式是字符一个特殊的序列,可帮助匹配或者寻找其他的字符串或一组字符串,用一个模式支持一个专门的语法。正则表达式被广泛应用于UNIX世界中。模块re在Python提供类似Perl的正则表达式全面支持。 re模块引发异常re.error如果在编译或使用正则表达式时发生错误。我们将涉及两个重要的功能,这将被用于处理的正则表达式。但是首先:有各种各样的字符,当它们在正则表达式中使用,

2017-12-23 22:53:22 130

转载 格式化format()输出字符串

Python中格式化输出字符串使用format()函数, 字符串即类, 可以使用方法;Python是完全面向对象的语言, 任何东西都是对象;字符串的参数使用{NUM}进行表示,0, 表示第一个参数,1, 表示第二个参数, 以后顺次递加;使用":", 指定代表元素需要的操作, 如":.3"小数点三位, ":8"占8个字符空间等;还可以添加特定的字母, 如:

2017-12-23 22:51:12 1997

转载 random模块

Python中的random模块用于生成随机数。下面介绍一下random模块中最常用的几个函数。random.randomrandom.random()用于生成一个0到1的随机符点数: 0 random.uniform  random.uniform的函数原型为:random.uniform(a, b),用于生成一个指定范围内的随机符点数,两个参数其中一个是上限,一

2017-12-23 22:49:11 105

转载 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 649

转载 Python 魔法方法详解

据说,Python 的对象天生拥有一些神奇的方法,它们总被双下划线所包围,他们是面向对象的 Python 的一切。他们是可以给你的类增加魔力的特殊方法,如果你的对象实现(重载)了这些方法中的某一个,那么这个方法就会在特殊的情况下被 Python 所调用,你可以定义自己想要的行为,而这一切都是自动发生的。Python 的魔术方法非常强大,然而随之而来的则是责任。了解正确的方法去使用非

2017-12-23 22:39:43 211

转载 判断素数系列

判断素数:检查一个正整数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 568

转载 字符串的方法及注释

capitalize()  把字符串的第一个字符改为大写  casefold()  把整个字符串的所有字符改为小写  center(width)  将字符串居中,并使用空格填充至长度width的新字符串  count(sub[,start[,end]])  返回sub在字符串里边出现的次数,

2017-12-23 22:34:03 232

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除