python学习
文章平均质量分 73
南波兔不写巴哥
这个作者很懒,什么都没留下…
展开
-
python学习-7-异常 错误 调试 测试
python学习 异常 错误 调试原创 2022-07-02 10:56:38 · 401 阅读 · 1 评论 -
python学习-6-面向对象
python的面向对象学习原创 2022-06-20 22:02:38 · 311 阅读 · 0 评论 -
python学习-4-函数式编程,高阶函数,匿名函数,装饰器
函数式编程原创 2022-06-02 14:32:35 · 321 阅读 · 1 评论 -
python学习-3-切片,迭代,列表生成式,生成器,迭代器
python的切片,迭代,列表生成式,生成器,迭代器原创 2022-06-01 16:05:13 · 181 阅读 · 0 评论 -
python学习-2-函数的默认参数,可变参数,关键字参数
默认参数默认参数要放在参数列表的最后函数的默认参数也是一个变量,如果对它修改,它的改变是会累加的 def add_end(L=[]): L.append('end') return L add_end() print(add_end()) # ['end','end']也就是说,l=[]的初始化操作只会做一次,而l会一直存在可以改成 def add_end(L=None): if L is None:原创 2022-05-26 21:17:42 · 301 阅读 · 0 评论 -
python学习-1-python基础
因为工作需要,所以重新稍微正式的学习下python,之前就纯粹拿python当伪代码写,实在不尊重,之后只会记录些自己之前没有注意到的知识点,因此本系列并非教学博客,顶多是学习笔记关于python代码无法加密c语言发布程序可以不暴露源码,将exe发布出去,java和把jar包打出去,从机器码反推源码不可能编译型语言可以加密,而python这种解释型语言不可能python可跨平台python解释器官方解释器 CPython, 使用c语言开发当前使用最广PyPy目标为运行原创 2022-05-26 16:51:00 · 154 阅读 · 0 评论 -
python中如何建立一个自己的包
一些概念模块:我们写的每个py都是一个模块包:模块的集合,就是一个包,通常包和directory的区别在于是否有__init__.pyinit.py: 它可以空着,标识该目录为包;也可以写一些方法和变量(不建议写);还可以用__all__=[""]来限制 from xxx import * 引入哪些模块如何建立(示例)目标: 我们要建立ansemb包,作为一个工具包,供其他py依赖,是以下的结构其中test要引入同目录下的test2其中dataset中不能暴露test2 |--try原创 2022-01-13 19:21:50 · 2780 阅读 · 0 评论 -
python中同包、不同包引用总结;no module、no known parent package等报错信息解决
本文主要是总结我这两天对于python中的引用以及相应报错信息的总结从而可以指导对自己建包,以及如何使用包,处理引用问题。py可以引用同目录下包的所有模块这是既定事实,所以当你调用一个第三方的包时,就可以将py和包放在同一目录下当然这其中可能会出现pycharm引用标红的问题,那是pycharm的问题,对于python来说不影响(详情可见 运行没有问题,pycharm却标红引用?)同时,因为pycharm会因为工作区的问题,将正确的引用标红,那么反推,如果pycharm没有标红,也不代表没有引原创 2022-01-13 19:02:27 · 1750 阅读 · 0 评论 -
运行没有问题,pycharm却标红引用?
问题描述本文出现的原因在于我验证 py可以调用同级目录下包的任意模块 这一既定事实的过程。整个代码结构如图所示fine.py 与 ansemb在同一级目录下,所以它可以调用ansemb.config但在实际操作中却发现,pycharm会标红然后我运行了一下发现是可以运行的,但标红是什么道理??? 这就很奇怪了问题原因经过百度,发现了原因(链接见文末,感谢)python在执行fine.py时,以fine所在目录为工作区而pycharm在我们进行代码编辑,预编译查错时,是以我们的项目顶原创 2022-01-13 15:41:04 · 5764 阅读 · 0 评论 -
python实现 List规范写入txt & txt中规范读取List
实验过程中需要进行类列表式的数据结构存储,txt是常用的,比较方便且易于观察的存储格式没找到好用的api实现该功能我便自己写了一个小工具,放上博客来供使用只限于int类型的元素使用支持多层list嵌套方法叙述writeList2txt(file,data)writeList2txt(file,data)writeList2txt(file,data),将List写入txt文件,file为写入文件,data为list,写入的格式为[[4], [3, 2, 5], [2, 1, 4]].原创 2021-12-23 16:34:09 · 2034 阅读 · 0 评论 -
python大数据实现top k问题
问题场景数据量较大, 数据有排序的根据(我这里是推文, 根据粉丝数量进行排序)数据可能无法全部读取进内存根据推文, 找出粉丝数量前300的用户问题解决对于大量的推文, 先对其进行划分, 将它们划分到多个小的文件, 保证每个文件都能轻松放进内存挨个读取推文, 用小顶堆来存储前k个用户, 堆容量小于k, 就直接放入, 如果大于, 则与堆顶(最小)元素进行比较, 大者入堆最终将堆中元素输出即可因为之前都是用的java, python这边不是很熟悉from queue import Pr原创 2021-08-26 10:12:50 · 285 阅读 · 0 评论 -
Gensim包使用:unable to import ‘smart_open.gcs‘, disabling that module 错误解决
问题描述在使用Gensim这个包时,控制台报出了如下错误。针对该问题,上百度搜了好几分钟,看到了不同种的答案,尝试了几次,发现没法解决,最终还是在知乎上找到了适合我的正确答案。问题解决报错原因:在smart_open gcs.py 文件中有 import google等三行代码,但python库中未安装google包解决办法:pip install google,但之后我发现google包未安装成功;尝试了pip install google-cloud-storage,之后google成原创 2020-09-23 15:45:18 · 390 阅读 · 0 评论 -
python中dict.keys()和list的元素是否存在查询速度
问题描述及解决今天写了个简单的脚本,将有向图转换成无向图,其中有一定的转换规则,本身脚本没啥难度,但是麻烦在数据量很大,其中需要进行查询边是否存在边集之中。这个边集有200w的数量级,然后查询的次数是接近200w次。我想当然的采用了list,每次在list中进行查询,结果跑了大半个小时,三分之一还没跑到(我估计8分之一都够呛)。然后我就在想有没有办法能够缩短运行时间,我是觉得问题出在这个in上,然后在网上一查,果然是这个问题,并且也有解决的办法。python中list对象的存储结构采用的是线性表,所原创 2020-09-14 20:14:02 · 812 阅读 · 0 评论 -
init_dgesdd failed init 问题原因
问题描述在运行ksvd的python代码过程成中,这次跑了一个新的矩阵,结果出现了一个红色的提示信息:init_dgesdd failed init。具体如图所示:既不是报错,也不是异常,但是最后的结果很明显不对。问题原因在百度上查询,根本就没有查到这个问题,只好出去google了一下。最终应该是得到了解决。之前对矩阵进行分解就没有问题,怎么这次就出现了问题呢?原因在于,我的这个矩阵太大了。问题出在u, s, v = np.linalg.svd(y)这一行代码上。stackoom给的回答是原创 2020-09-09 16:16:18 · 3899 阅读 · 0 评论 -
pycharm中同一目录下py文件不能相互调用
问题描述在使用其他人写的python代码时,因为一开始接触pycharm,不是很熟悉具体如何使用,发现同一目录下py文件相互之间不能引用,import上出现醒目的横线,也不知如何解决。如下图所示问题解决对代码所在目录文件进行上图操作,将其设置为Sources Root。设置完成之后,原本目录从灰色变成了蓝色。py文件相互调用的问题也就随之解决。...原创 2020-08-08 14:55:13 · 4689 阅读 · 8 评论 -
numpy常见问题随记
最近在做ksvd相关的东西,在写代码时使用到了numpy,因为是第一次接触,所以其中遇到了不少的问题,本篇博客便将它们记录下来,供将来的自己复习使用,也希望能帮到其他人。numpy中向量与矩阵的转换在我需要计算cj∗xj=rc_{j}*x_{j}=rcj∗xj=r中的xjx_{j}xj时,其中cjc_{j}cj是矩阵CCC的一列,我就直接使用numpy.linalg.pinv(cj).dot(r)[0]来计算了,然而,却不行,报出了Error:must be an array of at lea原创 2020-07-09 17:25:36 · 1051 阅读 · 0 评论 -
Python中yield关键字 生成器通俗理解 快速入门
可迭代对象为了说明可迭代对象,首先我们要知道,迭代的概念。我们先来看一个实例:ls = [1,2,3,4,5]for i in ls: print(i)上面的实例非常简单,我们创建了一个列表ls,并且用for语句遍历这个列表的每一个元素。这里列表ls被遍历的这个行为,就称之为迭代。明白了迭代的概念之后,你就会发现,在Python中,能够被迭代的不只有列表,例如你还可以迭代字符串,元组,文件,字典等等,这些能够被迭代的对象,就称作可迭代对象。生成器迭代固然是处理大量数据的好方法。但是以转载 2020-05-13 16:20:54 · 288 阅读 · 0 评论 -
十分钟学会正则表达式
这篇不仅是推荐给大家,也是为了自己以后正则表达式忘记了能通过这篇文章的链接来重新学习吧。正则表达式教程这个链接来自一个比较厉害的程序员崔庆才的主页,最近因为实验室的需要,在自学爬虫,跟着崔大佬的爬虫教程一步步走,刚好看到正则表达式这一章,感觉讲的简单易懂,给的例子也是很实用,比我之前看的很多正则表达式的博客讲的好多了,所以推荐给大家,也给自己mark一下。在线正则表达式测试工具这个链接是在...原创 2020-04-05 11:38:11 · 270 阅读 · 0 评论