Python
xiaozhi_小志
Stay Hungry! Stay Foolish!
求知若饥 虚心若愚
展开
-
手写Django分页组件
一次编写,多次使用""" @Author: xiaozhi @Email: xz950523@163.com @FileName: pagination.py @DateTime: 2022/5/27 @SoftWare: PyCharm"""""" 自定义分页组件 如想再次使用,需做如下几件事: 在视图函数中: def pretty_list(request): # 1. 根据自己的情况去筛选自己的数据 q原创 2022-05-27 13:52:27 · 312 阅读 · 0 评论 -
Python和OpenCV相结合实现相关录屏功能
import timeimport numpy as npfrom mss import mssimport cv2bounding_box = {'top': 66, 'left': 0, 'width': 858, 'height': 466}sct = mss()timer = time.time()while True: start = time.time() sct_img = sct.grab(bounding_box) cv2.imshow('win原创 2022-03-01 14:08:08 · 3007 阅读 · 0 评论 -
移动零
要求给定一个数组nums,编写一个函数将所有的0移动到数组的末尾,同时保持非零元素的相对顺序。class Solution: def moveZeroes(self, nums: List[int]) -> None: """ Do not return anything, modify nums in-place instead. """ a = 0 b = 0 while a < l原创 2021-02-25 17:21:46 · 132 阅读 · 0 评论 -
加一
要求:给定一个由整数组成的非空数组所表示的非负整数,在该书的基础上加一。最高位数字存放在数组的首位,数组中每个元素只存储单个数字。可以假设除了整数0之外,这个整数不会以零开头。class Solution: def plusOne(self, digits: List[int]) -> List[int]: if digits[-1] < 9: digits[-1] += 1 return digits原创 2021-02-25 15:31:00 · 150 阅读 · 0 评论 -
Python——itertools模块
itertools包含特殊用途的迭代器函数。在for ... in循环调用迭代函数,每次会返回一项,并记住当前调用的状态。即使chain()的参数只是单个迭代对象,它也会使用参数进行迭代:cycle()是在一个在它的参数之间循环的无限迭代器:accumulate()计算累积的值。默认是累加和:当然,我们也可以把一个函数作为accumulate()的第二个参数,代替默认的加法函数。这个参数函数应该接受两个参数,返回单个结果。下面的例子计算的是乘积:...原创 2021-01-19 14:21:42 · 165 阅读 · 1 评论 -
Python——双端队列:栈+队列
deque是一种双端队列,同时具有栈和队列的特征。它可以从序列的任何一端添加和删除项。现在,来看看从一个词的两端扫向中间,判断是否为回文。函数popleft()去掉最左边的项并返回该项,pop()去掉最右边的项并返回该项。从两边一直向中间扫描,只要两端的字符匹配,一直弹出直到到达中间:这里把判断回文作为双端队列的一个简单说明。如果想要写一个快速的判断回文的程序,只需要把字符串反转和原字符串进行比较。而Python没有对字符串进行反转的函数reverse(),但还是可以利用反向切片的方式进行反转,如下原创 2021-01-19 12:02:03 · 201 阅读 · 0 评论 -
Python随笔
输出某个路径下的所有文件和文件夹的路径import osdef print_dir(): filepath = input("请输入一个路径:") if filepath == "": print("请输入正确的路径") else: for i in os.listdir(filepath): print(os.path.join(filepath,i))print(print_dir())输出某个路径及其子目..原创 2020-12-10 13:51:57 · 194 阅读 · 0 评论 -
Python3支持emoji表情!!!
无意中看到了Python3居然可以支持emoji表情,之前还不知道,觉得很有意思。pypi现有的库emoji来处理emoji字符串:https://pypi.org/project/emoji/安装:pip install emoji --upgrade小试牛刀:import emojiresult = emoji.emojize("Python is :thumbs_up:")print(result)result = emoji.demojize("Python is ????")原创 2020-11-26 17:39:34 · 780 阅读 · 0 评论 -
Python中的垃圾回收机制
大多数情况下,Python程序员不需要手动进行垃圾回收,因为Python中有自动的垃圾回收机制,能自动的将不需要使用的实例对象进行销毁。无论是手动销毁还是自动销毁,都会调用__del__()方法。class CLanguage: def __init__(self): print("调用__init__()方法构造对象") def __del__(self): print("调用__del__()销毁对象,释放其空间")clangs = CLanguag原创 2020-11-26 15:27:16 · 286 阅读 · 0 评论 -
Python3编码问题
文章链接:Python3中遇到UnicodeEncodeError: ‘ascii’ codec can’t encode characters in ordinal not in range(128)原创 2020-11-12 15:45:39 · 107 阅读 · 0 评论 -
Linux卸载自带的Python
卸载自带的Pythonrpm -qa | grep python | xargs rpm -e --allmatches --nodeps删除所有与Python相关的文件whereis python | xargs rm -rf原创 2020-10-24 20:01:35 · 262 阅读 · 0 评论 -
关于pip升级问题
使用pip安装模块或者更新pip时经常会遇到以下问题:我承认这很让人头疼,至少我是这样认为的。那么如何解决呢?我们可以使用国内的源:更新pip使用:python -m pip install --upgrade pip -i https://pypi.douban.com/simple使用pip安装模块时可以使用:pip install 模块名 -i https://pypi.douban.com/simple...原创 2020-08-26 16:55:59 · 200 阅读 · 0 评论 -
用Python实现小学时数学老师教的分解质因数
输入一个正整数,将这个数分解质因数。例如:输入20,输出20=2 * 2 * 5代码实现:n = int(input("请输入一个正整数:"))for k in range(2, n+1): while n != k: if n % k == 0: print(k, end="*") n = n / k else: breakprint(int(n))>>> 请输入原创 2020-07-31 17:34:14 · 406 阅读 · 0 评论 -
使用Python生成器实现“杨辉三角”
生成器: 一种一边循环一边计算的机制,称为生成器(generator)。要创建一个generator,有很多种方法:方法一只要把一个列表生成器的[]改成(),就创建了一个generator。方法二如果一个函数定义中包含yield关键字,那么这个函数就不是一个普通的函数,而是一个generator。注意:用for循环调用generator时,拿不到generator的return语句的返回值。如果想要拿到返回值,必须捕获StopIteration错误,返回值包含在StopIteration的val原创 2020-07-27 13:50:35 · 532 阅读 · 0 评论 -
Django+ajax 实现动态加载下拉框
项目开发中一部分需要实现下拉框功能,在网上找了一些资料,杂七杂八的,缺胳膊少腿的挺多,本来就很混乱,这一看更懵了。决定花点时间研究研究清楚。我认为的实现原理: 大概就是后台从数据库里面拿到数据,然后处理为json,通过ajax接收后台处理好的json,然后填充到select中,然后展示出来。而json一般为字典形式的数据,所以select中展示的数据是字典中的value值(因为我想要的值是字典中的value值),所以需要在js中处理一下,从而取得value值。以上是我的想法及实现方式,如果哪里有错误,还请原创 2020-07-03 15:12:56 · 1734 阅读 · 2 评论 -
Django 批量修改数据
网上搜了好多关于批量修改数据的方法,可能我基础很差,没咋看懂,所以决定用自己的想法实现,我也不知道能不能算是批量修改,但是最终的效果是我想要的,应该算是吧。我的大体思路是这样的:先获取模态框里的值,然后把值填入到所勾选的数据相对应的字段里。因为是批量对数据操作,所以勾选数据的功能是必不可少的,勾选每一行获得的id进行编辑,然后把勾选的id放入一个数组,注意,这里的id集存到数组的时候,会变为这样的形式['1,2,3'],这样子不便于后面的遍历查找相同id的数据,所以需要使用split()方法处理一下,等处原创 2020-06-30 11:36:17 · 2439 阅读 · 0 评论 -
Python-Django下载文件
Python中有三种方法实现文件下载,可以是office任意形式的文件。让我们来看看都有哪几种方式:使用HttpResonse使用SteamingHttpResonse使用FileResonse因为只是想实现这个功能,所以并没有深层次的研究。博主使用的是第三种方式,其实相比来说,第三种方式比较简便,所以力荐第三种方式。让我们来看看具体代码:views.py# 下载docx文件def download(request): file = open('D:\django-a原创 2020-06-10 15:39:00 · 317 阅读 · 0 评论 -
MySQL数据库自增字段从1开始
向数据库中添加数据时,如果设置了id自增,如下图:id就会一直以+1自增。但有时候想让自增重新从1开始自增,那怎么办呢?我们可以使用 truncate table '表名' 语句,因为博主使用的工具是workbench,所以只要这样:,删除所有的行之后,再次添加数据之后,自增字段就会从1开始。...原创 2020-05-20 17:40:28 · 3056 阅读 · 2 评论 -
Pycharm虚拟环境
Pycharm虚拟环境误删之后的补救由于这次做项目误删了python自带的虚拟机,费尽了力气去找补救的方法,都要想过卸载重新安装了。但是有幸在某度里面找到这样一种方法,再次特别感谢。链接奉上...原创 2020-04-30 18:15:55 · 311 阅读 · 2 评论 -
Python算法——插入排序
python算法之插入排序插入排序(Insertion sort):指随机生成一组数字并使用插入排序的方法排序后输出(由小到大)。技术说明插入排序是指已知一个有序的数据序列,要求在这个已经排好的数据列中插入某一个数,而且要求插入这个数之后数列仍然是有序的。而插入排序的基本操作就是将一个数据插入到已经排好顺序的有序数据中,从而得到一个新的、个数加一的有序数据,此算法适合用于少量数据的排...原创 2019-08-03 17:02:04 · 308 阅读 · 0 评论 -
python中的快速排序算法的理解
python中的快速排序算法的理解快速排序的方法采用分治法,其原理是在已知数组中选取第一个数为基准数,接下来是排序过程,将比基准数小的数放到它左边,比基准数大的不动,然后经过一次排序,左边部分的数都比基准数小,右边的都比基准数大,然后对左右两边分别进行同样的排序。直到最后只剩下一个数字。例:list=[6,8,-2,3,7,1,10]1:根据上述方法以第一个index为排序的基准数,然后将列...原创 2019-08-02 14:57:22 · 452 阅读 · 0 评论 -
多线程——生产者和消费者模式
生产者消费者问题,也称有限缓冲问题,是一个多线程同步问题的经典案例。改问题描述了两个共享固定大小缓冲区的线程——即所谓的“生产者”和“消费者”——在实际运行时会发生的问题。生产者的主要作用是生成一定的数据放到缓冲区中,然后重复此过程;消费者也在缓冲区消耗这些数据。该问题的关键就是要保证生产者不会在缓冲区满时加入数据,消费者也不会再缓冲区空时消耗数据。任务说明:创建一个共享区,共享区的容...原创 2019-08-14 08:42:09 · 343 阅读 · 0 评论 -
Fibonacci sequence(斐波那契数列)之兔子繁殖问题
斐波那契数列问题描述已知有一对兔子,从第一个月起,到第三个月会生一对小兔子,而小兔子再过三个月之后又会生一对小兔子……以此类推下面是推到过程:第一个月: 1 对小兔子第二个月: 1 对小兔子第三个月: 1 对大兔子 1 对小兔子(本月生)第四个月: 1 对大兔子 1 对小兔子(本月生) 1对小兔子(上月生)第五个月: 2 对大兔子 2 对小兔子(本月生) ...原创 2019-08-11 15:24:08 · 859 阅读 · 0 评论 -
Python之阿姆斯特朗数
什么是阿姆斯特朗数如果一个正整数等于其各个数字的立方和,则这个数被称为阿姆斯特朗数(亦称为自恋性数)以下是代码实现@Author: xiaozhi@Date: 2019-08-11# 给定一个范围(1-10000)以内,计算阿姆斯特朗数num = input("请输入一个范围:") #if num.isdigit(): num = int(num) for i i...原创 2019-08-11 15:38:21 · 1787 阅读 · 0 评论 -
Python——阶乘
*问题描述:输入一个数m,求m的阶乘。*输入描述:一个整数,代表要求的阶乘。*程序输出:一个整数,代表所求的阶乘# 阶乘num = input("请输入数字:")if num.isdigit(): # 天然要求输入的是大于等于0的自然数 num = int(num) # if num == 0: # print(1) # pass ...原创 2019-08-11 15:46:07 · 2104 阅读 · 0 评论 -
K-Means算法——数据挖掘十大经典算法之一
算法思想:以空间中K个点为中心进行聚类,对最靠近他们的对象归类。通过迭代的方法,逐次更新各聚类中心的值,直至得到最好的聚类效果。算法描述:(1)适当选择x个类的初始中心;(2)在第k次迭代中,对任意一个样本,求其到c各中心的距离,将该样本归到距离最短的中心所在的类;(3)利用均值等方法更新该类的中心值;(4)对于所有的x个聚类中心,如果利用上述(2)(3)的迭代法更新后,值保持...原创 2019-08-12 22:10:46 · 366 阅读 · 0 评论 -
梯度算法(导数下降)
梯度下降算法一个变量如下:# 梯度下降 == 导数值下降import matplotlib.pyplot as pltimport numpy as np#f(x) = x^2 #目标函数#f`(x) = 2*x #梯度函数:一阶导数函数# 梯度下降算法使一个方法,是帮助我们找到极值点的方法costdef targetFunc(x): return x ** 2...原创 2019-09-05 19:58:23 · 619 阅读 · 0 评论 -
python实现冒泡算法
python算法之冒泡排序技术说明冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺秀错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端,故名“冒泡排序”。 bubbleSort.py...原创 2019-08-03 15:33:21 · 938 阅读 · 0 评论