编程技术

小宇宙新知:饭后一根电子烟,是否仍然似神仙?

最近一个国产"电子产品"在美国引起很大争议:电子烟。乍看新闻时心想,不会是寺庙里的"电子蜡烛"那种,把真的会冒烟的烟头变成灯泡,就叫"电子烟"吧?(外星人异想天开,请轻踹)仔细读完新闻,才发现是一支小铁棒一样的东西,靠电池运行,装进一种尼古丁液体後,就可以拿来嘴边呼呼抽,享受解瘾和烟雾弥漫的神仙片刻。正想哈哈大笑说这玩意儿到底是谁用啊!随即看到下面写的"一年一亿美元而且持续稳定上升的商机",呃......(当我没笑)。进口此物的美国业者宣称"因为不含一般烟

系统 2019-08-29 22:12:45 2196

编程技术

MulticastSocket 广播学习

使用MulticastSocket实现多点广播DatagramSocket只允许数据报发送给指定的目标地址,而MulticastSocket可以将数据报以广播的方式发送到多个客户端若要使用多点广播,则需要让一个数据报标有一组目标主机地址,当数据报发出后,整个组的所有所有主机都能收到该数据报。IP多点广播(或多点发送)实现了将单一信息发送到多个接受者的广播,其思想是设置一组特殊网络地址作为多点广播地址,每一个多点广播地址都被看做一个组,当客户端需要发送、接收

系统 2019-08-29 22:10:50 2196

编程技术

【第三章】 DI 之 3.2 循环依赖 ——跟我学spri

3.2.1什么是循环依赖循环依赖就是循环引用,就是两个或多个Bean相互之间的持有对方,比如CircleA引用CircleB,CircleB引用CircleC,CircleC引用CircleA,则它们最终反映为一个环。此处不是循环调用,循环调用是方法之间的环调用。如图3-5所示:图3-5循环引用循环调用是无法解决的,除非有终结条件,否则就是死循环,最终导致内存溢出错误。Spring容器循环依赖包括构造器循环依赖和setter循环依赖,那Spring容器如何

系统 2019-08-29 22:00:28 2196

编程技术

合成(Composite)模式

合成模式有时又叫做部分-整体模式(Part-Whole)。合成模式将对象组织到树结构中,可以用来描述整体与部分的关系。合成模式可以使客户端将单纯元素与复合元素同等看待。合成模式的实现根据所实现接口的区别分为两种形式,分别称为安全模式和透明模式。透明方式作为第一种选择,在Component里面声明所有的用来管理子类对象的方法,包括add()、remove(),以及getChild()方法。这样做的好处是所有的构件类都有相同的接口。在客户端看来,树叶类对象与合

系统 2019-08-12 09:29:46 2196

Python

零基础写python爬虫之urllib2中的两个重要概念:Openers和

在开始后面的内容之前,先来解释一下urllib2中的两个个方法:info/geturlurlopen返回的应答对象response(或者HTTPError实例)有两个很有用的方法info()和geturl()1.geturl():这个返回获取的真实的URL,这个很有用,因为urlopen(或者opener对象使用的)或许会有重定向。获取的URL或许跟请求URL不同。以人人中的一个超级链接为例,我们建一个urllib2_test10.py来比较一下原始URL

系统 2019-09-27 17:54:49 2195

Python

python文件处理

1,linux文件知识补充~$ls-alldrwxr-xr-x2qiaozanqiaozan40968月621:21Templates-rw-r--r--1qiaozanqiaozan09月1707:53test.txt解读:d和-分别代表目录和普通文件。rwxr-xr-x分别代表"(用户/用户组/其它用户)“的”(可读/可写/可执行)"权限。可以使用chmod修改文件权限。如:linux中给一个文件加可执行权限:**chmod+x文件或用0~7的数字ch

系统 2019-09-27 17:54:35 2195

Python

简单了解python PEP的一些知识

前言或许你是一个初入门Python的小白,完全不知道PEP是什么。又或许你是个学会了Python的熟手,见过几个PEP,却不知道这玩意背后是什么。那正好,本文将系统性地介绍一下PEP,与大家一起加深对PEP的了解。目前,国内各类教程不可胜数,虽然或多或少会提及PEP,但笼统者多、局限于某个PEP者多,能够详细而全面地介绍PEP的文章并不多。本文的目的是:尽量全面地介绍PEP是什么,告诉大家为什么要去阅读PEP,以及列举了一些我认为是必读的PEP,最后,则是

系统 2019-09-27 17:53:09 2195

Python

python 并发编程 阻塞IO模型原理解析

阻塞IO(blockingIO)在linux中,默认情况下所有的socket都是blocking,一个典型的读操作流程大概是这样:当用户进程调用了recvfrom这个系统调用,kernel内核就开始了IO的第一个阶段:准备数据。对于networkio(网络io)来说,很多时候数据在一开始还没有到达(比如,还没有收到一个完整的UDP包),这个时候kernel(内核)就要等待足够的数据到来。等着对方把数据放到自己操作系统内存而在用户进程这边,整个进程会被阻塞。

系统 2019-09-27 17:53:03 2195

Python

Python中使用pypdf2合并、分割、加密pdf文件的代码详解

朋友需要对一个pdf文件进行分割,在网上查了查发现这个pypdf2可以完成这些操作,所以就研究了下这个库,并做一些记录。首先pypdf2是python3版本的,在之前的2版本有一个对应pypdf库。可以使用pip直接安装:pipinstallpypdf2官方文档:pythonhosted.org/PyPDF2/里面主要有这几个类:PdfFileReader。该类主要提供了对pdf文件的读操作,其构造方法为:PdfFileReader(stream,stri

系统 2019-09-27 17:53:00 2195

Python

Ubuntu安装最新的Python 3.6版本

详细见我的个人博客:Ubuntu安装Python3.6Ubuntu16.04下默认系统自带Python2和Python3.5的版本,这个版本被系统很多程序所依赖,所以不建议删除,如果使用最新的Python3.6那么我们知道编译安装源码包和系统默认包之间是没有任何影响的。一、下载tar包首先去Python官网下载Python3的源码包,网址:https://www.python.org/downloads/release/python-365/进去之后点击导

系统 2019-09-27 17:52:58 2195

Python

Python 正则表达式匹配数字及字符串中的纯数字

Python正则表达式匹配数字电话号码:\d{3}-\d{8}|\d{4}-\d{7}QQ号:[1-9][0-9]{4,}中国邮政编码:[1-9]\d{5}(?!\d)身份证:\d{15}|\d{18}ip地址:\d+\.\d+\.\d+\.\d+[1-9]\d*正整数-[1-9]\d*负整数-?[1-9]\d*整数[1-9]\d*|0非负整数-[1-9]\d*|0非正整数[1-9]\d*\.\d*|0\.\d*[1-9]\d*$正浮点数-([1-9]\d

系统 2019-09-27 17:50:40 2195

Python

Python基础之pip用法

pip是Python包管理工具,该工具提供了对Python包的查找、下载、安装、卸载的功能。注意点:1.如果只安装了一个版本的python,直接pip就可以使用2.如果同时安装了python2和python3,py-2-mpip/py-3-mpip来区分使用哪个版本的python3.直接pip默认python2pip常用命令:pip--version#查看pip的版本pip--help#查看帮助文档py-3-mpipinstallnose#安装nose包p

系统 2019-09-27 17:50:32 2195

Python

浅析python中的迭代与迭代对象

什么是python的迭代如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们称为迭代(Iteration)。(在Python中,迭代是通过for...in来完成的)Python的for循环抽象程度要高于C的for循环,因为Python的for循环不仅可以用在list或tuple上,还可以作用在其他可迭代对象上。(可以直接作用于for循环的对象统称为可迭代对象(Iterable),如list、tuple、dic

系统 2019-09-27 17:50:30 2195

Python

归纳整理Python中的控制流语句的知识点

程序流Python解释器在其最简单的级别,以类似的方式操作,即从程序的顶端开始,然后一行一行地顺序执行程序语句。例如,清单1展示了几个简单的语句。当把它们键入Python解释器中(或者将它们保存在一个文件中,并作为一个Python程序来执行)时,读取语句的顺序是从左到右。当读到一个行结束符(比如换行符)时,Python解释器就前进到下一行并继续,直到没有了代码行。清单1.一个简单的Python程序>>>i=1>>>type(i)>>>l=[0,1,2,3,

系统 2019-09-27 17:49:43 2195

Python

Python实现向钉钉群发送消息通知

一钉钉机器人使用场景钉钉机器人是钉钉群的高级扩展功能,可以简单实现将第三方服务信息聚合到钉钉群中,实现信息的自动同步,常用场景如下:聚合Github、Gitlab等源码管理服务,实现源码更新同步;聚合Trello、JIRA等项目协调服务,实现项目信息同步;支持Webhook自定义接入,实现更多可能性,例如:运维报警、自动化测试结果报告、工作&生活日程安排(上班打卡、下班吃饭、健身、读书、生日、纪念日...)的提醒;二获取自定义机器人的hook地址1.Web

系统 2019-09-27 17:48:56 2195