
Python
猿说猿道
曾在华为工作7年,先后担任软件工程师、项目经理
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Python基础:理解SQL注入问题的起因,掌握pymysql参数化防止黑客使用SQL注入浸入系统和拖库
1、首先我们了解一下什么叫SQL注入问题SQL注入是一个很古老的系统安全问题,黑客可以通过构造字符串,尝试改变实际执行的SQL语句,从而达到绕过系统认证,或者提取系统中自己没有权限的数据来脱库。出现这个问题的根本原因是开发者在使用SQL的时候,采用的是拼接字符串的方式来实现SQL语句的参数传值,当然这种问题在ORM框架盛行的今天其实出现概率已经很小了,具体例子如下: SQL注入绕过认证原理,如下代码就存在绕过认证的安全问题: 正常情况下,使用正确和错误的用户名和密码都能够限制认证 .原创 2020-06-23 13:18:37 · 581 阅读 · 0 评论 -
Python基础:使用lambda表达式写一个递归,实现输出斐波那契数列
# 使用lambda表达式写一个递归,实现输出斐波那契数列lambdafunc = lambda n : 1 if n == 1 or n == 2 else lambdafunc(n -1 ) + lambdafunc(n - 2)print(lambdafunc(6))# 列出10个月的兔子的数量的变化listA = [lambdafunc(i) for i in range(1...原创 2020-03-14 13:26:17 · 2258 阅读 · 0 评论 -
Python基础:Python中的装饰器和实现通用的装饰器,实现对任意函数的性能统计测试
# 装饰器# 定义装饰器def decorator(f): def innerfunc(): print("调用前") f() print("调用后") pass return innerfunc # 外部函数 要返回内部函数 pass@decoratordef calSum(): pr...原创 2020-03-13 22:04:54 · 361 阅读 · 0 评论 -
Python基础:Python的继承,多继承和多重继承举例
# 继承 重用代码 提高软件的可扩展性class Animal(): def __init__(self, name): print(1) self.name = name pass def eat(self, food): print(self.name + "吃" + food) pass ...原创 2020-03-13 22:02:17 · 624 阅读 · 0 评论 -
Python基础:自己写一个Python的range实现,支持到上界,支持小数步长
# 自定义实现 range功能 (1, 3, 1)# 课堂完善越界的问题def myRange(start, end, step): # -1 if step > 0 and end > start: start = start - step while start < end: start = start +...原创 2020-03-13 21:55:55 · 1972 阅读 · 0 评论 -
Python爬虫基础:安装Scrapy爬虫框架和创建Scrapy爬虫项目
首先为了避免国外镜像不稳定,我们使用了清华大学的python库镜像:https://pypi.tuna.tsinghua.edu.cn/simple1、安装scrapy1.1、安装pywin32(解决python调用windows系统库的问题)pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pywin321.2、安装...原创 2020-02-15 20:24:04 · 843 阅读 · 0 评论 -
安装Python3开发环境(基于python3.6.5),配置环境变量,创建虚拟环境
1、下载Pythonhttps://www.python.org/downloads/release/python-365/,点击下载:2、下载完成后点击安装(注意安装路径中最好别带有中文和空格,避免不必要的麻烦)3、安装完后,打开cmd,输入python -V查看是否安装成功4、如果安装过程没有选择自动配置环境变量,则将安装目录和scripts配置到环境变量中...原创 2020-01-06 11:57:17 · 986 阅读 · 0 评论 -
Python使用matplotlib绘制各类图形图表:柱状图、饼图、点线图、折线图和单图表多图形等
1、柱状图import matplotlib.pyplot as pltimport numpy as np# 1.绘制柱状图# 组织数据data = np.array(((12878.264202908986, 1, 'Java'), (14092.694428484134, 2, 'Python'), (9000.0, 3, 'PHP')))data = data.Tx...原创 2019-12-29 15:56:36 · 3200 阅读 · 0 评论 -
Python基础实现与电脑对战的剪刀石头布小游戏,练习if while输入和输出
通过剪刀石头布小游戏,练习python的if while print input# 实现剪刀石头布小游戏import random # import 引入其他模块'''多行注释'''# 程序的入口if __name__ == '__main__': # 1、定义菜单 print("======欢迎中软游戏========") print("1、开始游...原创 2019-12-29 15:14:52 · 2143 阅读 · 5 评论 -
Python搜集和整理了100道考试题,附word版下载地址
Python搜集和整理了100道考试题下载地址:https://download.youkuaiyun.com/download/nosprings/120485001、下面描述错误的是?(D) 若a=True,b=False则a or b为True 若a=True,b=False则a and b为False 若a=True,b=False则not a为False ...原创 2019-12-24 11:53:09 · 8112 阅读 · 0 评论 -
Python使用Scrapy框架爬取某网站职位数据并存放到MySQL数据库(支持二级页面爬取)
1、项目结构如下图所示,说明如下:源代码工程文件下载地址:https://download.youkuaiyun.com/download/nosprings/12047437spiderproject------项目工程目录—spiderproject------爬虫主项目目录——dao ------ 数据库访问封装———basedao.py ------ 数据库封装基础类#...原创 2019-12-23 16:52:09 · 1204 阅读 · 0 评论 -
Python高性能服务:Python在linux centos下部署nginx+uwsgi+django+mysql8.0+redis共享session实现分布式高可靠生产环境
常用的linux命令行 ls列出当前面目录下的文件信息ls –als -lcd 切换目录linux:/系统跟 ~用户根cd / 可以进入系统跟mkdir可以创建目录pwd可以查看当前目录的完整路径vi / vim 文件名,如果文件存在,则打开编辑,如果不存在则创建文件打开编辑界面,如果需要改文件内容,那么按i(insert),编...原创 2019-11-20 11:07:32 · 2053 阅读 · 0 评论 -
Python人工智能逻辑回归算法原理和实现(概率统计、信息论信息熵、梯度下降)
1、假设,线性线的函数是:f(x) = θ0+θ1*x11 + θ2*x12传说中的激活函数,将数值转换为概率值:sigmoid,relu 函数:g(z) = 1/(1+e(-z)) # e=2.718z = f(x)# 逻辑回归问题的假设函数:h(x) = 1/(1+e^(-(θ0+θ1*x11 + θ2*x12)))[0, 1] 0.5为分界线 >= 0.7 ...原创 2019-11-12 15:06:24 · 723 阅读 · 1 评论 -
警醒:django框架MySql limit分页查询机制和多表查询时遇到的坑(使用limit实现真分页和左连接查询)
1、django的models中对象实现limit真分页(网上的paginator都是假分页,数据量大的时候肯定是不行的)models定义:JobDept是部门表,TUser是用户表class JobDept(models.Model): dept_id = models.IntegerField(primary_key=True) dept_name = models....原创 2019-11-07 11:30:39 · 7921 阅读 · 3 评论 -
人工智能机器学习:Python使用20行代码实现通用的线性回归算法,搞定一切线性回归问题(numpy、梯度下降、矩阵和向量)
1、核心算法代码说明:算法是使用的梯度下降算法,成本函数是使用的最小二乘法:求残差的平方和的极小值import numpy as np# 定义假设函数:X是一个矩阵 W是一个列向量def hyFunction(X, W): return X.dot(W) # 一次计算所有的样本结果 pass# 梯度函数:X是样本矩阵,W是系数,y是实际结果def grad...原创 2019-10-31 16:21:24 · 898 阅读 · 1 评论 -
人工智能算法数学基础之求导过程推导(单变量函数求导、多变量函数求导、向量求导、矩阵求导)
1、导数定义:设函数y=f(x)在点x0的某个邻域内有定义,当自变量x在x0处有增量Δx,(x0+Δx)也在该邻域内时,相应地函数取得增量Δy=f(x0+Δx)-f(x0);如果Δy与Δx之比当Δx→0时极限存在,则称函数y=f(x)在点x0处可导,并称这个极限为函数y=f(x)在点x0处的导数记作需要指出的是:两者在数学上是等价的。 导函数如果函数y=f...原创 2019-10-23 17:09:38 · 2262 阅读 · 0 评论 -
Python手写实现梯度下降算法(核心是求极值,必须是凸函数),使用matplotlib绘制过程图
1、什么是梯度下降:梯度就是函数在一个点的斜率,梯度下降,就是在求函数极值的过程中,让斜率减小,从而找到极大值或极小值点,因为在几何坐标系里,极值点的斜率是零# 梯度下降 == 导数值下降import matplotlib.pyplot as pltimport numpy as np# f(x) = (x-10)**2, 目标函数# f'(x) = 2*x - 20 梯度函...原创 2019-10-17 17:24:22 · 1936 阅读 · 0 评论 -
Python入门基础:Python 200行代码实现简单的WebServer,还支持图片加载(WSGI,Socket ,TCP,thread)
下载地址:https://download.youkuaiyun.com/download/nosprings/121089981、代码程序结构如下:static——静态文件目录templates——html模板文件目录application.py——TCP连接监听和工作线程处理收发数据request.py——解析http请求response.py——封装发送数据模块runserv...原创 2019-10-17 16:19:58 · 1225 阅读 · 1 评论 -
Python Flask框架+jquery+实现异步文件上传
1.前端页面表单定义<form role="form" class="form-horizontal" method="post" name="regForm" id="regForm" enctype="multipart/form-data"><div class="form-group"> <label for="userPic">个人图像:&...原创 2019-10-12 16:50:38 · 1202 阅读 · 0 评论 -
python爬虫使用urllib库实现多线程下载器,下载百度异步AJAX接口图片
1、爬取下载百度图片线程类定义# 批量采集百度图库图片数据import reimport requestsimport threadingimport urllib.request,urllib.responseimport uuidimport timefrom day17.demo04_python_logging import *# 定义下载器线程class Do...原创 2019-08-29 15:25:59 · 1127 阅读 · 0 评论 -
Python基于pygame实现单机版五子棋对战
1、python实现的五子棋,能够自动判断输赢,没有是实现电脑对战功能源码下载:https://download.youkuaiyun.com/download/nosprings/11636520# 1、引入pygame 和 pygame.localsimport pygamefrom pygame.locals import *import timeimport sysinitChe...原创 2019-08-29 14:34:02 · 2510 阅读 · 7 评论 -
Python单例模式实现,使用100个线程实例完成实例测试
Python实现单例模式,并且启动100个线程进行测试import threadingimport timeclass Singleton(object): __lock = threading.Lock() __instance = None # 单例对象,必须是类属性 def __init__(self): pass ...原创 2019-08-28 15:39:04 · 2067 阅读 · 0 评论 -
Python快速排序的手写实现(quiksort,分别使用最后一个和第一个元素作为分界值)
''' @作用:定义用来比较的函数 @参数:listArr需要排序的列表,需要划分的元素:left起始位置,right结束位置'''def quikSwith(listArr, left, right): div = listArr[right] # 划分使用的分界值,默认使用最后一个元素 position = left #...原创 2019-08-13 08:46:19 · 666 阅读 · 0 评论 -
Python纯手写版本的KMeans算法实现,没有使用numpy库,使用matplotlib可视化测试
Python纯手写版本的KMeans算法实现,没有使用numpy库,使用matplotlib可视化import randomimport matplotlib.pyplot as pltclass KMeans():def __init__(self, k=1): ''' :param k: k代表分类数 ''' self.__k = k self....原创 2019-08-12 17:11:30 · 1718 阅读 · 2 评论 -
Python多线程和socket采用tcp短连接实现简单的机器问答
1、服务器端:import socketimport threading# 问题库:questionDict = {"苹果":"一种水果,很好吃", "小姐姐": "是对女孩的一种描述", "猪":"是一种动物", "佩奇": "是一只粉色的小猪"}# 智能问题机器人服务器class RobotServer(): def __init__(...原创 2019-08-13 20:15:18 · 522 阅读 · 0 评论