
python学习笔记
chrispink_yang
To learn, to cope.
展开
-
Python生成随机不重复数组
GolangPythondef get_random_list(start,stop,n): ''' 生成范围在[start,stop], 长度为n的数组. 区间包含左右endpoint ''' arr = list(range(start, stop+1)) shuffle_n(arr,n) return arr[-n:]def s...原创 2020-02-17 01:32:18 · 3316 阅读 · 1 评论 -
Python3使用讯飞AIUI的WEB API进行开发
解决问题AIUI的官方文档当中仅有python 2.7的实现, 在python 3 中处理字符编码方式不同,官方github当中的python 3实现不完整。因此这里贴出自己在应用中的实现。环境配置python 3.5Github地址https://github.com/chrispinkyang/AIUI_Web_API.git源码import requestsimport ti...原创 2018-09-20 10:29:16 · 3005 阅读 · 2 评论 -
Python3使用xmlrpc实现简易RPC调用
服务端代码:from xmlrpc.server import SimpleXMLRPCServerdef speak_your_words(s): print("message from client:", s) return "message from server: " + sserver = SimpleXMLRPCServer(("localhost",9999...原创 2018-09-25 15:55:07 · 2882 阅读 · 0 评论 -
python中base64编码与解码
引言:在一些项目中,接口的报文是通过base64加密传输的,所以在进行接口自动化时,需要对所传的参数进行base64编码,对拿到的响应报文进行解码;Base64编码是一种“防君子不防小人”的编码方式。广泛应用于MIME协议,作为电子邮件的传输编码,生成的编码可逆,后一两位可能有“=”,生成的编码都是ascii字符。优点:速度快,ascii字符,肉眼不可理解缺点:编码比较长,非常容易被破解,...转载 2018-09-18 10:30:06 · 10777 阅读 · 0 评论 -
[2018腾讯校园招聘模拟笔试编程题]小Q的歌单(python实现)
链接:小Q的歌单 来源:牛客网 小Q有X首长度为A的不同的歌和Y首长度为B的不同的歌,现在小Q想用这些歌组成一个总长度正好为K的歌单,每首歌最多只能在歌单中出现一次,在不考虑歌单内歌曲的先后顺序的情况下,请问有多少种组成歌单的方法。 输入描述: 每个输入包含一个测试用例。 每个测试用例的第一行包含一个整数,表示歌单的总长度K(1<=K<=1000)。 接下来的一行...原创 2018-09-06 22:22:46 · 693 阅读 · 0 评论 -
win10下安装pyltb的"failed with exit status 2"问题解决
配置:系统: win 10python version : 3.6pyltp version : 0.2.1pip version: 18.0问题描述:执行pip install pyltp在build cpp阶段错误, 系统已安装VS2017.错误信息:...c:\users\52489\appdata\local\temp\pip-install-d...原创 2018-09-12 10:53:00 · 2236 阅读 · 5 评论 -
Django从已存在的Mysql数据库表开始项目
Django 的ORM自带的migrate指令很适合从零启动一个项目,并让django自动跟踪model class的变动,可以实现完全脱离手动SQL操作构建项目。 但更多时候,我们的项目都会从现有的数据库着手开发,Django也有对应的命令方便我们执行迁移。1. 设置setting中的database信息# setting.pyDATABASES = { 'default...原创 2018-09-04 17:29:23 · 4690 阅读 · 5 评论 -
Celery ETA任务重复提交的问题解决
## 2018.09.28更新pypi上有模块[celery_once](https://pypi.org/project/celery_once/)可解决重复提交和队列管理的问题。暂未实践。因为业务需求,使用了celery配置eta(estimated time of arrival)的功能,传入datetime类型的值,让任务在具体的某个时间执行。 在Django根目录执行查看任务计划,看到了许多重复提交到worker的eta任务。 查看语句原创 2018-08-27 15:15:31 · 4933 阅读 · 0 评论 -
Django Models的create都做了些什么。
主要问题Modelsmanager.create()都完成了哪些操作.基本功能根据官方文档django document 的介绍只有一句话: A convenience method for creating an object and saving it all in one step. create()是一个将1) 创建类对象 和 2) 保存进数据库 两个操作合二为一的语句....原创 2018-08-14 03:03:16 · 5828 阅读 · 0 评论 -
Linux(Ubuntu)执行pip3:ImportError: cannot import name 'main'错误解决
环境:WSL(ubuntu 16) Command:sudo pip3 install django-celery错误日志:Traceback (most recent call last): File "/usr/bin/pip3", line 9, in <module> from pip import mainImportError: cann...原创 2018-07-31 10:11:51 · 1380 阅读 · 0 评论 -
Django设置全局对象,仅在启动时初始化一次.
解决问题:HTTP是无状态的,但是我们希望记录一些前后多次requests中有关联的数据, 又或许在计算密集的模块有些只读模型数据只需要保存一份,供多次请求读取,而不需要每次请求都重新读取一遍.实现方法:将共享python变量写在views函数之外,view函数内通过global访问.from django.shortcuts import renderfrom django.http ...原创 2018-09-21 11:46:21 · 12544 阅读 · 0 评论 -
python求最大公约数与最小公倍数
刷题遇到了很多次 一直没来得及好好记下.原理辗转相除法代码#最大公约数def gcd(a,b): a,b = max(a,b),min(a,b) a,b = b,a%b while b: a, b = b, a%b return a#最小公倍数def lcm(a,b): return a*b//gcd(a,b)...原创 2018-09-25 23:41:43 · 2869 阅读 · 0 评论 -
python3 json中文乱码输出问题
问题描述dic = {'words':"帮我打开电视"}>>> import json>>> json.dumps(dict)'{"words": "\\u5e2e\\u6211\\u6253\\u5f00\\u7535\\u89c6"}'输出中文依然为unicode编码.原因json解析中文会默认使用的ascii编码.解决方法指定ensur..原创 2018-09-21 16:39:14 · 5333 阅读 · 1 评论 -
从Python到Golang学习笔记
从本科学过C/C++和java,但是实际项目中用的多的是python. 因此python深刻影响了我的编程思维, 从python转到Go, 让我总结了一些学习笔记.静态/动态如果你在python之前没有C或JAVA等静态语言的代码量积累, 接触go之后, 编程习惯上最大的各种不同基本都可以归根于动态语言与静态语言的区别.简单来说,两门语言各自的编译解释的方式不同,造成了编程时思维的不同.py...原创 2019-05-23 04:01:06 · 1058 阅读 · 0 评论 -
python实现观察者设计模式
参考文章:观察者模式 | 菜鸟教程教程由java实现, 本文以python实现.功能相同.1. 观察者模式实现效果Subject类为主, 当subject对象的值改动时.发布通知到各个注册了的观察者对象当中. 观察者接受通知并分别输出值的二进制,十进制,十六进制.2. 关键逻辑subject中维护一个观察者列表observers, 观察者主动注册, 通知时遍历列表.观察者类继承于同...原创 2019-01-17 18:13:14 · 367 阅读 · 0 评论 -
Django 多线程问题是怎么回事?
作者:Pegasus Wang链接:https://www.zhihu.com/question/56472691/answer/292510026来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。简单的说就是服务端监听 socket 每次 accept 一个新的请求后,开一个线程处理 这个 socket 客户连接。如果你对底层实现原理感兴趣,可以继续看下去,从...转载 2018-10-24 10:14:45 · 3134 阅读 · 0 评论 -
深入理解 GIL:如何写出高性能及线程安全的 Python 代码
本文由 伯乐在线 - 郑芸 翻译。未经许可,禁止转载!英文出处:A. Jesse。欢迎加入翻译组。6岁时,我有一个音乐盒。我上紧发条,音乐盒顶上的芭蕾舞女演员就会旋转起来,同时,内部装置发出“一闪一闪亮晶晶,满天都是小星星”的叮铃声。那玩意儿肯定俗气透了,但我喜欢那个音乐盒,我想知道它的工作原理是什么。后来我拆开了,才看到它里面一个简单的装置,机身内部镶嵌着一个拇指大小的金属圆筒,当它转动时会拨弄...转载 2018-10-23 12:03:07 · 258 阅读 · 0 评论 -
使用supervisor管理uwsgi日志中大量waiting for uwsgi to die的问题解决
问题描述:使用supervisor管理uwsgi进程, 执行supervisorctl reload从日志中发现重启过程漫长,一直在等待uwsgi关闭2018-10-10 14:36:43,457 INFO waiting for uwsgi to die2018-10-10 14:36:46,461 INFO waiting for uwsgi to die2018-10-10 1...原创 2018-10-10 14:51:03 · 1853 阅读 · 4 评论 -
Uwsgi日志发生unavailable modifier requested错误解决
问题描述:浏览器访问目标页面, 提示nginx 404查看nginx的access.log中发现正确转发请求到uwsgi在uwsgi的日志中发现-- unavailable modifier requested: 0 ---- unavailable modifier requested: 0 ---- unavailable modifier requested: 0 --原因分...原创 2018-10-10 11:34:35 · 1512 阅读 · 0 评论 -
三硬币问题的EM算法实现
代码:def three_coins(pi,p,q,y,steps): e = 0.00001 # E-step for _ in range(steps): miu = [] for yi in y: miu.append((pi*(p**yi)*((1-p)**(1-yi)))/(pi*(p**yi)*((1-p...原创 2018-10-08 23:24:46 · 1135 阅读 · 2 评论 -
Optimizing slow Django REST Framework performance
The Django REST Framework allows Django developers to build simple yet robust standards-based REST APIs for their applications. We've used it successfully on a number of Django web design projec...转载 2018-10-08 10:36:52 · 332 阅读 · 0 评论 -
从Function-Based-View到ViewSet——Django Restframework关于views的总结与源码分析
简介:本文是django restframework官方文档quickstart tutorial的学习笔记之一, 对views.py的编码风格进行一些总结与讨论. 总结了django rest开发的几种编码风格, 从最基本的function-base-view到class-base-view再到最终的ViewSet,循序渐进,抽象程度越来越高. 官方文档中并没有对此进行单独的介绍,因此本文...原创 2018-07-27 03:03:41 · 1169 阅读 · 0 评论 -
python使用Thread的setDaemon启动后台线程
多线程编程当中, 线程的存在形态比较抽象. 通过前台线程\后台线程, 可以有效理解线程运行顺序.(复杂的多线程程序可以通过设置线程优先级实现) 后台线程与前台线程的直接区别是, 1)setDaemon(True): 当主线程退出时,后台线程随机退出; 2)setDaemon(False)(默认情况): 当主线程退出时,若前台线程还未结束,则等待所有线程结束,相当于在程序末尾加入join()....原创 2018-06-14 18:28:58 · 10198 阅读 · 1 评论 -
常用排序算法的python实现
总是不能在网络上找到完整正确简洁的排序算法的python写法, 还是自己写一篇作为归纳.1.选择排序def selectsort(a): for i in range(len(a)-1): for j in range(i+1,len(a)): if a[j] &amp;amp;amp;lt; a[i]: a[i],a[j] = a[...原创 2018-05-29 17:58:55 · 472 阅读 · 0 评论 -
leetcode:402. Remove K Digits
Remove K Digits Given a non-negative integer num represented as a string, remove k digits from the number so that the new number is the smallest possible.Note: The length of num is less than 10002...原创 2018-03-12 17:07:49 · 246 阅读 · 0 评论 -
python实现二叉树的相关算法(持续更新)
定义树结构class Tree(object): def __init__(self,val): self.val = val self.right = None self.left = None前序遍历def pre_iter(node): if not node: return prin...原创 2018-03-04 21:03:32 · 1519 阅读 · 0 评论 -
python用递归实现反转一个整型数(记2017腾讯测试工程师面试)
废话不多说, 我知道大多数人查算法题目的目的.先直接贴出我的solution.def revint(n): a,b = divmod(n,10) if a == 0: return b else: w = 10**len(str(a))#w变量必不可少,如果有不用w变量的方法希望分享 return b*w + revi...原创 2018-03-03 22:24:47 · 1119 阅读 · 0 评论 -
python实现合并两个排序链表
输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。迭代方法 def Merge(self, pHead1, pHead2): p1, p2 = pHead1, pHead2 if p1 and p2: if p1.val < p2.val: ...原创 2018-03-09 17:03:03 · 5140 阅读 · 6 评论 -
python快速排序的各种实现方法
1.常用方法 坐在马桶上看算法:快速排序 这篇文章的思路挺清晰的,但是其实步骤上存在一些小问题,用来帮助理解快排的原理即可,实际实现时逻辑上有一些小的差异. 步骤归纳: * 排序数组为a,游标left从a的最左边开始,游标right从最右边开始 * 把pivot记为数组第一个数(即a[left]),作为数组左右的分界值 * 从右边开始向左移动游标(right = right - 1)直原创 2018-02-06 18:51:03 · 1177 阅读 · 0 评论 -
python实现单例模式的四种方式及相关知识解释
python实现单例模式的四种方式及相关知识解释模块模式装饰器模式父类重写new继承元类重写call单例模式作为最常用的设计模式,在面试中很可能遇到要求手写.从最近的学习python的经验而言,singleton实现的四种方法都是python的重要特征,反过来也刚好是几种特征的最佳实现.(比如你平常开发中很难遇到几个需要写元类的地方)如果不能随手写出某种实现,说明你对于那种实现的原创 2018-01-29 21:57:45 · 1913 阅读 · 0 评论 -
天才排序算法:睡眠排序python使用协程实现
在Genius sorting algorithm: Sleep sort中看到这个排序算法,看了原理之后确实让人会心一笑 原理就是为一个长度为n的待排序数组创建一个长度为n的线程向量,将待排序数字作为线程sleep函数的参数,sleep完成后输出数字,那么数字越大sleep时间越长,就排到越后面. 下面贴出python实现.import asyncioasync def sleep原创 2018-01-29 18:38:03 · 770 阅读 · 0 评论 -
python的归并排序(mergesort)实现
def merge(left, right): res = [] while left and right: if left[0] &amp;amp;lt; right[0]: res.append(left.pop(0)) else: res.append(right.pop(0)) res = res + ...原创 2018-02-09 19:32:36 · 5590 阅读 · 5 评论 -
Anaconda下的python 3.6的from pillow import Image解决方法
今天在使用一个tensorflow项目时遇到这个DLL导入问题,总算是遇到了第一次需要看源码解决的问题.ImportError Traceback (most recent call last)&amp;lt;ipython-input-3-0af60833c10b&amp;gt; in &amp;lt;module&amp;gt;() 6 imp...原创 2018-02-07 21:35:29 · 13586 阅读 · 0 评论 -
python实现反向打印单向链表的两种方法
先给出链表定义class ListNode: def __init__(self, x): self.val = x self.next = None若允许开辟新的内存空间,直接使用栈数据结构,遍历完链表后依次pop输出.class Solution: def printListFromTailToHead(self, listNod...原创 2018-03-05 15:43:18 · 2153 阅读 · 0 评论 -
二维数组中的查找(python实现)
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。class Solution: # array 二维列表 def Find(self, target, array): # write code here m, n = le...原创 2018-03-05 16:13:40 · 4929 阅读 · 0 评论 -
根据算法导论实现KMP算法(python 3)
在我看来阮一峰的字符串匹配的KMP算法 对于入门挺好,但是对于KMP的实现很不友好,被绕进去了很多次. 始终觉得<算法导论>里面的方法更加简洁一点,虽然需要自己花点时间演算一下才能理解.#计算next数组def compute_prefix(p): m = len(p) res = [-1 for _ in range(m)]#置-1作为没有找到匹配前缀的标志...原创 2018-05-29 15:59:38 · 565 阅读 · 0 评论 -
python实现字符串的全排列
python没有指针操作, 修改字符串需改为list类型处理def permutation(s,i): if i == len(s): print(s) else: for j in range(i,len(s)): s[j],s[i] = s[i],s[j] permutation(s,i+1...原创 2018-06-04 17:50:41 · 9947 阅读 · 1 评论 -
python使用multiprocessing.Manager出现PermissionError: [WinError 5] 拒绝访问。
从廖雪峰教程中运行分布式进程 的例子,在windows环境运行出现PermissionError: [WinError 5] 错误日志:Traceback (most recent call last): File "C:\Users\52489\Desktop\Python\mstwrk\task_master.py", line 17, in <module> ...原创 2018-05-03 20:42:55 · 15581 阅读 · 1 评论 -
python使用mmap模块实现进程间通信与文件映射
import mmap# 创建一个文件with open('hello.txt', 'wb') as f: f.write(b&amp;amp;quot;Hello Python!\n&amp;amp;quot;)with open('hello.txt', 'r+b') as f: # mmap基本上接收两个参数,(文件描述符,读取长度),size 为0表示读取整个文件 mm = mmap.mmap(f.f...原创 2018-04-11 13:58:25 · 4668 阅读 · 0 评论 -
[Leetcode]84. Largest Rectangle in Histogram
84. Largest Rectangle in Histogram Given n non-negative integers representing the histogram’s bar height where the width of each bar is 1, find the area of largest rectangle in the histogram. Abov...原创 2018-03-28 15:01:42 · 151 阅读 · 0 评论