
Python
文章平均质量分 68
LIJZ_Python
科技特长生资源总结与分享
展开
-
Python中的logging模块
1. 基本用法import loggingimport sys# 获取logger实例,如果参数为空则返回root loggerlogger = logging.getLogger("AppName")# 指定logger输出格式formatter = logging.Formatter('%(asctime)s %(levelname)-8s: %(message)s')# ...原创 2018-03-21 18:17:54 · 265 阅读 · 0 评论 -
Python中单例模式的实现方式
实现方式:在 Python 中,我们可以用多种方法来实现单例模式:使用模块使用 __new__使用装饰器(decorator)使用元类(metaclass)使用模块其实,Python 的模块就是天然的单例模式,因为模块在第一次导入时,会生成 .pyc 文件,当第二次导入时,就会直接加载 .pyc 文件,而不会再次执行模块代码。因此,我们只需把相关的函数和数据定义在一个模块中,就可以获得一个单例对象...原创 2018-03-21 18:46:45 · 2800 阅读 · 0 评论 -
删除列表中两个元素的和为指定值得元素(Python)
l = [1, 13, 2, 1, 7, 7]def fn(lst): ll = [] for i in range(len(lst)-1): if (14-lst[i]) not in lst[i+1:]: #删除两个元素的和为14 ll.append(lst[i]) return llprint(fn(l))结果: ...原创 2018-04-08 18:13:39 · 629 阅读 · 0 评论 -
Linux搭建Git服务器和Git客户端基本手册
1. 安装git: $ apt-get install git # ubuntu 说明:git是分布式的,每一个安装了git的电脑,既是客户端,也是服务器,git与git之间可以相互通信. 安装成功后,可以使用:git --version 命令查看是否安装成功,以及git的版本号。2.创建git用户及权限,进入home目录: $ adduser...原创 2018-04-01 09:51:54 · 723 阅读 · 0 评论 -
Git 提交和拉取服务器最新版本代码方法
1. 客户端提交: 方法1: git add --all 或 git add 文件1 文件2 ... git commit -m '提交备注信息' git push 方法2: git add -A git commit -m...原创 2018-04-09 14:17:43 · 10211 阅读 · 0 评论 -
Redis机构设计缺陷
Redis架构设计缺陷主要分为两方面1.缓存穿透2.缓存击穿缓存穿透是什么?所谓的缓存穿透,简单来讲就是查询某些不存在的key时,缓存和数据库查询结果都为空,而空的结果又不被缓存起来,而导致每次查询都去请求数据库层的情况。过程:缓存不命中,进而导致每次查询都去查询数据库,缓存也就失去了作用,通常表现为服务器负载迅速上升,严重时可能直接宕机。常见场景日常网站开发中,我们通常会将一些访问频繁的页面缓存...转载 2018-04-14 12:26:04 · 242 阅读 · 0 评论 -
DataScience基础学习记录(Python)
一、numpy,Numerical Python,数值的Python1.科学计算的算法库:解方程、求积分、线性代数;2.高性能算法的集大成者;3.几乎是所有高级算法库的基础库; scipy scikits pandas matplotlib \ | | / numpy4.开源,免费。...原创 2018-03-27 09:48:01 · 800 阅读 · 0 评论 -
Django中间件介绍和使用
中间件¶中间件是Django请求/响应处理的钩子框架。这是一个轻量级的低级“插件”系统,用于在全球范围内改变Django的输入或输出。每个中间件组件都负责完成一些特定的功能。例如,Django包含一个中间件组件 AuthenticationMiddleware,它使用会话将用户与请求相关联。本文档介绍了中间件如何工作,如何激活中间件以及如何编写自己的中间件。Django附带一些内置的中间件,您可以...原创 2018-04-02 11:55:47 · 6888 阅读 · 1 评论 -
Numpy简单绘制K线图实现上涨下跌效果图(Python)
# 将原始数据中日-月-年格式的日期字符串转换为numpy可以处理的年月日格式def dmy2ymd(dmy): dmy = str(dmy, encoding='utf-8') date = dt.datetime.strptime(dmy, '%d-%m-%Y').date() dmy = date.strftime('%Y-%m-%d') return dm...原创 2018-03-27 11:28:28 · 2913 阅读 · 0 评论 -
爬虫requests库简单抓取页面信息功能实现(Python)
import requestsimport re, json,time,randomfrom requests import RequestExceptionUserAgentList = [ "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.9...原创 2018-03-21 15:46:11 · 1346 阅读 · 0 评论 -
爬虫Selenium+PhantomJS爬取动态网站图片信息(Python)
from urllib import request, errorfrom requests import RequestExceptionimport lijzMD5from lijzLog import *import requestsimport json, re, time, random, osfrom selenium import webdriverfrom bs4 ...原创 2018-03-24 22:07:05 · 1065 阅读 · 0 评论 -
Django + Nginx + uWSGI完美部署教程(Python)
环境:Ubuntu 16.041 准备工作Ubuntu 从零开始搭建Python开发环境 http://t.cn/RSuXlWlUbuntu 远程登陆服务器 ssh的安装和配置 http://t.cn/RSuXT2e2 安装并配置虚拟环境(本机)2.1 更新软件源sudo apt-get updatesudo apt-get upgrade12update是更新软件列表upgrade是对比本地软...原创 2018-04-07 20:22:57 · 1722 阅读 · 0 评论 -
Selenium + PhantomJS爬去动态网站的数据示例(Python)
Selenium一个Web自动化测试工具,最初是为了网站自动化测试而开发的;我们玩游戏有按键精灵;Selenium也可以做类似的事情,但是它是在浏览器中做这样的事情。安装: sudo pip install selenium(pip install selenium)在Python中from selenium import webdriver 来测试是否装好说明:想要用Python做自动化测试的童...原创 2018-03-21 11:22:02 · 260 阅读 · 0 评论 -
爬虫代理和本地封装类库的实现和使用(Python)
1. 封装好的类库from urllib import request, errorfrom requests import RequestExceptionimport lijzMD5from lijzLog import *import requestsimport json, re, time, random, osfrom selenium import webdriverf...原创 2018-03-25 19:02:49 · 496 阅读 · 0 评论 -
逻辑思维题(Python)
【1】 题目内容:尽管是一个CS专业的学生,小B的数学基础很好并对数值计算有着特别的兴趣,喜欢用计算机程序来解决数学问题。现在,她正在玩一个数值变换的游戏。她发现计算机中经常用不同的进制表示同一个数,如十进制数123表达为16进制时只包含两位数7、11(B),用八进制表示时为三位数1、7、3。按不同进制表达时,各个位数的和也不同,如上述例子中十六进制和八进制中各位数的和分别是18和11。小B感兴...原创 2018-04-09 19:23:31 · 4162 阅读 · 1 评论 -
OSI七层网络模型和四层网络模型详解
1. 应用层: 应用层(Application Layer)是OSI参考模型的最高层,它是计算机用户,以及各种应用程序和网络之间的接口,其功能是直接向用户提供服务,完成用户希望在网络上完成的各种工作。用户接口:应用层是用户与网络,以及应用程序与网络间的直接接口,使得用户能够与网络进行交互式联系。实现各种服务:该层具有的各种应用程序可以完成和实现用户请求的各种服务。2. 表示层: ...原创 2018-03-27 13:09:59 · 2755 阅读 · 0 评论 -
urllib通过Get请求爬取KeyWords页面信息
import baseSpiderimport urllib# www.baidu.com/s?wd=pythonkeyword = input("请输入你要查询的关键词:")wd = {"wd":keyword}# 这里需要做urlencode,以保证浏览器能够识别所有的字符信息wd = urllib.parse.urlencode(wd)#print(wd)url = "...原创 2018-03-27 14:36:04 · 527 阅读 · 1 评论 -
二叉树的实现和遍历(Python)
class Node(object): def __init__(self, data=None, left=None, right=None): self.data = data self.left = left self.right = rightclass BinaryTree(object): def __init__(s...原创 2018-04-25 14:16:22 · 578 阅读 · 0 评论 -
urllib库的简单使用
import urllib.requestfrom urllib import request, parseimport http.cookiejarfrom urllib import errorfrom urllib.parse import urlencodeif __name__ == '__main__': data = bytes(parse.urlencode({'word':...原创 2018-06-03 13:20:28 · 284 阅读 · 0 评论 -
requests库的基本使用(Python)
# -*- coding: utf-8 *-*import requestsimport json# from requests.packages import urllib3# urllib3.disable_warnings()from requests.exceptions import *from requests.auth import HTTPBasicAuth# if __name_...原创 2018-06-05 15:31:08 · 1145 阅读 · 0 评论 -
BeautifulSoup的基本使用
import requestsfrom bs4 import BeautifulSoupdef del_span(l): while True: if '\n' in l: l.remove('\n') else: break return lif __name__ == '__main__': url = ...原创 2018-06-09 14:07:01 · 480 阅读 · 0 评论 -
requests + re 爬去网站图书信息(Python)
# -*- coding: utf-8 -*-import requestsimport re, jsonif __name__ == '__main__': content = requests.get('https://book.douban.com/').text reg_base = '<ul.*?list-col list-col5 list-express slide...原创 2018-06-09 14:08:32 · 802 阅读 · 0 评论 -
PyQuery库的简单实用(Python)
import requestsfrom bs4 import BeautifulSoupfrom pyquery import PyQuery as pqif __name__ == '__main__': # 实例1 # url = 'https://book.douban.com' # response = requests.get(url).text ...原创 2018-06-09 22:35:01 · 512 阅读 · 0 评论 -
Selenium的基本使用(Python)
import time, os, sysfrom selenium import webdriverfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.common.keys import Keysfrom selenium.webdriver.common.action_chains import Acti...原创 2018-06-10 14:34:20 · 918 阅读 · 0 评论 -
Redis在Linux系统Ubuntu下的安装和使用
一:安装配置1.1 在ubuntu14.04的安装sudo apt-get install redis-server使用redis-server -v 来查看redis的版本,测试一下1.2 配置redis ①修改配置文件,路径在/etc/redis/redis.conf 绑定的回环ip,我们注释掉就可以了,就会默认绑定本机所有ip②重启redis-serversudo service redis...转载 2018-05-02 11:46:13 · 1152 阅读 · 0 评论 -
数据分析NumPy库的基本使用手册(Python)
一、常用库1.NumPy NumPy是高性能科学计算和数据分析的基础包。部分功能如下:ndarray, 具有矢量算术运算和复杂广播能力的快速且节省空间的多维数组。用于对整组数据进行快速运算的标准数学函数(无需编写循环)。用于读写磁盘数据的工具以及用于操作内存映射文件的工具。线性代数、随机数生成以及傅里叶变换功能。用于集成C、C++、Fortran等语言编写的代码的工具。 首先要导入numpy库...原创 2018-03-27 15:26:21 · 950 阅读 · 0 评论 -
Tornado简单Get请求返回JSON字符串(Python)
from tornado import genfrom tornado.web import RequestHandlerfrom tornado.escape import json_decode, json_encode, utf8import jsonclass BaseHandler(RequestHandler): """解决JS跨域请求问题""" def s...原创 2018-03-28 15:12:52 · 9574 阅读 · 1 评论 -
Tornado服务端基本的配置文件(Python)
web_set = { # -------一般设置-------- 'debug': True, 'port': 8836, 'autoreload': True, 'ui_modules': {}, # 设置默认的处理函数类,如:404页面等 'default_handler_class': None, 'serve_traceba...原创 2018-03-28 16:02:16 · 1874 阅读 · 0 评论 -
提高Django高并发性的部署方案(Python)
方案: nginx + uWSGI 提高 Django的并发性 1. uWSGI : uWSGI是一个web服务器,实现了WSGI协议、uwsgi协议、http协议等。 uWSGI的主要特点是: 超快的性能 低内存占用 多app管理 ...原创 2018-04-04 22:06:17 · 21068 阅读 · 2 评论 -
利用Python实现栈和队列功能
一:利用Python实现栈的功能:class Stack(object): def __init__(self, size): self.size = size self.stack = [] self.top = -1 def push(self, x): if self.is_full(): ...原创 2018-04-19 21:00:46 · 763 阅读 · 0 评论 -
用 Python 实现 C(Java)语言的三目运算符
例如: C语言: int n = (5>3)? (5-3) :0 Python语言: n = (5-3) if (5>3) else 0 # 条件表达式 n = (5>3) and (5-3) or 0 ...原创 2018-05-01 20:25:32 · 297 阅读 · 0 评论 -
生成器实现斐波那契(Python)
def fibonicci(n): start = 0 def fib(x): if x == 0: return 0 elif x == 1: return 1 else: return fib(x - 1) + fib(x - 2) while sta...原创 2018-03-07 11:05:31 · 1527 阅读 · 0 评论 -
HTTP协议总结(Python)
http请求由三部分组成,分别是:请求行、消息报头、请求正文HTTP(超文本传输协议)是一个基于请求与响应模式的、无状态的、应用层的协议,常基于TCP的连接方式,HTTP1.1版本中给出一种持续连接的机制,绝大多数的Web开发,都是构建在HTTP协议之上的Web应用。1、常用的HTTP方法有哪些?GET: 用于请求访问已经被URI(统一资源标识符)识别的资源,可以通过URL传参给服务器。POST:...原创 2018-03-16 10:05:29 · 365 阅读 · 0 评论 -
协程的优点(Python)
协程的优点: 协程是进程和线程的升级版,进程和线程都面临着内核态和用户态的切换问题而耗费许多切换时间, 而协程就是用户自己控制切换的时机,不再需要陷入系统的内核态。协程的执行效率非常高。因为子程序切换不是线程切换,而是由程序自身控制。因此,没有线程切换的开销,和多线程相比,线程数量越多,相同数量的协程体现出的优势越明显不需要多线程的锁机制。由于只有一个线程,也不存在同时写变量的冲突,在协程中控制共...原创 2018-03-16 10:53:31 · 5610 阅读 · 0 评论 -
史上最简单的爬虫小程序(Python)
说明: Python2import urllib2if __name__ == '__main__': print(urllib2.urlopen("http://www.baidu.com").read())原创 2018-03-16 10:55:49 · 4948 阅读 · 0 评论 -
二叉树实现数据存储和遍历(Python)
class TreeNode: def __init__(self, data, left, right): self.data = data self.left = left self.right = rightclass BinaryTree: def __init__(self): self.root = N...原创 2018-03-16 13:15:00 · 1569 阅读 · 0 评论 -
算法之快速排序(Python)
def partition(seq, low, high): """以枢轴元素为分界点,将序列分为两部分:小值、大值""" i, j = low, high base = seq[i] # 将序列的第一个元素作为枢轴元素 while i < j: # 从表的两端交替向中间扫描 while i < j and seq[j] >...原创 2018-03-16 13:17:57 · 209 阅读 · 0 评论 -
算法之归并排序(Python)
def merge(left, right): i, j = 0, 0 result = [] # 将两个序列按升序合并 while i < len(left) and j < len(right): if left[i] <= right[j]: result.append(left[i]) ...原创 2018-03-16 13:19:27 · 207 阅读 · 0 评论 -
排序算法之桶排序(Python)
def bucket_sort(seq): length = (max(seq) - min(seq)) + 1 buckets = [0] * length m = min(seq) for value in seq: # 遍历序列,在相应的位置上加1,计数 buckets[value - m] += 1 result = [] ...原创 2018-03-16 14:08:17 · 291 阅读 · 0 评论 -
去掉一个列表中重复出现的元素(Python)
lst = [1, 2, 2 ,4, 5, 6, 4, 6, 8, 1]#方法1 利用了集合元素的唯一性实现,但不保证顺序print(list(set(lst)))#方法2def deldup(lst): d = {} d = d.fromkeys(lst) return list(d)print(deldup(lst))#方法3 时间复杂度和空间复杂度高....原创 2018-03-16 14:28:12 · 2459 阅读 · 0 评论