编程技术

过程扩展与放置钩子

前面我们谈到了功能扩展对维护一个软件的巨大作用。实际上,正是因为功能在不断地扩展,才使得我们的很多软件质量在下降。因此,如何进行功能扩展,我们不得不察。每当新功能到来的时候,不用急急匆匆就开始编码,我们应当仔细思考我们的设计,即使是时间非常紧张的项目。用更多的时间去思考与设计,才会用更少的时间去做更简单的设计与编码。在这里,我提倡的是设计应当简单到发指,因为它体现的是一种精巧绝伦,它会使我们的思路更清晰,维护更简单,变更更容易。只有经过仔细的思考,才会做出

系统 2019-08-29 21:59:07 2399

编程技术

论缓存之第一

看一粒沙中的世界,一朵野花中的天堂。把无限握于掌中,把永恒握于瞬间。——威廉•布莱克开始讨论缓存之前,让我们先来讨论讨论另外一个问题:理论和实践.从ahuaxuan接触的程序员来看,有的程序员偏实践,有的程序员偏理论,但是这都是不好的行为,理论和实践同样重要,我们在做很多核心的算法的时候,没有理论根本无从下手,而在我们多年的实践中,不总结理论就不能加深自己的理解.所以理论和实践同等重要.缓存是当今各种软件或者硬件系统中不可缺少的技术之一,所以对每个程序员来

系统 2019-08-12 09:30:29 2399

Python

Python对象体系深入分析

本文较为详细的分析了了Python的对象体系。分享给大家供大家参考。具体如下:Guido用C语言创造了Python,在Python的世界中一切皆为对象.一.C视角中的Python对象让我们一起追溯到源头,Python由C语言实现,且向外提供了C的APIhttp://docs.python.org/c-api/index.html.我们思考问题的时候,可能对于对象这种东西很容易理解,而计算机能理解的只有0,1序列这样的字节序列,从根本上讲,我们所说的计算机语

系统 2019-09-27 17:54:54 2398

Python

python多进程和多线程究竟谁更快(详解)

python3.6threading和multiprocessing四核+三星250G-850-SSD自从用多进程和多线程进行编程,一致没搞懂到底谁更快。网上很多都说python多进程更快,因为GIL(全局解释器锁)。但是我在写代码的时候,测试时间却是多线程更快,所以这到底是怎么回事?最近再做分词工作,原来的代码速度太慢,想提速,所以来探求一下有效方法(文末有代码和效果图)这里先来一张程序的结果图,说明线程和进程谁更快一些定义并行是指两个或者多个事件在同一

系统 2019-09-27 17:54:48 2398

Python

Python中的高阶函数(内置高阶函数map()、reduce

一、什么是高阶函数在计算机编程语言中,高阶函数指的是接受函数作为输入或输出的函数。二、高阶函数的特性函数本身也可以赋值给变量变量可以指向函数f=abs#abs()取绝对值函数,将函数赋给变量fprint(f(-10))#输出结果-10的绝对值三、内置高阶函数map()map():接收两个参数,一个是函数一个是序列map()将传入的函数依次作用到序列的每个元素,并且把结果作为新的序列返回例:对一个序列[-1,3,-4,-5]的每一个元素求绝对值代码:结果:例

系统 2019-09-27 17:54:46 2398

Python

Python+sklearn随机森林算法使用入门

随机森林是一种集成学习方法,基本思想是把几棵不同参数的决策树(参考:Python+sklearn决策树算法使用入门)打包到一起,每棵决策树单独进行预测,然后计算所有决策树预测结果的平均值(适用于回归分析)或所有决策树“投票”得到最终结果(适用于分类)。在随机森林算法中,不会让每棵树都生成最佳的节点,而是在每个节点上随机选择一个特征进行分裂。扩展库sklearn在ensemble模块中提供了随机森林分类器RandomForestClassifier和随机森林

系统 2019-09-27 17:52:35 2398

Python

如何利用Python模拟GitHub登录详解

前言最近学习了Fiddler抓包工具的简单使用,通过抓包,我们可以抓取到HTTP请求,并对其进行分析。现在我准备尝试着结合Python来模拟GitHub登录。Fiddler抓包分析首先,我们想要模拟一个网站的登录,我们必须要简单了解其大致过程。在这里,我通过Fiddler来抓取GitHub登录的请求,从网页上登录的URL为:https://github.com/login,抓包结果如下:左边的是会话列表,右边的是请求和响应的数据。一般情况下,登录都是用PO

系统 2019-09-27 17:52:33 2398

Python

24招神技,秒变Python开发大神!

24招神技,秒变Python开发大神!19/100发布文章Pythonlaowan选择文件一,分析代码运行时间第1式,测算代码运行时间平凡方法快捷方法(jupyter环境)第2式,测算代码多次运行平均时间平凡方法快捷方法(jupyter环境)如果你依然在编程的世界里迷茫,可以加入我们的Python学习扣qun:784758214,看看前辈们是如何学习的。交流经验。从基础的python脚本到web开发、爬虫、django、数据挖掘等,零基础到项目实战的资料都

系统 2019-09-27 17:51:56 2398

Python

Python函数学习-参数类型

函数的参数在定义Python函数时可定义形参,这些参数在调用时候才能确定具体的值,由函数的调用者负责为行参传入参数值函数的参数类型一、位置参数也叫必传参数,顺序参数,是最重要的,也是必须在调用函数时明确提供的参数!位置参数必须按先后顺序,一一对应,个数不多不少的传递!说明:a,b,c是函数add的行参,没有具体的值,只有在add(x,y,z)是才被传入值,a=x=1,b=y=2,c=z=3,其中x,y,z叫做实参,add(4,5,6,7),add(5,7)

系统 2019-09-27 17:50:17 2398

Python

Python爬虫偷懒神器!快速一键生成Python爬虫请求头

今天介绍个神奇的网站!堪称爬虫偷懒的神器!我们在写爬虫,构建网络请求的时候,不可避免地要添加请求头(headers),以mdn学习区为例,我们的请求头是这样的:一般来说,我们只要添加user-agent就能满足绝大部分需求了,Python代码如下:在学习过程中有什么不懂得可以加我的python学习交流扣扣qun,784758214群里有不错的学习视频教程、开发工具与电子书籍。与你分享python企业当下人才需求及怎么从零基础学习好python,和学习什么内

系统 2019-09-27 17:50:07 2398

Python

详解Python中for循环的使用

for循环本系列前面“探索Python,第5部分:用Python编程”一文讨论了if语句和while循环,讨论了复合语句以及适当缩进Python语句来指示相关Python代码块。该文的结尾介绍了Pythonfor循环。但就其使用和功能来说,for循环更值得关注,所以本文单独讲述该循环。for循环有一个简单的语法,使您可以从容器对象中提取单个项目并对其进行某些操作。简单地说,使用for循环,可以迭代中对象集合的项目。对象集合可以是任何Python容器类型,包

系统 2019-09-27 17:49:45 2398

Python

一文搞懂Python可迭代、迭代器和生成器的概念

关于我一个有思想的程序猿,终身学习实践者,目前在一个创业团队任teamlead,技术栈涉及Android、Python、Java和Go,这个也是我们团队的主要技术栈。Github:https://github.com/hylinux1024微信公众号:终身开发者(angrycode)在Python中可迭代(Iterable)、迭代器(Iterator)和生成器(Generator)这几个概念是经常用到的,初学时对这几个概念也是经常混淆,现在是时候把这几个概

系统 2019-09-27 17:49:39 2398

Python

python并行处理任务时 该用多进程?还是该用多线程?

在python并行处理任务时要使用多线程还是多进程?说到这个话题,必须要提的GIL(GlobalInterpreterLock)全局解释锁,当Cpython每次执行字节码时都要先申请这个锁。那么问题就来了,如果使用多线程是比也会受到影响。多线程和多进程程序比较,哪个性能更高?还是拿一个实例运行来看看吧~#写一个简单的例子,计算100W个随机数的和8次,同时将分散到8个线程进行运算。#thread.py#!/usr/bin/envpythonimportra

系统 2019-09-27 17:48:57 2398

Python

【Python数据分析】概述与探索分析笔记

目录第一章数据分析简介第二章数据获取第三章单因子探索分析参考资料第一章数据分析简介1-1、数据分析流程A数据获取B探索分析与可视化(报表)C预处理理论(去除脏数据)D分析建模E模型评估其中,CDE为数据建模与挖掘【核心内容】1-2、前置知识前置知识:Python3,Python数据分析-基础技术篇;数学;编译环境:Python3.6+,Pycharm,Anaconda1-3、数据分析概述数据分析的含义与目标:统计分析方法,提取有用信息,并进行总结与概括的过

系统 2019-09-27 17:48:40 2398

Python

Python中文编码那些事

首先,要明白encode()和decode()的区别encode()的作用是将Unicode编码的字符串转换为其他编码格式。例如:st1.encode("utf-8")这句话的作用是将Unicode编码的st1编码为utf-8编码的字符串decode()的作用是把其他编码格式的字符串转换成Unicode编码的字符串。例如:st2.decode("utf-8")这句话的作用是将utf-8编码的字符串st2解码为Unicode编码的字符串第二,除Unicode

系统 2019-09-27 17:48:16 2398