Python
单车欲问边
理想枫林晚,现实东篱下
展开
-
Python多线程与多进程
一、python多线程python中提供标准库threading用于对线程的支持1、创建线程python中有两种方式实现线程:1.实例化一个threading.Thread的对象,并传入一个初始化函数对象(initial function )作为线程执行的入口;import threadingimport timedef tstart(arg):time.sleep(0.5)...原创 2019-11-30 22:07:20 · 252 阅读 · 0 评论 -
WSGI,uwsgi, uWSGI理解
WSGI全称:Web Server Gateway Interface 翻译过来就是Web服务器网关接口;WSGI是一个规范协议,定义了Web服务器如何与Python应用程序进行交互,使得使用Python写的Web应用程序可以和Web服务器对接起来。在WSGI中定义了两个角色,Web服务器端称为server或者gateway,应用程序端称为application或者framework(因为WS...原创 2019-11-29 09:24:17 · 652 阅读 · 0 评论 -
Python深浅拷贝的区别
一、可变对象与不可变对象可变对象:一个对象在不改变其所指向的地址的前提下,可已修改地址中的值不可变对象:一个对象的地址是不能修改的,如果修改了这个对象的值,他所指向的地址也会改变常见不可变元素包含:int,float,complex,long,str,unicode,tuple二、深浅拷贝注意点:可变元素的拷贝深浅拷贝看上去都会生成一个相同的值,但是拷贝出来的地址不同。浅拷贝...原创 2019-11-26 20:41:04 · 1136 阅读 · 0 评论 -
python面试基础知识(三) Django部分
1、Django请求的生命周期 a. wsgi, 创建socket服务端,用于接收用户请求并对请求进行初次封装。 b. 中间件,对所有请求到来之前,响应之前定制一些操作。 c. 路由匹配,在url和视图函数对应关系中,根据当前请求url找到相应的函数。 d. 执行视图函数,业务处理【通过ORM去数据库中获取数据,再去拿到模板,然后将数据和模板进行渲染】e. 再经过所有中间件。 f. 通...原创 2019-11-17 18:25:04 · 1119 阅读 · 1 评论 -
python面试基础知识(二)
24、合并两个元组到字典a = ("liuchuanfeng", "cangjingkong")b = (20,18)# print(dict(zip(a,b)))25、元组是不可变类型,列表是可变类型# 元组# a = (1,2,3,[4,5,6,7],8)# a[3] = 2# print(a) 报错# 列表a = (1,2,3,[4,5,6,7],8)a[3][2...原创 2019-11-16 20:02:22 · 1634 阅读 · 1 评论 -
python面试基础知识(一)
1、字符串常见操作切片mystr='helloworld'mystr=mystr[1:3]# print(mystr)formatmystr2 = 'welcome, dear {name}'mystr2 = mystr2.format(name = "haha")# print(mystr2)joinmystr3 = ['luo','bo','da','za']myst...原创 2019-11-09 15:50:18 · 9662 阅读 · 28 评论 -
如何快速部署一个 python 的 Django 程序
图解:1、docker起3个容器,mysql,nginx,app用途:mysql: 后台数据库nginx: 代理app: Django程序2、配置app的conf下的xxx.ini[uwsgi]chdir = /home/jpx/auto_cmdb/auto_cmdbsocket = 172.20.0.4:80#http = 172.20.0.4:80static-ma...原创 2019-11-08 20:58:42 · 376 阅读 · 0 评论 -
算法:买卖股票的最佳时机
1、题目给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。 ...原创 2019-11-05 19:08:14 · 191 阅读 · 0 评论 -
算法:删除排序数组中的重复项
1、题目给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例一:给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。 你不需要考虑数组中超出新长度后面的元素。示例二:给定 ...原创 2019-11-02 17:13:40 · 177 阅读 · 0 评论 -
深入理解python装饰器
1、装饰器是什么?装饰器,顾名思义,就是用来“装饰”的。它长这个样:@xxx其中"xxx"是你的装饰器的名字。它能装饰的东西有:函数、类2、为什么我需要装饰器?装饰器主要用来“偷懒”比如:你写了很多个简单的函数,你想知道在运行的时候是哪些函数在执行,并且你又觉得这个没有必要写测试,只是想要很简单的在执行完毕之前给它打印上一句“Start”,那该怎么办呢?你可以这样:def fu...转载 2019-10-16 20:51:01 · 121 阅读 · 0 评论 -
解决 'widget_tweaks' is not a registered tag library. Must be one of: 报错问题
一、问题如下:'widget_tweaks' is not a registered tag library. Must be one of:admin_listadmin_modifyadmin_staticadmin_urlscachecrispy_forms_fieldcrispy_forms_filterscrispy_forms_tagscrispy_forms_ut...原创 2019-09-26 12:17:55 · 5721 阅读 · 0 评论 -
django接入xadmin无法加载样式问题
解决xadmin无法加载样式问题xadmin装完,竟然没有样式,查看了网上发现以下几种解决办法:1.官网:替换xadmin下的theme.py文件,失败。2.修改settings.py,添加 STATIC_ROOT,失败。STATIC_URL = '/static/'#如果你设置相同,等运行collectstatic时会警告.STATIC_ROOT = os.path.join(BAS...原创 2019-09-20 15:48:50 · 574 阅读 · 0 评论 -
python 冒泡排序
一、原理二、实现原创 2019-09-06 08:51:21 · 121 阅读 · 0 评论 -
层层深入python装饰器
一、内部函数def outer(): def inner(): x = 10二、闭包n = 'hello'def outer(arg): def inner(): arg return innerf = outer(n)三、装饰器:原始方式def n(): print("hello world")def outt...原创 2019-09-03 21:00:08 · 102 阅读 · 0 评论 -
Python实现寻找完美数问题
寻找完美数何为完美数?完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数。它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。如果一个数恰好等于它的因子之和,则称该数为“完全数”。第一个完全数是6,第二个完全数是28,第三个完全数是496,后面的完全数还有8128、33550336等等。6 = 1+2+328 = 1+2+4+7+14实现...原创 2019-05-28 09:44:18 · 10664 阅读 · 3 评论 -
Python百钱百鸡问题
百钱百鸡:我国古代数学家张丘建在《算经》一书中提出的数学问题:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?译文:公鸡一只5元,母鸡一只3元,小鸡3只1元。如何用100元买100只鸡。其中公鸡,母鸡,小鸡的数量各是多少方法一:穷举法// 穷举法// 分析:公鸡最多买:20只,母鸡最多买:33只。设:公鸡x只,母鸡y只,小鸡z只// 则 0<x<...原创 2019-05-28 10:53:58 · 36783 阅读 · 3 评论 -
Python斐波那契数列问题
斐波那契数列:起始两项为0和1,从第3项开始,每一项都等于前两项之和方法一 递推法// 递推法x = 0, y = 1while y < 1000: (x,y) = (y,x+y) print(y,end=' ')方法二 递归法// 递推法def fib(n): assert n >= 0, "n > 0" if n < 0: return...原创 2019-05-28 13:25:23 · 623 阅读 · 0 评论 -
python 链表反转
Python解决链表反转思路:从head节点开始遍历,依次将遍历到的节点插入head之后插入法// 定义Nodeclass Node(object): def __init__(self, value, next = None): self.val = value self.next = nextdef reserse(self): if head is None or he...原创 2019-06-12 14:55:25 · 164 阅读 · 0 评论 -
Python大球吃小球
本小游戏采用了pygame模块1.产生随机颜色的小球。2.小球具有移动、吃别的小球、绘制这3个方法。3.鼠标点击事件上源码// 大球吃小球from enum import Enum, uniquefrom math import sqrtfrom random import randintimport pygame@uniqueclass Color(Enum): ...原创 2019-05-31 16:27:19 · 2519 阅读 · 2 评论 -
Python 生成器语法
Pychon生成器通过列表生成式,我们可以直接创建一个列表。但是,受到内存限制,列表容量肯定是有限的。而且,创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元素,那后面绝大多数元素占用的空间都白白浪费了。所以,如果列表元素可以按照某种算法推算出来,那我们是否可以在循环的过程中不断推算出后续的元素呢?这样就不必创建完整的list,从而节省大量的空间。在Pyt...原创 2019-05-29 14:52:25 · 485 阅读 · 0 评论 -
python 进程与线程
多任务我们前面编写的所有的Python程序,都是执行单任务的进程,也就是只有一个线程。如果我们要同时执行多个任务怎么办?有两种解决方案:一种是启动多个进程,每个进程虽然只有一个线程,但多个进程可以一块执行多个任务。还有一种方法是启动一个进程,在一个进程内启动多个线程,这样,多个线程也可以一块执行多个任务。Python既支持多进程,又支持多线程。使用多进程from multiproce...原创 2019-06-03 16:54:13 · 130 阅读 · 0 评论 -
python 链表常见操作
链表链表由一系列不必在内存中相连的结构构成,这些对象按线性顺序排序。每个结构含有表元素和指向后继元素的指针。最后一个单元的指针指向NULL。为了方便链表的删除与插入操作,可以为链表添加一个表头。链表的基本元素有: 节点:每个节点有两个部分,左边部分称为值域,用来存放用户数据;右边部分称为指针域,用来存放指向下一个元素的指针。 head:head节点永远指向第一个节点 tail: tai...原创 2019-06-10 17:09:07 · 622 阅读 · 0 评论 -
python 2行代码解决:给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。
leetcode:旋转数组给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数.输入: [1,2,3,4,5,6,7] 和 k = 3输出: [5,6,7,1,2,3,4]解释:向右旋转 1 步: [7,1,2,3,4,5,6]向右旋转 2 步: [6,7,1,2,3,4,5]向右旋转 3 步: [5,6,7,1,2,3,4]实现思路:将后k个看做一个新数组,把前...原创 2019-06-11 14:33:10 · 3025 阅读 · 1 评论 -
Python 用列表实现栈
Python 用列表实现栈一、什么是栈想象一摞被堆起来的书,这就是栈。这堆书的特点是,最后被堆进去的书,永远在最上面。从这堆书里面取一本书出来,取哪本书最方便?肯定是最上面那本。栈这种数据结构的特点就是如此:后进先出(Last In First Out - LIFO),即最后被堆进去的数据,最先被拿出来。二、列表实现栈// An highlighted blockclass Stack...原创 2019-08-27 22:00:49 · 525 阅读 · 0 评论 -
Python面向对象进阶
1.@property装饰器类似java里的get, set方法。复杂版:class Student(object): def get_score(self): return self._score def set_score(self, value): if not isinstance(value, int): ...原创 2019-05-30 17:23:43 · 164 阅读 · 0 评论