![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python
One of them
好学近乎知,力行近乎仁,知耻近乎勇。
展开
-
汉罗塔问题
Hanoi汉诺塔是一个发源于印度的益智游戏,也叫河内塔。相传它源于印度神话中的大梵天创造的三个金刚柱,一根柱子上叠着上下从小到大64个黄金圆盘。大梵天命令婆罗门将这些圆盘按从小到大的顺序移动到另一根柱子上,其中大圆盘不能放在小圆盘上面。当这64个圆盘移动完的时候,世界就将毁灭。好吧上面这个东西是我直接百度copy的.这个源自孤古印度的游戏, 还是有点意思的, 也和递归扯上关系.但是我不明白...原创 2018-11-18 12:25:45 · 581 阅读 · 0 评论 -
python中字典
字典(dict)前言字典是python中键值对形式的对象, 键是不可变对象同时具有唯一性, 字典无序可言, 是unhashable对象.字典的使用字典的创建# 空字典>>> a = {}>>> type(a)<class 'dict'>>>> a = {'name': 'lls', 'age': 18}>&...原创 2018-10-16 12:06:37 · 379 阅读 · 0 评论 -
Python中序列类型方法
Python中序列类型的方法前言子曰:“温故而知新,可以为师矣。”–&amp;amp;lt;&amp;amp;lt;论语&amp;amp;gt;&amp;amp;gt;Ubuntu1804 + Python3.6.6列表的方法list增加性质?list具有增加性质的方法有那些呢?appendinsertextendlist的append方法&amp;amp;gt;&amp;amp;gt原创 2018-09-30 15:38:24 · 1408 阅读 · 1 评论 -
selenium+python模拟登陆B站
selenium+python模拟登陆B站&quot;&quot;&quot; B站模拟登陆即极验. 成功率一般, 具体的轨迹移动可自定义.&quot;&quot;&quot;from selenium import webdriverfrom selenium.webdriver import ActionChainsfrom selenium.webdriver.chrome.opt转载 2018-09-23 11:31:13 · 2399 阅读 · 0 评论 -
python中的filter, map内置函数
filter, map内置函数filter>>> a = filter(lambda x: x % 2 == 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])>>> a<filter object at 0x7f53c34afa90>>>> print(list(a))[2, 4, 6, 8, 10...原创 2018-10-16 17:07:18 · 321 阅读 · 0 评论 -
python中any,all函数
anyany(iterable, /) Return True if bool(x) is True for any x in the iterable. If the iterable is empty, return False.函数接收一个可迭代对象, 判断该对象中每一个元素的值, 返回bool值.如果对象中每个元素都为假(0, ”, [], (), {},...原创 2018-09-12 10:17:47 · 437 阅读 · 0 评论 -
python中cryptodome的DES
pycryptodome库安装linux: pip3 install pycryptodome导入: import Cryptowindows: pip install pycryptodomex导入: import Cryptodome使用DES加密DES为对称加密, 需要一个密钥来加密和解码数据.from Cryptodome.Cipher ...转载 2018-08-25 10:55:33 · 3688 阅读 · 0 评论 -
python中socket+multiprocessing多进程
sockect的multiprocessing多进程使用# 多进程.import socketimport multiprocessingdef func(cnn): while True: try: request = cnn.recv(1024) print(request) cn...原创 2018-08-23 18:30:54 · 3697 阅读 · 4 评论 -
scrapy-redis分布式
来自scrapy-redis包的知识前言scrapy-redis是一个python包, 是scrapy基于redis的一个组件. 用于scrapy爬虫分布式开发.在环境配置OK下, 将原有的scrapy项目copy到其他主机上运行就行.使用该工具需要环境: python3, redis, scrapy.安装window: pip install scrapy-...原创 2018-09-21 19:15:51 · 228 阅读 · 0 评论 -
来自Python的socket
简单使用socketsocket即套接字, 是网络连接端点,或者说是网络信道 , 用于网络通信.socket方法: socket(family, type[, proto])family: 一般为AF_INENTtype: 可用SOCK_STREAM(表示TCP)或SOCK_DGRAM(表示UDP)severimport socket# create serve...原创 2018-08-08 19:41:43 · 147 阅读 · 0 评论 -
Python中IO多路复用socket
使用epoll+socket来玩IO多路复用前言虽然非阻塞socket能够实现单process同时处理多个网络IO事件(client), 但是socket的setblocking是用不断轮询的方式来达到非阻塞处理client的, 所有难免会浪费CPU资源.然而, epoll(epoll 为linux中效率最高的 IO多路复用), 计算机底层的机制, 可以来检测send, recv等...原创 2018-08-13 17:26:58 · 864 阅读 · 0 评论 -
Python中非阻塞socket
来自socket的unblock(非阻塞)前言由于普通的server-socket一次只能处理一个client-socket.因为socket在accept等待接收和recv等待数据数据时都会阻塞, 每次处理client只能应对一个socket.unblock codeserver# serverimport socketserver = socket...原创 2018-08-13 17:25:55 · 9767 阅读 · 3 评论 -
来自Python的知识
Python知识总结(未完)前言安装库速度解决: pip3 install -i http://mirrors.aliyun.com/pypi/simple/ '库名'需求帮助的基本操作.&amp;gt;&amp;gt;&amp;gt; a = []&amp;gt;&amp;gt;&amp;gt; dir(a)['__add__', '__class__', '__contains__',原创 2018-08-06 16:20:48 · 605 阅读 · 0 评论 -
python中redis模块
来自redis模块的简单使用前言使用redis模块可以让我们用python和redis进行交互, 进而在python下使用redis数据库.使用安装windows: pip install redisubuntu: pip3 install redis简单操作import redis# 创建连接redis对象.red = redis...翻译 2018-08-09 16:15:21 · 472 阅读 · 0 评论 -
Python中的hashlib
来自hashlib的知识haslib是python内置模块, 这里使用python3来操作hashlib.haslib下许多加密方法, 在这里尝试使用md5加密来操作.使用md5加密生成的数据几乎不会出现重复的情况, 可以用来对一些长数据的去重.import hashlibvar_a = "hello world!"# md5方法接收byte类型的数据即b'', hex...原创 2018-08-09 15:47:06 · 364 阅读 · 0 评论 -
scrapyd的简单说明
来自scrapyd的知识前言scrapyd是运行scrapy爬虫的服务程序, 它支持以http命令方式发布、删除、启动、停止爬虫程序。而且scrapyd可以同时管理多个爬虫, 每个爬虫还可以有多个版本.特点:可以避免爬虫源码被看到.有版本控制. 可以远程启动, 停止, 删除 .scrapyd安装windows: pip install scrap...翻译 2018-08-09 13:58:08 · 1520 阅读 · 0 评论 -
树莓派&Python&SHT10
树莓派&Python&SHT10SHT10的性能.eg: xx->xx->xx 表示 min值->typ值->max值.湿度分辨率: 0.4->0.05->0.05(%RH) 或者用二进制位 8->12->12(bit)湿度精度: ±4.5 %RH (typ 条件下.) 温度分辨率: 0.04->0.01->0.01(℃) 或者用二进制位 12->14->14(bit)湿度精度: ±0.5原创 2017-11-20 14:21:39 · 1537 阅读 · 0 评论 -
Python闭包和装饰器
闭包可以简单的理解为: 函数嵌套函数,外层函数返回内层函数.来看一个简单的例子.def outFunc(x): x += 1 def inFunc(y): return x + y return inFunca = outFunc(2)print(a(1))装饰器其本身也是一种闭包.def outFunc(func): ...原创 2018-03-03 21:55:50 · 182 阅读 · 0 评论 -
Py交易的基本遵循原则.
对于py解释器的优化问题.py在对值为-5到256之间的对象进行了不可描述的处理.让我们来看看如何.>>> a = 32165165>>> b = 65165165>>> id(a),id(b)(2122778497712, 2122776349616)>>> a is bFalse恩,...原创 2018-03-03 16:40:19 · 348 阅读 · 0 评论 -
Python 集合
Python 集合集合: 元素唯一性, 无序性.即其不存在索引,元素不重复. 集合是unhashable的.定义一个集合.>>> a = {1,2,3}>>> type(a)<class 'set'>定义一个空集合.>>> b = set()>>> bset()集原创 2018-03-03 16:05:27 · 389 阅读 · 0 评论 -
Python3一行搞定9*9乘法表
Python实现9*9乘法表就等着你们进来呢.for i in range(1, 10): [print('{} x {} = {}'.format(j, i, j * i), end=' ') for j in range(1, i + 1)], print('\n')原创 2018-03-03 14:43:15 · 1546 阅读 · 0 评论 -
python中的socket+threading多线程
socket的threading多线程使用# 多线程.import threadingimport socketdef func(cnn): while True: try: request = cnn.recv(1024) print(request) cnn.send(b'%s' ...原创 2018-08-23 18:31:52 · 4221 阅读 · 0 评论 -
multiprocessing多进程资源共享
multiprocessing进程之间的资源共享# 进程.# .list(), .dict(), .queue() 为Manager()的方法.import multiprocessingdef func(alist): alist.append('a') print(alist)# 根据结果可看到 父子进程的资源是不共享的.if __name__ =...原创 2018-08-23 18:32:10 · 1192 阅读 · 0 评论 -
threading多线程资源加锁
threading多线程资源加锁控制# 线程.import threadingdef incr(n): global a for i in range(n): try: lock.acquire() # 加锁相当于单线程了, 所以加锁的位置应该少;(py自带GIL锁). a += 1 ...原创 2018-08-23 18:32:42 · 434 阅读 · 0 评论 -
python简书数据抓取
使用Python抓取简述首页标题即详情页信息""" get page_data of 'JianShu.com'.(rewrite)"""import refrom lxml import etreeimport requestsfrom bs4 import BeautifulSoupimport jsonclass PageTo: def __init_...原创 2018-08-25 10:51:34 · 391 阅读 · 0 评论 -
URL编码转换
转换url参数的编码from urllib import parsea1 = parse.quote("内容") # 转为url编码.print(a1)a2 = parse.unquote(a1) # 解码print(a2)原创 2018-08-24 11:27:02 · 1559 阅读 · 0 评论 -
python中的binascii
简单使用binasciiimport binasciia = '中文或其他'.encode() # 转为bytes.print(a)a1 = binascii.b2a_hex(a) # 转为不带\x的16进制数据.print(a1)a2 = binascii.a2b_hex(a1) # 将a1转换为带\x的16进制数据.print(a2)...原创 2018-08-24 11:26:41 · 2375 阅读 · 0 评论 -
python中base64
base64模块使用base64编码方式, 会将得到的数据(bytes类型)的每3个字节扩展为4个字节.eg: b’123456789’ 这里就是9个字节.如果输入的字节数”多出”了1个, 编码后就在末尾加2个’=’.如果输入的字节数”多出”了2个, 编码后就在末尾加1个’=’.import base64a3 = b'123'a4 = b'1234'a5 = b'...原创 2018-08-24 11:25:50 · 2565 阅读 · 0 评论 -
使用socket+gevent实现协程并发
使用协程库来实现简单并发""" 协程实现并发."""import geventfrom gevent import monkeyimport socket# just like of setBlocking(False)monkey.patch_socket() # 让内置socket封装为IO多路复用的 socket, 实现了accept不阻塞.server ...原创 2018-08-24 09:40:11 · 742 阅读 · 0 评论 -
python中gevent协程库
gevent协程库使用""" gevent 比 greenlet 更强. 协程库 协程是单线程, 遇到time.sleep() 是不能切换的. gevent基于greenlet, 不需要手动切换, 遇到阻塞自动切换. 但是越到延时不切换. gevent.sleep(2) 模拟阻塞, 会切换. gevent.spawn(func) 启动协程对象. ...原创 2018-08-24 09:39:45 · 684 阅读 · 0 评论 -
python中greenlet基本使用
greenlet模块使用""" greenlet: 底层由源生c写成. greenlet() 创建对象. obj.switch() 切换函数. 切换着运行."""import greenletdef test1(): print(1) gr2.switch() print(3) gr2.switch()def...原创 2018-08-24 09:39:31 · 755 阅读 · 0 评论 -
python中的traceback
traceback模块trackback模块可以捕获异常并打印全面的异常信息.import tracebacktry: raise ConnectionErrorexcept: traceback.print_exc() # 捕获异常, 并打印全面的异常信息....原创 2018-08-24 09:38:51 · 4003 阅读 · 0 评论 -
python中协程
协程生产器. yield 协程: 相当于 可被中断执行的函数. 可以中断地去执行不同的任务. 只是一个线程.""" generator 解释. send为生成器的一种方法, 参数指定了上一次yield语句挂起时的返回值, 所以yield应该先挂起再调用send即先使用next(). 当然也可以send(None), 这样就不用先使用next(), 毕竟send指定的...原创 2018-08-24 09:38:25 · 135 阅读 · 0 评论 -
python中自带的线进程池
py中线进程池模块.""" python 自带的pool. 线程,进程 的pool的使用差别不大. 调用pool后需要调用close来结束池. dummy Pool: obj = Pool(4) 表示启动4个线程在池中. obj.apply_async() 传入任务或任务参数. obj.close() 关闭线程池. obj.join()...原创 2018-08-24 09:37:11 · 393 阅读 · 0 评论 -
python中单线程重复利用
使用队列重复利用单线程# 重复利用的线程. 线程一般跑完就结束了.# 即创建一个线程, 给一个任务, 执行完后在等待接受下一个任务并执行, 以达到重复利用的目的.""" 线程重复利用. 对象 t 为一个线程, 执行两次不同的func 函数任务."""import threadingimport queueclass Myth(threading.Thre...原创 2018-08-23 19:29:33 · 2979 阅读 · 0 评论 -
python中socket+threading的自定义并发
socket+threading自定义线程池实现并发""" user-defined threading-pool Concurrency-server. 不保存cnn, 扔进去,读取执行,结束. 总结: 线程结束了就结束了. 所以如何实现线程不结束得去处理任务才是问题. 流程如下. 创建queue来put socket任务和get socket任务...原创 2018-08-23 19:29:17 · 664 阅读 · 0 评论 -
python中多线程消费者生产者问题
threading的消费,生产实现# 面向对象的消费者和生产者模式."""多线程."""from threading import Threadimport queueimport randomimport timeclass Producer(Thread): def __init__(self, queue): # 重写. super()....原创 2018-08-23 18:43:00 · 322 阅读 · 0 评论 -
python中多进程消费者生产者问题
multiprocessing消费,生产实现"""多进程.Manager.Queue() 创建对列对象."""from multiprocessing import Processfrom multiprocessing import Managerimport randomimport timeclass Producer(Process): def __i...原创 2018-08-23 18:42:37 · 1993 阅读 · 0 评论 -
python中队列简单使用
使用队列共享资源队列: 先进先出. queue被做为公共资源(多进程, 多线程.), 这种时候py自动帮我们加了锁(不管锁的问题).""" 线程的队列. q = queue.Queue() 创建对象. args: Queue(2)表示给参数可以指定队列长度, q.put('str') 添加对象. args: ('str',timeout=2)表示当队列慢了阻塞...原创 2018-08-23 18:42:20 · 749 阅读 · 0 评论 -
Python数值,序列类型
Python中数值类型和序列类型.py中有四种基本的数值类型和三中序列类型.定义相应变量值使用type()函数可以查看类型.数值类型&amp;amp;amp;lt;class'int'&amp;amp;amp;gt; # int为整型.&amp;amp;amp;lt;class'float'&amp;amp;amp;gt; # float为浮点型.&amp;amp;amp;lt;class'bool'原创 2018-03-06 22:22:28 · 2136 阅读 · 0 评论