![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python学习心得
努力学python的设计师
这个作者很懒,什么都没留下…
展开
-
【pyqt5】文本框和下拉框的禁用
pytq5中文本框和下拉框控件的禁用原创 2022-10-21 14:40:11 · 1226 阅读 · 1 评论 -
【python心得】用FPDF创建PDF文档,及解决中文输入问题
对python中的FPDF库进行了介绍原创 2022-02-13 21:39:28 · 4597 阅读 · 2 评论 -
【Python心得】教你一招,定制软件再也不担心被白嫖!
学习Python快两年了,给别人做定制也有一年多的时间了,有时赚到1000块的快乐,往往不如被白嫖了100块来的记忆深刻,可以说,也是吃亏吃多了,慢慢就长了记性!先说说自己的经历,开始给别人写代码的时候,多数都是要个结果,并不会直接要源代码,如果需要源代码,那也是在付清全款之后,所以自己一般都是转成exe格式的文件发给对方,测试没有问题之后再付钱,这样做,风险基本上都是在自己这里,但在开始几单非常顺利之后,自己也放松了警惕,直到某次一个5000的订单,客户拿了软件之后,就没有然后了。。。痛定思痛,自己.原创 2021-09-21 21:59:26 · 1537 阅读 · 12 评论 -
【PyQt5】教你一招,分分钟撸一个网易云音乐的UI界面
在使用PyQt5设计UI界面时,为了让控件看起来更美观,可以尝试给控件添加背景,通过不同的背景来达到更加美观的效果。 改变背景一般有两种方法,一种是在python代码中添加,另一种是在Qt designer设计UI时添加,两种方法都可以,个人更倾向于第二种方法,原因很简单,代码添加需要运行之后看到效果,然后再调整;而第二种方法,可以直接拖拉边框调整,相对更灵活和方便。 具体添加方法如下:1.添加资源。在Qt desi...原创 2021-07-30 23:12:36 · 4711 阅读 · 18 评论 -
【python学习心得】Numpy数组相关操作(重置结构,叠加,转一维数组,切割和行列转置)
我们在使用Numpy过程中,经常会用到关于数组形状相关的一些操作,这里总结比较常用的5组操作,如下:1.reshape 与resize.两个方法都是关于数组结构重置的,但调用的方式不同,比如:import numpy as npa1 =np.random.randint(0,10,size=(4,5))a2 =a1.reshape(10,2) #reshape 调用a1.resize(10,2)如果我们结果进行打印,会发现是一样,但区别是采用reshape,我们需要一个参数接收返回值,但,但原创 2021-01-16 11:55:33 · 787 阅读 · 0 评论 -
【python练习】Pyqt5 lineEdit输入后自动跳转
最近在软件定制过程中,碰到一个需求,在lineEdit输入完成后,客户希望自动跳转到下一个对话框,在常规的槽函数用,通常我们可以用tab或者回车进行操作,将焦点直接设置到下一个输入框就可以,但却无法实现自动跳转,比如下图所示,是可以直接跳转的,为了实现上面的需求,无意中发现可以textChange()方法过渡,也就是说每次输入框内容发生变化时,调用函数,只要达到输入完成的条件,就可以直接跳转到下一个输入框。比如我这次需求,输入框限定输入0-9十个数字,所以可以直接定义槽函数如下即可:self.line原创 2020-12-17 13:25:53 · 2822 阅读 · 0 评论 -
【Python心得】解决PyQt5 UI更新同步问题
我们在使用Pyqt5制作UI过程中,通常的流程是:1.用Qt designer 设计好UI界面2.使用PyUIC将UI文件转换成py文件3.导入启动部分的代码但在实际使用过程中,我们经常会反复的调试UI界面,而每次重新生成py文件之后,如果我们在之前的同一个文件下编写代码,则会丢失这部分内容,为了解决这一点,利用python模块导入的思路,我们可以把UI生成的py文件作为一个模块,引用到新的文件中,在新的文件中只调用,关于槽函数等其他操作在新的文件中编写,这样就可以完美的解决代码重新生成的问题。自原创 2021-01-09 09:03:35 · 3451 阅读 · 1 评论 -
【python实例分析】docx模块-利用word样式表style简化代码
最近在做一个定制的时候,碰到了一个需求,需要用固定的格式输出到word中,第一反应就是用docx模块,但在实际应用中,碰到的问题是需要反复的更换样式,比如下面的例子:一段话中出现的多个不同的格式,字体不用,字号不同,间距不同,当然,我们可以通过代码进行设置,针对数量比较少的内容没有问题,但自己的需求是要批量输出,且格式较多,这样需要设置的代码就非常的多,且存在重复代码。面对这样的问题,我在无意中注意到写入文字两个方法,如下:doc.add_paragraph("要添加的文字")#添加段落parag原创 2020-12-17 12:10:10 · 1344 阅读 · 2 评论 -
【python实例】爬虫中HTML与中文的相互转化
我们在输入关键词进行爬取时,如果输入的是英文或者数字,通常都没有什么问题,但如果输入的是中文,因为编码的问题,通常会出现无法解码的错误。比如我们的关键词输入的是“风险”,但实际显示是KW后面的代码确实%B7%E7%CF%D5,所以如果我们想要进行中文的搜索,就需要对中文进行转换,通常需要用到urllib模块代码如下:import urllib.parse#Html代码中文转代码,和代码转中文ss1 ='%B7%E7%CF%D5'print(urllib.parse.unquote(ss1,原创 2020-10-17 16:32:01 · 901 阅读 · 0 评论 -
【Python实例分析】批量生成海报--自动添加姓名和二维码
最近参加了老男孩的一个python训练营,里面某项任务是要求在某个海报模板上批量添加姓名和二维码,生成类似下图的海报。图中我用红色方框标记的是需要修改的地方,先来聊下自己的思路:1.要进行图片操作,要用到pillow模块,可以直接进行文字的添加和图片的合成2.生成二维码可以用qrcode模块3.比较麻烦和没有头绪的是怎么去对文字定位,最后借助了PS,下文具体表述。第一步:因为自己会点PS,所以先对原图进行了修改,将二维码和姓名直接删掉,没有PS的小伙伴直接用手机上的软化也可以完成,之后保存为海原创 2020-10-12 15:57:20 · 4253 阅读 · 9 评论 -
【python小技巧】关于python中的字符对齐-ljust(),rjust(),center(),format()走一波
在我们需要输出内容的时候,为了页面的美观,常常需要进行格式化的输出,特别是对齐方式,最常用的对齐方法,或许是ljust(),rjust(),center()这三个吧。ljust():返回一个原字符串左对齐,并使用空格(或指定字符)填充至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串rjust():类似左对齐,为右对齐方式center():类似左右对齐,为居中对齐语法如下:str.ljust(要填充的字符个数,要填充的字符)实例如下:text ='我是标题'print(te原创 2020-08-22 15:26:07 · 769 阅读 · 0 评论 -
【python小技巧】startwith和endwith的文本匹配技巧
当我们需要对文本的开头或者结尾进行文字匹配的时候,通常会用到startwith和endwith两个方法,运行结果返回True或者Flase,可以用于判断,但有时我们需要的不仅仅是布尔值的判断结果,还会需要更多的数据,下面以endwith为例,介绍下这两个方法的使用技巧!**语法**endswith()方法语法:str.endwith(str, beg=0,end=len(string));**参数str – 检测的字符串。strbeg – 可选参数用于设置字符串检测的起始位置。stre原创 2020-05-26 17:03:48 · 1646 阅读 · 0 评论 -
自学python三个月,我接到了第一个定制,分享几点“坑”,请小心避过~
写在前面:1.本文比较长,干货比较多2.适合跟我一样的新手小白3.大神别略过,求带准确的说,是去年下半年开始接触python,但是因为工作等种种原因,一直都只是用非常缓慢的速度自己在看书,直到今年疫情爆发,在家待了一个半月,才有时间每天花十几个小时看书、看视频,即使三月份复工之后,每天都要坚持学习4个小时以上,虽然现在还是小白的很,但是至少直到后面的路该怎么走,接下来我会以下几个方面分享自...原创 2020-05-04 22:03:25 · 1418 阅读 · 0 评论 -
【python小技巧】字典的值比较大小及字典的排序
我们在对字典进行操作时,比如要比较大小或者排序这些操作,对于字典的键是可以的,但无法对值进行直接操作,比如下面的字典,price={ 'apple':20.59, 'BERKSHIRE':280000, 'amazon':296, 'alibaba':365}假设某个字典中存储了一些股票的价格,我们要筛选出价格最高的或者最低的股票,我们可以找出最低的价格,比...原创 2020-04-23 22:27:09 · 12876 阅读 · 0 评论 -
【python小技巧】并发中的'lock'---模拟买票的数据延迟问题
场景:我们在买票过程中,通常第一步先查找还有多少余票,然后点击购买,购买后,余票的数量-1,实际情况中是会有多人同时买票,其实就是一个并发的过程,但这个过程中,因为并发的子进程在读取数据,修改回填的过程中,可能会因为出现的延迟,造成数据的错误,比如这个例子,我们可以模拟20个人同时买票,设计1张余票,代码如下:from multiprocessing import Processfrom mu...原创 2020-04-02 12:01:39 · 168 阅读 · 0 评论 -
【python小技巧】并发中的守护进程---应用于主进程代码执行完成后,子进程同时结束的场景
当我们使用并发编程时,主进程会随着子进程的结束而结束,但子进程却不会随着主进程的结束同时结束,比如下面的测试代码,from multiprocessing import Processimport timedef func(): while 1: time.sleep(0.5) print('我在运行')if __name__=='__main__...原创 2020-04-02 10:37:07 · 498 阅读 · 0 评论 -
【python】模拟淘宝的客服自动回复系统-socket,json,time模块的应用
最近在研究soctet模块的过程中,尝试做个小的练习,第一反应是做个类似qq或者微信的即时聊天,这个需求相对比较简单,采用UDP协议很快就可以实现,为了提高点难度,于是决定尝试模拟淘宝的自动回复功能,决定要实现以下几个功能:1.客户端输入问题,抓取关键词后自动回复2.关键词的回复,也就是话术的内容,放到txt文档中,可以根据固定的格式增删改查,比如在txt文档中增加或者减少内容,代码执行...原创 2020-03-27 11:33:52 · 4877 阅读 · 2 评论 -
【python小练习】彩票系列-大乐透
今天的彩票系列练习是体彩的大乐透,前几天分别做了3D福彩,双色球和七乐彩的练习,链接如下,仅供大家参考。【python小练习】彩票系列-福彩3D【python小练习】彩票系列-双色球【python小练习】彩票系列-七乐彩说实话,随着python的不断学习,越来越深刻的感受到编程的魅力,比如自己刚学会编程的时候,只会用列表,for循环去写代码,碰到彩票的问题,第一反应就是往列表里面去添加元素...原创 2020-03-26 10:46:38 · 2465 阅读 · 0 评论 -
【python小练习】彩票系列-双色球
昨天写了福彩3D的代码,有兴趣的可以翻翻下面的链接。【python小练习】彩票系列-福彩3D今天写个双色球的吧,先说说思路。1.定义一个空列表red,从1-33中生成随机数,如果不在red中,就添加进去,while循环直到元素有6个停止。2.从1-16中生成随机蓝球3.用zfill格式化输出即可代码如下:import randomprint('*'*6+'福彩双色球'+'*'*6)...原创 2020-03-24 12:03:08 · 1490 阅读 · 0 评论 -
【python小练习】彩票系列-福彩3D
之前写过一篇帖子怎么生成福彩3D的号码,并且产生中奖号码,并判断是否中奖,用的思路就是生成随机数,然后添加到列表中打印。具体的链接如下,供大家参考:python练习题】随机生成福彩3D号码,模拟开奖并判断是否中奖如果不进行判断,仅仅是输入结果的话,其实还有更简单的方法,就是用zfill()方法。zfill(width):指定字符串的长度。原字符串右对齐,前面填充0。width:要指定的字符...原创 2020-03-23 09:30:19 · 3009 阅读 · 0 评论 -
【python练习题】随机生成福彩3D号码,模拟开奖并判断是否中奖
今天学习完,随手练习了下函数的的定义,说说要求:输入要购买彩票的数量,模拟福彩3D的号码的生成,模拟彩票开奖情况,并判断是否中奖,中奖后中奖号码的数量,及中奖金额。说说思路:1.定义生成彩票的函数。随机生成3个0-9的数字,并添加到列表中,生成1个3D号码,再将这个号码添加到总的列表中。def lottery(num): list_sum=[] #定义总的彩票购买池 ...原创 2020-02-24 22:29:56 · 5732 阅读 · 0 评论 -
python利用win32com中的语音功能,给孩子做个计算题
疫情期间,孩子一直在家,快上小学了,试着让他练习下10以内的加减法,但问题在于孩子还不认字,于是决定利用python自带的语音功能,做个简单的交互。思路如下:1.生成2个10以内的随机数。2.生成运算3.判断结果4.每答对一题加分,最后输出代码比较简单,直接上了import randomimport win32com.clientdef speak(s): speaker...原创 2020-03-18 11:44:14 · 125 阅读 · 0 评论 -
python中的双下方法---带你从底层逻辑看python(__str__、__repr__、__del__、__call__)
我们在写代码的过程中,往往都是直接去取调用函数,比如len(),print()input()等等,事实上,这些方法或者函数在调用过程中,触发了很多内在的运行机制和底层逻辑,深入研究之后,我们能看到不一样的python,下面跟大家分享几个双下方法及他们的运行逻辑。双下方法:指的是带双下划线的方法,比如我们在类中非常常见的的__init__,今天我们要介绍的是__str__、repr、del、cal...原创 2020-03-17 12:32:53 · 329 阅读 · 0 评论 -
python中的反射---用字符串的调用函数和方法
我们在实际应用中会碰到这样的场景:写好代码之后,我们希望通过输入代码指令直接调用某个函数或者方法,通常的做法,我们会采用if语句来实现,a=input('<<<')if a == 要输入的指令代码块elif a==要输入的指令代码块....当需要的判断比较少的时候,这样做是没有问题的,但当需要判断的代码比较多的时候,代码就会变的非常长。这时我们可以利用反射来快速...原创 2020-03-17 10:39:52 · 2998 阅读 · 1 评论 -
【python心得】面向对象中你肯定会用到的的三个内置装饰器 @property @classmothod @staticmothod
当我们在python中用面向对象编程时,为了使代码更加简洁,或者实现一些特殊功能,往往会用到python内置的装饰器,其中,从常用的三个是@property @classmothod@staticmothod先来介绍@property,我们在类中调用对象的方法时,会使用对象.方法()的方式,当代码封装之后,如果我们不希望通过这样的方式调用,或者让调用的方式看起来像调用属性一样,例如采用对象...原创 2020-03-16 18:57:22 · 196 阅读 · 0 评论 -
python中类的封装--详解类中的私有变量、私有方法和静态属性
当程序完成的时候,有些数据和代码我们就不希望别人调用或者查看的时候,可以对程序进行封装,在python中主要就是进行变量或者方法的私有化。我们可以在变量或者方法前面加上__,两个下划线来进行私有化,使其变成私有变量或者私有方法,这样在外部就不可以直接调用了,类中私有化的内容由3个,分别是1)私有化变量2)私有化方法3)静态变量1.先说下私有化变量,比如下面的代码class Person...原创 2020-03-14 12:32:36 · 529 阅读 · 0 评论 -
疫情之后,我打算用python买彩票!(一)
受到疫情的影响,目前福利彩票还没有开始销售,无聊之下,自己陪自己写个程序模拟购买的过程,等到疫情过去,这就是我的彩票利器了,拿去不谢!之前写的3D福彩的模拟购买并查看是否中奖的代码,可以参考下面的链接:https://editor.csdn.net/md/?articleId=104487169我预想要达到的效果1.输入购买多少注,自动生成2.模拟生成中奖号码3.判断是否中奖,中了多少...原创 2020-03-11 08:40:55 · 893 阅读 · 1 评论 -
【python练习题】利用生成器实现对文件输入的监听及过滤
练习题:当文件保存时,对当前保存的内容进行抓取,比如函数运行时,先对所有的内容进行读取,文件写入新的内容,保存的同时,抓取新的内容,实现实时的监控!升级版:可仅对对敏感词进行抓取,比如字段中含有python,则进行抓取,否则不抓取思路:1.定义一个生成器函数,先读取文件内容2.如果读取的内容不为空,yield 当前值3.输入内容def tail(file): with ope...原创 2020-02-28 22:49:14 · 157 阅读 · 1 评论 -
【python练习】生成不连续范围的随机数以及生成随机验证码
今天做练习的时候碰到这样一个需求:生成随机的5位验证码,以及后续的输入验证,相对后面的验证比较简单,就不赘述了。要求验证码由数字、字母组成,位置不固定。思路:1.由ascii码转换成数字和字母,用到chr()方法2.数字的ascii码范围是48-57,大写字母是65-90,小写字母是97-1223.用随机函数random生成的范围是单个的,所以考虑用2个随机函数嵌套,第一层生成1-...原创 2020-03-07 10:12:45 · 1621 阅读 · 0 评论 -
函数装饰器的基本格式,带参数的装饰器,以及多个装饰器同时装饰一个函数
目录:1.装饰器的标准格式,及使用方法2.带参数的装饰器3.多个装饰器装饰同一个函数1.装饰器的标准格式,及使用方法我们在使用函数的过程中,有时在定义好一个函数之后,还想增加一些新的功能,在不改变原函数的情况下,可在原函数的前后增加新的代码。方法:在定义函数过程中,再定义一个新的函数,通过传参的方法进行嵌套实现功能。基本语法如下:def wrapper(func()): d...原创 2020-02-27 22:13:26 · 424 阅读 · 0 评论 -
【python练习题】利用列表对文件的格式化输出
很多数据在采集之后,数据内容往往很难直接阅读,比如下面的数据是以某种格式排布的一系列格式,我们在读取时,需要转换为可读的形式,比如转换后变成下面的样式思路:1.读取文本中的信息,然后拆分添加到空的列表中在这里插入代码片with open('log','r',encoding='utf-8') as l: for i in l.readlines(): li.ap...原创 2020-02-27 18:35:46 · 743 阅读 · 0 评论 -
判断输入的内容为浮点数
常规判断是否为数字的方法是用isdigit()方法直接判断就可以了,但是对于浮点数而言,结果是False,所以我们可以用isdigit()判断是否为整数,却无法判断是否为浮点数,否则会报错。利用这一点,参考下文https://www.zhihu.com/question/29906744做了修改,具体如下:def num(f): try: f=float(f) ...转载 2020-02-26 17:30:14 · 1702 阅读 · 0 评论 -
python isinstance()函数的用于列表嵌套的循环输出
要求:输出列表[“dd”,“sd”,“sadf”,[“as”,“sd”,“aa”]]中的每个元素,如果遇到列表,则输入嵌套列表中的元素,输出结果为ddsdsadfassdaa思路:利用for循环可以实现列表的遍历,但是嵌套的列表会整体输出。所以,考虑在遍历中加入if语句判断是否为列表,如果是,再次循环输出。判断是否为列表,可以用isinstacn(str,list)str:为要...原创 2020-02-18 00:20:40 · 732 阅读 · 0 评论 -
python中isdigit() isalpha()用于判断字符串的类型
要求1:统计某个字符串中的数字数量并输出,例如字符串为“adsfsd1adf23sdfa12”思路:遍历字符串,用isdigit()方法判断是否为数字,如果为数字,统计+1代码如下:str=input("请输入任意字符串")num=0 #统计基数for i in str: #遍历字符串 if i.isdigit(): #判断是否为数字 num+=1...原创 2020-02-18 00:19:24 · 1208 阅读 · 1 评论