python
文章平均质量分 50
迷人的派大星
加油
展开
-
1024 1024 1024
水一篇拿个徽章。原创 2022-10-24 11:29:08 · 278 阅读 · 0 评论 -
pyshark使用教程
安装pip install pyshark使用例如:分析现有的pcap文件:import pysharkpcap = pyshark.FileCapture("test1.pcap", tshark_path="/Applications/Wireshark.app/Contents/MacOS/tshark")两个参数分别指定输入文件和 tshark 路径然后,就可以使用循环遍历pcap文件(也可以使用下标):for p in pcap: print(p)输出的结构和wi原创 2022-05-26 22:29:41 · 8577 阅读 · 10 评论 -
python3的安装与环境变量的配置
python下载: Python安装包下载地址:http://www.python.org/ 找到想要下载的python版本,这里我们以python3.7版本为例。 这里我们选择64位的安装包。 python安装: 下载完成之后,我们开始执行安装。 勾选上下面的框,把python添加到环境变量中,然后我们点上面的install now开始安装pyhon,这里我选择的是默认路径,...原创 2018-08-03 14:24:17 · 30239 阅读 · 2 评论 -
Joplin和Webdav搭建私有云
1.下载Joplin客户端打开Joplin官网,根据需要选择安装的版本;2.服务器上配置Webdav服务端前置条件:一台公网服务器(内网也可,但内网服务器就只能在内网上同步笔记了)服务器上需先安装好docker和docker-compose安装配置流程:在服务器上创建笔记保存的数据目录:cd /datamadir dav创建配置文件:vim joplin.ymljoplin.yml内容如下:version: '3'services: webdav: i原创 2021-10-31 00:29:05 · 4120 阅读 · 0 评论 -
tensorflow Could not load dynamic library ‘cudnn64_8.dll‘
安装完tensorflow和cuda后,运行检测GPU代码:import tensorflow as tfprint('GPU',tf.config.list_physical_devices('GPU'))a = tf.constant(2.)b = tf.constant(3.)print(a*b)出现报错:解决办法将 cudnn64_8.dll 文件手动放入 C:\Windows\System 路径下即可;再次运行以上代码:...原创 2021-09-13 14:06:57 · 12370 阅读 · 3 评论 -
github下载单个文件或者文件夹
网页下载器Downgit,输入相应git地址即可下载指定文件夹或者指定文件,链接如下:http://zhoudaxiaa.gitee.io/downgit/#/home原创 2021-09-13 12:08:25 · 732 阅读 · 0 评论 -
使用开源IP数据库来定位位置
开源IP库地址https://github.com/out0fmemory/qqwry.dat.gitpython开源工具qqwry(用来操作IP库,具体使用方法见该git)https://github.com/animalize/qqwry-python3.git原创 2021-08-17 17:37:10 · 479 阅读 · 0 评论 -
python根据IP查询地理位置
实现了输入ip地址返回该ip对应的信息。两种方法,一:利用百度的API(价格稳定,省事),二:白嫖1.利用百度提供的API百度API购买地址:百度API价格如下,前1000次免费:万次3.9元,很良心了调用API代码:import requestsimport jsonip = "此处替换为想要搜索的IP"headers = { 'Content-Type': 'application/json;charset=UTF-8', 'X-Bce-Sign原创 2021-07-08 16:23:18 · 2112 阅读 · 0 评论 -
感知机算法(统计学习方法)之三
感知机学习算法是对以下最优化问题的算法。给定一个训练数据集T={(x1,y1),(x2,y2),...,(xN,yN)}T = \{(x_1,y_1), (x_2,y_2),...,(x_N,y_N)\}T={(x1,y1),(x2,y2),...,(xN,yN)}其中,xi∈X=Rn,yi∈Y={+1,−1},i=1,2,⋯ ,Nx_{i} \in \mathcal{X}=\mathbf{R}^{n}, \quad y_{i} \in \mathcal{Y}=\{+1,-1\}, \quad原创 2021-06-04 18:41:20 · 347 阅读 · 0 评论 -
感知机学习策略(统计学习方法)之二
给定一个数据集T={(x1,y1),(x2,y2),...,(xN,yN)}T = \left \{ (x_1,y_1),(x_2,y_2),...,(x_N,y_N) \right \}T={(x1,y1),(x2,y2),...,(xN,yN)}其中,xi∈X=Rnx_i \in X= {R}^nxi∈X=Rn,yi∈Y={+1,−1}y_i \in Y= \mathbb{\{+1,-1}\}yi∈Y={+1,−1},i=1,2,...,Ni=1,2,...,Ni=1,2,...,N,原创 2021-06-04 17:14:27 · 212 阅读 · 0 评论 -
感知机模型(统计学习方法)之一
概念感知机是二分类的线性模型,输入为实例的特征向量,输出为实例的类别,取 {-1, +1}。感知机学习的目的在于找到某个超平面,能将正负实例完全分离,为此,导入基于误分类的损失函数,利用梯度下降法对损失函数极小化,以此求得感知机模型。定义假设输入空间X⊆RnX \subseteq \mathbb{R}^{n}X⊆Rn,输出空间Y={+1,−1}Y=\{+1,-1\}Y={+1,−1} 。输入x表示实例的特征向量,对应于输入空间的点,输出y表示实例的类别。由输入空间到输出空间的如下函数:f(x)=si原创 2021-06-04 16:11:40 · 218 阅读 · 0 评论 -
统计作战单位数(python实现)
题目: 数据规模:n == rating.length3 <= n <= 10001 <= rating[i] <= 10^5rating 中的元素都是唯一的来源: 力扣(LeetCode)方法一:三重循环暴力枚举class Solution: def numTeams(self, rating: List[int]) -> int: n = len(rating) ans = 0 for i i原创 2021-05-10 10:56:56 · 136 阅读 · 0 评论 -
scrapy+elasticsearch实现搜索引擎
前言很久之前就想实现一个小的搜索引擎供自己使用,一来代码量不大,二来也可以屏蔽一些广告。因此在春节期间,在同学提供前端的帮助下,一个小的搜索引擎系统就成型啦。做出来之后总体效果也符合我之前的预期,但引擎的核心部分取了巧,并不是自己去实现的权重排序,而是通过爬虫去抓取其他搜索引擎的结果,算是小小的遗憾,以后有机会自己在补上。效果预览先放几张效果图(需要代码的同学可以评论留下邮箱):主页搜索页1搜索页2总体功能共分为两个部分,主页和结果页搜索框实现了搜索建议补全关键词未命中es时原创 2021-04-08 20:25:05 · 1237 阅读 · 52 评论 -
递归实现翻转二叉树
经典二叉树题目思路:对于每一个结点,递归的实现左右孩子交换即可class Solution: def invertTree(self, root: TreeNode) -> TreeNode: if not root: return root # 这一步需先将左孩子保存起来,防止左孩子因更新而被覆盖; tmp_child = root.left root.left = self.invertTree(r原创 2021-03-13 23:55:16 · 299 阅读 · 1 评论 -
es设置number_of_replicas
新安装的ES,在新创建索引时,发现出现 Unassigned 问题,如下:查询其原因,发现是es默认分片的副本数 number_of_replicas 为1,因为在本地搭建的是实验环境,只存在一个es节点,所以多复制的副本会变成 Unassigned 状态,因此我们可以手动将出现该问题的索引副本数设置为0,命令如下:curl -XPUT 'http://localhost:9200/startest/_settings' -H 'Content-Type: application/json' -d '原创 2021-01-26 17:14:43 · 5304 阅读 · 1 评论 -
leetcode1028.从先序遍历还原二叉树(Python实现)
题目:从先序遍历还原二叉树来源:Leetcode由于题目保证了,当树只有一个结点的情况下,只可能是左结点。再结合先序遍历的特性,我们可以知道,当遍历到某个结点S 开始向上回退的时候,回退到的结点T一定是从根结点到S(不包括S)的某条路径上的一个右结点。因此,我们去找T过程实际上就是为这个结点T找双亲结点的过程。代码如下:class TreeNode: def __init__(self, x): self.val = x self.left = No原创 2020-06-18 13:48:46 · 376 阅读 · 0 评论 -
爬楼梯(Python实现)
题目:爬楼梯来源:Leetcode很经典得问题,与求斐波那契数列基本一样,以下给出递归和动态规划两种解法。递归import functoolsclass Solution: @functools.lru_cache() def climbStairs(self, n: int) -> int: if n == 1: return 1 if n == 2: return 2 r原创 2020-06-13 08:55:04 · 2627 阅读 · 0 评论 -
leetcode面试题46. 把数字翻译成字符串(Python实现)
题目:把数字翻译成字符串来源:Leetcode动态规划经典的动态规划题目,以输入12258 为例,我们可以看到,之所以会有多种方法翻译是因为 1 可以被映射到字母 a ,而 12 同样也可以在映射表中找到对应的映射关系。但是注意,以 0 开头的数字是无效的,例如 10020 中的 02 并不是一个有效的映射,因此这种情况我们不必要考虑。以 12258 为例,我们分别对其编号X1X2X3X4X5 (即Xi), (1 <= i <= 5)那么现在,Xi 处的翻译情况分如下两种情形:原创 2020-06-09 12:53:56 · 304 阅读 · 0 评论 -
leetcode128.最长连续序列(Python实现)
题目:最长连续序列来源:Leetcode根据题目要求可知,要求得最长连续序列为连续得自然数,例如:[1,2,3,4] # 连续[1,2,4] # 非连续首先,我们思考暴力解法。对于数组中的每个数num[i],我们用内层循环重新遍历数组,寻找有没有target == nums[i] + 1,如果为True,继续+1遍历,若为False,退出内层循环,输出当前连续序列长度。对于暴力解法,我们可以对其进行优化,我们使用Hash表来保存nums中元素,这样我们在判断是否存在target == nu原创 2020-06-06 20:24:42 · 656 阅读 · 0 评论 -
leetcode面试题29. 顺时针打印矩阵(Python实现)
题目:顺时针打印矩阵来源:Leetcode我们分别定义上下左右边界,模拟顺时针打印即可。每次打印时,上下左右指针分别-1,即向内收缩。当有两个指针相遇时,即此时已打印完,break即可代码如下:class Solution: def spiralOrder(self, matrix: List[List[int]]) -> List[int]: if not matrix: return [] left, right, up, down = 0, l原创 2020-06-05 08:24:30 · 363 阅读 · 0 评论 -
leetcode238.除自身以外数组的乘积(Python实现)
题目:除自身以外数组的乘积来源:Leetcode咋一看这道题似乎非常简单,直接用整个数组的乘积除去当前元素不就好了吗,但题目中是有限制不能使用除法的,而且这种做法也是有风险的,一旦出现 0 就失效了。同时,题目还规定,除了输出数组外,我们只能使用常数个空间。那么,我们应该如何思考呢?左右数组乘积我们设想下,如果我们能将该数组分为两个部分,一部分是当前元素的左边所有的元素,另一部分是当前元素右边所有的元素,那么,在求除当前元素外数组中所有元素的积时,我们只需要将左部分乘积乘上右部分乘积即可。但是,原创 2020-06-04 10:17:22 · 463 阅读 · 0 评论 -
leetcode141.环形链表(Python实现)
题目:环形链表来源:Leetcode链表判断环很适合用双指针求解,我们定义一快一慢两个指针,有以下情形:当链表无环时,显然快指针一定会先走到链表末尾当链表存在环时,快指针和慢指针一定会在链表的某一个节点重合,即快指针可能领先了慢指针一圈或者多圈并相遇基于以上思想,代码实现如下:# Definition for singly-linked list.class ListNode: def __init__(self, x): self.val = x原创 2020-06-04 10:02:16 · 317 阅读 · 0 评论 -
Python与或运算
今天碰到一道有意思的题目,看了之后发现自己对Python与或的理解还是欠缺,如下。题目:求1+2+…+n来源:Leetcode如果不加限制,我们有很多方法计算该值,例如高斯公式,递归等。我们思考下递归的解法: def sumNums_if(self, n: int) -> int: if not n: return n return n + self.sumNums_if(n-1)即当n等于0的时候,开始自底向上返回。那么,当限制了if语句的时候原创 2020-06-02 10:10:12 · 3431 阅读 · 0 评论 -
leetcode101.对称二叉树(Python实现)
题目:对称二叉树题目来源:Leetcode对称树满足什么条件呢?左右子树均为空左右子树均不为空且左右子树根节点相等,且左子树的左树对称于右子树的右树and右子树的左数对称于左子树的右树如何判断左子树的左右树和右子树的左右树?递归即可,代码如下:class TreeNode: def __init__(self, x): self.val = x self.left = None self.right = Noneclas原创 2020-05-31 19:45:00 · 394 阅读 · 0 评论 -
leetcode707.设计链表(Python实现)
题目:设计链表来源:Leetcode手写链表,代码如下:# 自定义单节点class ListNode: def __init__(self, x): self.val = x self.next = Noneclass MyLinkedList: def __init__(self): """ Initialize your data structure here. """ #原创 2020-05-30 13:38:29 · 586 阅读 · 0 评论 -
leetcode198.打家劫舍(Python实现)
题目: 打家劫舍来源:Leetcode经典动态规划问题,由于每个房屋存放金额为非负整数,这简化了问题。首先我们初始化一个dp数组,用以保存抢到第 i 间屋子时的当前最大收益我们思考一个问题,当我们到达第 i 间屋子时,我们有两个选择:抢劫第 i 间屋子,根据规则,则 第 i - 1号屋子我们是不能抢的,此时我们的收益是 dp[i - 2] + nums[i]不抢劫第 i 间屋子,那么此时我们的收益就等于 dp[i - 1]则第i间屋子的收益就为 max(1,2),代码如下:class原创 2020-05-29 09:25:03 · 547 阅读 · 0 评论 -
leetcode394.字符串解码(Python实现)
题目:字符串解码题目来源:Leetcode此题由于保证了输入一定是有效的,因此我们可以不必考虑括号失配的情形。由于存在括号嵌套的情况,因此我们不能简单的从左到右匹配输出,而是存在内层括号时,我们应该先算出内层括号中的字符串解码然后再由外层计算,这显然很符合栈 “先进后出”的特性。对输入字符串s进行遍历,有如下情形:当前字符为数字,那么我们将其累加起来,用做其后【…】字符串出现的次数当前字符为普通字符,我们用一个临时结果集先将其连接当前字符为 “【”,显然此时我们要进入括号内层了,所以进内层原创 2020-05-28 15:36:00 · 681 阅读 · 0 评论 -
leetcode92.反转链表2(Python实现)
题目:题目来源:Leetcode链表反转思路我们很熟悉,此题多了一步为 翻转区间 [m,n]上的节点,因此我们要先找到m处的节点以及前驱,将链表在此处断开,再在m处往后数n-m个节点,并对该段的节点实现翻转,最后将链表连接起来即可。代码如下:在这里插入代码片...原创 2020-05-25 10:30:08 · 649 阅读 · 0 评论 -
leetcode4.寻找两个正序数组的中位数(Python实现)
题目来源:leetcode归并(复杂度不满足要求)若题目没有要求时间复杂度,对于两个有序数组,我们很容易想到用双指针归并的思想解决,此时复杂度为O(m+n),代码如下:class Solution: # o(m+n)解法 def findMedianSortedArrays(self, nums1: List[int], nums2: List[int]) -> float: m, n = len(nums1), len(nums2) res =.原创 2020-05-24 16:16:25 · 1239 阅读 · 0 评论 -
leetcode74.最小覆盖字串(Python实现)
题目:最小覆盖子串题目来源:leetcode看到子串问题,一个很容易想到的思路是利用双指针来解决,那么,在本题条件下如何利用双指针实现呢,首先看题目要求,我们可以得出如下结论:s长度严格不小于t长度输出结果为字串,意味着必须连续可以看出对输出结果的不要求保持顺序滑动窗口由于要求字串必须包含t中所有字符,所以我们不妨先初始化一个Hash表t_dt,键为t中字符,值为该字符在t中出现的次数。以 s=“ADOBECODEBANC”,t=“ABC” 为例from collections im原创 2020-05-23 12:35:33 · 793 阅读 · 0 评论 -
Python判断回文数及进阶
判断回文是一个很基础同时也很经典的问题,首先我们来了解一下何谓回文?引入百度百科的解释:“回文”是指正读反读都能读通的句子,它是古今中外都有的一种修辞方式和文字游戏,如“我为人人,人人为我”等。在数学中也有这样一类数字有这样的特征,成为回文数(palindrome number)。 [1]设n是一任意自然数。若将n的各位数字反向排列所得自然数n1与n相等,则称n为一回文数。例如,若n=1234321,则称n为一回文数;但若n=1234567,则n不是回文数。 [1]注意:1.偶数个的数字也有回文原创 2020-05-19 20:03:35 · 1694 阅读 · 0 评论 -
leetcode42 接雨水(Python实现)
题目:给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。 感谢 Marcos 贡献此图。示例:输入: [0,1,0,2,1,0,1,3,2,1,2,1]输出: 6来源:力扣(LeetCode)链接:...原创 2020-04-04 16:04:22 · 704 阅读 · 0 评论 -
LeetCode46.全排列(Python实现)
题目:给定一个没有重复数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/permutations经典回溯算法题目,代码及注释如下:from typ...原创 2020-03-16 22:06:17 · 859 阅读 · 0 评论 -
LeetCode 300-最长上升子序列(Python实现)
题目:给定一个无序的整数数组,找到其中最长上升子序列的长度。示例:输入: [10,9,2,5,3,7,101,18]输出: 4解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4。说明:可能会有多种最长上升子序列的组合,你只需要输出对应的长度即可。你算法的时间复杂度应该为 O(n2) 。进阶: 你能将算法的时间复杂度降低到 O(n log n) 吗?来源:力扣(Le...原创 2020-03-15 12:00:10 · 524 阅读 · 0 评论 -
Python脚本执行时显示进度条
给大家介绍一个很实用的小工具----tqdm,它能在脚本执行时为我们计算剩余时间,并显示进度条pip install tqdm测试代码如下:import timefrom tqdm import tqdmfor i in tqdm(range(1000)): time.sleep(.01)运行结果tqdm接受的参数为任何可迭代的对象。...原创 2020-03-06 18:01:58 · 1013 阅读 · 1 评论 -
深入理解Python装饰器与闭包
最初学习Python时,了解到装饰器与闭包的概念,在网上看了很多博客与教程,总觉得自己的理解还是不那么透彻,最近开始学习《流畅的Python》一书,书中对与闭包和装饰器有详细的解释,我觉得写的非常到位,现在把我的理解分享出来与大家共同探讨。装饰器函数装饰器用于在源码中“标记”函数,以某种方式增强函数的行为。装饰器是一个可调用的对象,其参数是另一个函数(即被装饰的函数)。装饰器可能会处理被装饰的...原创 2020-02-25 16:36:43 · 1478 阅读 · 0 评论 -
震惊!Python递归竟然可以加速
众所周知,递归算法因其代码简短,易于理解,深受大家的喜爱。但我们也知道,递归算法其实是非常消耗内存和时间的,尤其是在算法求解问题规模稍稍大一些之后,表现得更为明显。因此,我们在对递归算法进行优化时,往往会考虑加入备忘机制,避免反复计算,但在python标准库中其实已经为我们内置了提供该功能的函数,我们来了解一下吧~计算Fibonacci数递归算法代码及运行截图如下:import time...原创 2020-02-24 12:05:57 · 2072 阅读 · 1 评论 -
scrapy新浪微博爬虫
最近因为做毕设的原因,需要采集一批数据。本着自己动手的原则,从新浪微博上采集到近百位大家耳熟能详的明星14-18年的微博内容。看看大佬们平常都在微博上都有哪些动态吧~1.首先项目采用scrapy编写,省时省力谁用谁知道。采集的网站为weibo.com,是微博的网页端。稍稍麻烦了一点,但相对于移动段和wap站点来说内容稍微更全一点。2.采集之前我们先来看下微博都给我们设置了哪些障碍。登录...原创 2020-06-09 13:04:04 · 4814 阅读 · 4 评论 -
经典排序算法1-冒泡排序(Python实现)
经典排序算法之冒泡排序冒泡排序法又称为交换排序法,是从观察水中气泡变化构思而成的,原理是从第一个元素开始,比较相邻元素的大小,若大小顺序有误,则对调后在进行下一个元素的比较,就仿佛气泡逐渐从水底冒升到水面一样。如此扫描过一次之后,就可以确保最后一个元素位于正确的顺序。接着逐步进行第二次扫描,直到完成所有元素的排序关系为止。我们以10, 8, 44, 9, 12, 37, 21, 5这一组数为例...原创 2019-04-21 20:11:51 · 514 阅读 · 0 评论 -
经典排序算法2-选择排序(Python实现)
经典排序算法之选择排序选择排序法可使用两种方式排序,即在所有的数据中,当从大到小排序时,将最大值放入第一个位置;当从小到大排序时,将最大值放入最后一个位置。例如,一开始在所有当数据中挑选一个最小项放在第一个位置(假设是从小到大排序),再从第二项开始挑选一个最小项放在第二个位置,从此反复,直到排序完成为止。以下我们采用10, 8, 44, 9, 12, 37, 21, 5来完成排序示例:首先...原创 2019-04-27 01:07:59 · 304 阅读 · 0 评论