python
文章平均质量分 50
Jiale685
幸福并不是男子汉所该追求的
展开
-
使用scrapy爬遍百度百科,附所有源码
零、安装相关库使用conda或者pip安装scrapy安装mysql一、新建项目使用Terminal(cmd)cd到项目路径,输入如下命令scrapy startproject bdbk_2 # bdbk_2是自己起的项目名二、设计items打开项目根目录下的items文件,这里类似java下的类提前编写所需对象,做如下编辑# Define here the models for your scraped items## See documentation in:# https:原创 2021-02-01 18:16:11 · 899 阅读 · 1 评论 -
使用selenium写一个简单的爬虫登录邮箱
一、安装selenium参考:http://www.testclass.net/selenium_python/install-selenium二、浏览器驱动参考:http://www.testclass.net/selenium_python/selenium3-browser-driver三、开始编码from selenium import webdriverimport pathimport time# 因为我的电脑不能设置环境变量,所以配置临时环境变量,你已配置好,请忽略下面两行原创 2021-01-14 16:33:50 · 557 阅读 · 0 评论 -
【LeetCode】136. Single Number 解题报告(Python)
题目大意:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。解题思路:第一次知道异或找到这个元素时还很兴奋,现在已经是老生常谈了,两个相同的元素异或后变成0,根据这个得到代码提交代码:(Runtime: 44 ms, faster than 84.55 % )class Solution: def singleNumber(self, nums: 'List[int]') -> int: res = nums[0]原创 2020-11-21 17:53:12 · 234 阅读 · 0 评论 -
【LeetCode】125. Valid Palindrome 解题报告(Python)
题目大意:验证回文字符串,忽略大小写,空格解题思路:1.全转化为小写2.左右指针标记,左要小于右,进入循环3.非字母数字直接移动指针4.左右相同,同时移动指针5.左右不同直接返回错误提交代码:(Runtime: 48 ms, faster than 69.48 % )class Solution: def isPalindrome(self, s: str) -> bool: s = s.lower() left, right = 0, le原创 2020-10-18 09:13:50 · 266 阅读 · 0 评论 -
【LeetCode】1002. Find Common Characters 解题报告(Python)
题目大意:查找多个字符串交集字母一开始我想用set求交集去做,后来发现涉及到两个‘l’时set指挥保留一个,所以就用最基本的思路做吧。解题思路:1.对于26个字母出现次数初始化为最大值2.循环这个输入列表3.对于每个单词用ascii码作为下标,记录出现次数4.取26个字母总的出现次数与当前单词出现次数的最少次提交代码:(Runtime: 56 ms, faster than 46.38 % )class Solution: def commonChars(self, A: 'Li原创 2020-10-17 17:43:02 · 235 阅读 · 1 评论 -
Python实现集合运算
一、交集L = [[1,2,3,4], [2,3,4,5], [3,4,5,6],[1,2,3,4,5,6]]P = set(L[0]).intersection(*L[1:])print(P)二、并集三、补集另外交并补,比较简单的你也可以x = set('spam') y = set(['h','a','m']) print(x, y)# 交集 print(x & y) # 并集 print(x | y)# 差集 print(x - y) {'原创 2020-10-17 17:32:15 · 369 阅读 · 0 评论 -
Python实现排列组合
https://www.cnblogs.com/xiao-apple36/p/10861830.html转载 2020-10-14 16:25:40 · 510 阅读 · 0 评论 -
crontab定时执行python文件
首先在~目录下建立python文件crontest.py#!/usr/bin/python#encoding=utf-8import osoutfileName = '/data5/outcid.txt'outfile = open(outfileName, 'w')outfile.write("This is crontab command test!") outfile.close()命令行输入crontab -e然后出现vim编辑输入*/2 * * * * python.原创 2020-09-30 11:08:08 · 1427 阅读 · 0 评论 -
【LeetCode】124. Binary Tree Maximum Path Sum 解题报告(Python)
给定一个非空二叉树,返回其最大路径和。本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列。该路径至少包含一个节点,且不一定经过根节点。示例 1:输入: [1,2,3] 1 / \ 2 3输出: 6示例 2:输入: [-10,9,20,null,null,15,7] -10 / \ 9 20 / \ 15 7 输出: 42解题思路:递归,涉及到树的题目一般采用递归的方式。首先判断左子树的和,如果是负数就返回0然后判原创 2020-07-06 15:49:08 · 575 阅读 · 0 评论 -
【LeetCode】123. Best Time to Buy and Sell Stock III 解题报告(Python)
给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你最多可以完成 两笔 交易。注意: 你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入: [3,3,5,0,0,3,1,4]输出: 6解释: 在第 4 天(股票价格 = 0)的时候买入,在第 6 天(股票价格 = 3)的时候卖出,这笔交易所能获得利润 = 3-0 = 3 。随后,在第 7 天(股票价格 = 1)的时候买入,在第 8 天 (股票价格 = 4)的时候原创 2020-07-06 00:49:32 · 513 阅读 · 0 评论 -
【LeetCode】122. Best Time to Buy and Sell Stock II 解题报告(Python)
给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入: [7,1,5,3,6,4]输出: 7解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4 。随后,在第 4 天(股票价格 = 3)的时候买入,在第 5 天(股票价格 = 6原创 2020-07-05 23:23:20 · 388 阅读 · 0 评论 -
【LeetCode】121. Best Time to Buy and Sell Stock 解题报告(Python)
给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票一次),设计一个算法来计算你所能获取的最大利润。注意:你不能在买入股票前卖出股票。示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格;同时,你不能在买入前卖出股票。示例 2:输入: [7原创 2020-07-05 22:45:24 · 300 阅读 · 0 评论 -
【LeetCode】120. Triangle 解题报告(Python)
给定一个三角形,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。相邻的结点 在这里指的是 下标 与 上一层结点下标 相同或者等于 上一层结点下标 + 1 的两个结点。例如,给定三角形:[[2],[3,4],[6,5,7],[4,1,8,3]]自顶向下的最小路径和为 11(即,2 + 3 + 5 + 1 = 11)。解题思路:这个题求从上到下的最小路径和,看起来可以用动态规划解决,(动态规划通常可以求解最优解,有几种结果等问题)这一题情况比较多,我们要分开考虑,并且从原创 2020-07-05 22:28:57 · 430 阅读 · 0 评论 -
【LeetCode】119. Pascal‘s Triangle II 解题报告(Python)
给定一个非负索引 k,其中 k ≤ 33,返回杨辉三角的第 k 行。在杨辉三角中,每个数是它左上方和右上方的数的和。示例:输入: 3输出: [1,3,3,1]解题思路1:这个题与【LeetCode】118. Pascal‘s Triangle 解题报告(Python)一致,可以稍稍优化一下118的算法,每次保存上一行,根据上一行计算当前行即可提交代码1:(动态规划,Runtime: 36 ms, faster than 89.08 % )class Solution: def ge原创 2020-07-05 19:35:51 · 216 阅读 · 0 评论 -
【LeetCode】118. Pascal‘s Triangle 解题报告(Python)
给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。在杨辉三角中,每个数是它左上方和右上方的数的和。解题思路:可以看出来每一行除了开始和结尾的1,其他位置元素都与上一行有关,那这就让我想到了动态规划这一行的值=上一行的上一列+上一行的这一列元素,即dp[i][j] = dp[i-1][j-1] + dp[i-1][j]提交代码:(动态规划,Runtime: 40 ms, faster than 65.14 % )class Solution: def generat原创 2020-07-05 18:59:18 · 264 阅读 · 0 评论 -
【LeetCode】117. Populating Next Right Pointers in Each Node II 解题报告(Python)
给定一个二叉树struct Node {int val;Node *left;Node *right;Node *next;}填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL。初始状态下,所有 next 指针都被设置为 NULL。进阶:你只能使用常量级额外空间。使用递归解题也符合要求,本题中递归程序占用的栈空间不算做额外的空间复杂度。解题思路1:这一题和【LeetCode】116. Populating原创 2020-07-05 18:28:24 · 2142 阅读 · 0 评论 -
Bert入门:使用Bert运行MRPC的demo成功案例
一、tensorflow版本必须是2.0以下我的版本import sysimport numpy as npimport tensorflow as tfprint('python版本是:', sys.version)print('python路径是:', sys.executable)print('numpy版本是:', np.__version__)print('tensorflow路径是:', tf.__version__)输出如下python版本是: 3.6.10 |Anaco原创 2020-06-02 16:02:17 · 7758 阅读 · 13 评论 -
jupyter notebook 增加,删除python kernel
https://blog.csdn.net/u012956394/article/details/88914161原创 2020-06-02 11:15:30 · 250 阅读 · 0 评论 -
安装gpu的pytorch
一、直接去官方网站就行,有命令https://pytorch.org/二、关于cuda版本原创 2019-12-22 14:18:33 · 214 阅读 · 0 评论 -
python写一个地球同步卫星图动态壁纸(第三部分)
————————————————————————————————前序:系统:Windows 10IDE:PyCharmPython:3.7.4python写一个地球同步卫星图动态壁纸(第一部分)第一部分主要是下载地球同步卫星图片到本地第二部分主要是修改同步卫星图片的尺寸第一部分: https://blog.csdn.net/L141210113/article/details/10...原创 2019-10-26 11:31:30 · 2857 阅读 · 2 评论 -
python写一个地球同步卫星图动态壁纸(第二部分)
————————————————————————————————前序:系统:Windows 10IDE:PyCharmPython:3.7.4python写一个地球同步卫星图动态壁纸(第一部分)这次第一部分主要是下载地球同步卫星图片到本地————————————————————————————————一、修改图片卫星图来源有两个比较好的:1. 去除风云四号卫星图水印说明: 上...原创 2019-10-20 00:12:32 · 1066 阅读 · 0 评论 -
python写一个地球同步卫星图动态壁纸(第一部分)
————————————————————————————————前序:系统:Windows 10IDE:PyCharmPython:3.7.4python写一个地球同步卫星图动态壁纸(第一部分)这次第一部分主要是下载地球同步卫星图片到本地————————————————————————————————一、首先我们先获取地球同步卫星实时图卫星图来源有两个比较好的:1. 风云四号卫...原创 2019-10-18 14:56:25 · 2876 阅读 · 2 评论 -
Python爬虫汉字乱码问题
最简单的爬虫,使用requests库进行爬取百度网页,会发现汉字打印结果可能出现乱码问题,代码如下:import requestsa=requests.get('http://www.baidu.com')print(a.text)打印结果:<title>ç¾åº¦ä¸ä¸ï¼ä½ å°±ç¥é</title></head> <body ...原创 2018-06-26 21:29:54 · 3722 阅读 · 3 评论 -
Python3中的md5加密
import hashlibdef my_md5(str): str += 'SYD' # 创建md5对象 hl = hashlib.md5() # Tips # 此处必须声明encode # 若写法为hl.update(str) 报错为: Unicode-objects must be encoded before hashing hl...原创 2018-06-27 17:56:16 · 279 阅读 · 0 评论 -
两张相似表的合并
因为两个程序爬取了两个网页的信息产生两个表,对表操作时不方便所以想到合并表,作者数据库不熟练不能写出sql语句进行合并,因此想到程序合并。原理是将A表数据全部查询出来,再把每一条的主键跟B对比如果存在则更新,不存在就插入。源码如下:import pymysqldb = pymysql.connect(host='127.0.0.1',port=3306,user='root',password=...原创 2018-07-11 08:47:21 · 416 阅读 · 0 评论 -
欧几里得算法与欧几里得拓展算法python版
一、欧几里得算法,采用递归,代码较为简单不加注释了,如果不懂可以留言a = 123456b = 7890def myojilide(a,b): if b == 0: print(a) else: myojilide(b,a%b)myojilide(a,b)二、欧几里得拓展算法,采用递归,代码较为简单不加注释了,如果不懂可以留言d...原创 2018-10-03 13:03:09 · 2415 阅读 · 0 评论 -
Python使用元组+递归简单解决八皇后问题
一、基本思想是用元素进入元组的先后表明行号,具体数值表明列号,注释很清楚了就不再说明,直接贴代码了import timedef yesnot(state,nextX): # 判断下一个皇后在当前状态下时候可放 nextY = len(state) #存放已经放了几行 ...原创 2018-09-28 23:39:39 · 958 阅读 · 0 评论 -
使用Python编写RSA
源码如下:class MyRSA(): def get_d(self, e, φ): i=0 while True: if (e*i)%φ == 1: return i else: i+=1 def get_e(self, φ):...原创 2018-10-18 23:34:04 · 442 阅读 · 0 评论 -
正则表达式
正则表达式[网上的正则表达式说明]菜鸟教程正则表达式语法正则表达式手册一个简单的Python案例这个案例爬去网页,通过正则表达式把网页中的ip地址提取出来,p = r’(?原创 2018-11-01 23:35:03 · 147 阅读 · 0 评论 -
【LeetCode】2. Add Two Numbers解题报告(Python)
题目:。将您获得两个链表,链表内容为非负整数以数字相反的顺序存储,每个节点包含一个数字两个链表整数相加后作为链表返回。例:输入:(2 - > 4 - > 3)+(5 - > 6 - > 4)输出: 7 - > 0 - > 8说明: 342 + 465 = 807。请特别注意以下情况:测试用例 说明 L1 = [0,1]...原创 2018-12-28 23:32:08 · 1384 阅读 · 0 评论 -
【LeetCode】4. Median of Two Sorted Arrays解题报告(Python)
参考博客测试代码:class Solution: def getKth(self, A, B, k): k = int(k) lenA = len(A); lenB = len(B) if lenA &amp;amp;gt; lenB: return self.getKth(B, A, k) if lenA == 0: r...原创 2019-01-04 19:05:58 · 1067 阅读 · 0 评论 -
【LeetCode】13. Roman to Integer 解题报告(Python)
题目翻译:罗马数字由七个不同的符号表示:I,V,X,L,C,D和M.符号值I 1V 5X 10L 50C 100D 500M 1000例如,两个用罗马数字写成II,只有两个加在一起。十二写为XII,简称为X + II。第二十七号写成XXVII,即XX + V + II。罗马数字通常从左到右从最大到最小。但是,四个数字不是IIII。相反,第四个写为IV。因为一个在五个之前...原创 2019-02-27 14:29:06 · 447 阅读 · 0 评论 -
【LeetCode】14. Longest Common Prefix 解题报告(Python)
题目翻译:编写一个函数来查找字符串数组中最长的公共前缀字符串。如果没有公共前缀,则返回空字符串“”。题目分析:这个题目是查找公共前缀字符串可以双循环一个一个比对,或者利用set()去发现不同元素。代码说明:if l >= len(strs[i]) or c != strs[i][l]:这句是说指针超出了某一个元素长度,或者某一位不相等了,那么返回前面相等的即可str...原创 2019-02-27 22:04:40 · 704 阅读 · 0 评论 -
【LeetCode】6. ZigZag Conversion解题报告(Python)
解题思路:这道题目的目的是将字符串摆成一个之字型,就是将字符串竖着排列,然后一列是长的一列是短的,长的列为numRows短的为numRows-2。所以用一个数组来存储每一行的字符,用变量row来记录当前访问到的行,依次将字符串s中的字符放入不同的行,然后将所有行的字符串串联起来。代码说明:1、zigzag = ['' for i in range(numRows)]表示产生numRow...原创 2019-02-23 18:04:37 · 657 阅读 · 0 评论 -
【LeetCode】15. 3Sum 解题报告(Python)
题目分析:这道题目让我想到了2Sum,所以向先固定一个数再按2Sum找,但是不可避免的出现重返列表。重复列表解决起来比较麻烦,再把结果双循环去重会TLE。所以去考虑先排序再固定一个数之后夹逼就可以了。代码说明:1、第一个if,如果笃定元素大于0,后面的一定都大于零(排过序),就不用再找另外两个。第二个if,目的是判断这个固定用的元素与上一次的相同避免无用功。target是固定的元素.j...原创 2019-02-28 10:50:16 · 357 阅读 · 1 评论 -
【LeetCode】8. String to Integer (atoi)解题报告(Python)
测试代码:class Solution: def myAtoi(self, str): str = str.lstrip() if str == '': return 0 flag = None if str[0] == '+': flag = 1 ...原创 2019-02-23 23:19:02 · 586 阅读 · 0 评论 -
【LeetCode】9. Palindrome Number解题报告(Python)
解题思路:这道题目的目的是判断数字是否为回文数,注意符号也算即-121不是回文数因为-121 != 121-。代码说明:1、str(x)将数字转换为str。2、str(x)[::-1] == str(x)对字符串使用切片方法使其倒序比较与源字符串是否相同。提交代码:class Solution: def isPalindrome(self, x): ...原创 2019-02-24 19:13:25 · 218 阅读 · 0 评论 -
【LeetCode】16. 3Sum Closest 解题报告(Python)
题目分析:这道题目与3Sum很类似,只是让返回与目标最接近的结果,所以比3Sum难一些,我们可以考虑3Sum的解法同时加入一个变量记录和与目标的差值。代码说明:1、这是存储返回的最接近的三个数的和他们与目标的差值res = nums[0] + nums[1] + nums[2]min_c = abs(target - res)2、如果差值小于最小差值,更新差值与返回值。if cha ...原创 2019-02-28 17:18:44 · 218 阅读 · 0 评论 -
在Python中安装dlib人脸识别模块
以 macOS、Ubuntu 为例,其他系统类似step 1. 安装相关依赖# for macOSbrew install cmake brew install boost brew install boost-python --with-python3 # for Ubuntusudo apt-get install build-essential cmakesudo...转载 2019-02-24 22:55:10 · 590 阅读 · 0 评论 -
【LeetCode】1. Two Sum解题报告(Python)
题目分析:这道题目是给定一个整数数组,判断是否可以使它的两个元素相加到特定目标并返回两个数字的索引。代码说明:开始想到了双重循环遍历,果然时间超限,这种情况可以建立一个字典用一次循环解决问题。循环取出nums里面的数字,使用target - nums[i]结果在keys里就证明成立了,不然就把nums[i]加入字典,注意是用数值作为下标,i作为字典里的数值。测试代码:clas...原创 2019-02-25 11:08:09 · 1548 阅读 · 0 评论