python基础
零一睡不醒
人生苦短
展开
-
装饰器模板
原文:https://www.runoob.com/w3cnote/python-func-decorators.html一、概述1、前提:python 中的函数可以像普通变量一样当做参数传递给另外一个函数。装饰器本质上是一个 Python 函数或类,它可以让其他函数或类在不需要做任何代码修改的前提下增加额外功能,装饰器的返回值也是一个函数/类对象。它经常用于有切面需求的场景,比如:插入日志、性能测试、事务处理、缓存、权限校验等场景,装饰器是解决这类问题的绝佳设计。有了装饰器,我们就可以抽离出大原创 2020-10-30 16:31:04 · 399 阅读 · 0 评论 -
关于方法重载
一、何为重载在其他语言中,可以定义多个重名的方法,只要保证方法签名唯一即可。方法签名包含3个部分:方法名、参数数量、参数类型。Python中,方法的的参数没有声明类型(调用时确定参数的类型),参数的数量也可以由可变参数控制。因此,Python中是没有方法的重载的。定义一个方法即可有多种调用方式,相当于实现了其他语言中的方法的重载。class Person: def fun(self): print("hello") def fun(self,name):原创 2020-10-28 14:28:18 · 206 阅读 · 0 评论 -
flask笔记一(celery异步发送信息)
一、安装当前版本:5.1.0使用redis作为broker 存储任务队列,作为backend存储执行后的结果。所以安装redis版的celery。pip install celery[redis]二、一个demo创建celery_demo文件夹,里面创建两个py文件1. tasks.py 给celery绑定任务broker: 消息代理,或者叫作消息中间件,接受任务生产者发送过来的任务消息,存进队列再按序分发给任务消费方。worker:真正执行任务的工作者backend:用原创 2020-10-23 17:23:58 · 573 阅读 · 2 评论 -
安装pymysqlpool模块
1、源码下载项目地址:https://github.com/luvvien/pymysqlpool之所以使用该连接池组件,主要是因为:支持python3,基于pymysql,非常轻量化2、pymysqlpool安装:下载源码,解压,进入目录,执行安装命令:python setup.py install,完成...原创 2020-04-07 14:15:53 · 1807 阅读 · 1 评论 -
truetype 使用时出现 OSError: cannot open resource
如果确认文件路径正确但依然报错:把字体文件重命名为 xxx.ttf,xxx为英文,然后将其复制到C:\Windows\Fonts文件夹下,此时font1 = ImageFont.truetype('xxx.ttf', font_size)便可解决问题。...原创 2020-04-02 10:05:35 · 612 阅读 · 0 评论 -
IOError: [Errno 32] Broken pipe 错误分析
一、概述Broken pipe 本质是 IOError 错误,是 Linux 系统层面的机制导致,一般发生在读写文件IO和网络Socket IO的时候。对应的 Linux 系统错误是 EPIPE,摘自【参考2】的一段话:'''Macro: int EPIPE “Broken pipe.” There is no process reading from the other end...原创 2020-03-27 10:41:26 · 17362 阅读 · 0 评论 -
win10 pycharm 出现MemoryError 和 Unable to allocate array with shape
1、numpy 在定义数组的时候,采用更低的精度。array_ = np.zeros((10000,10000),dtype='float32') # 默认float64一般计算上通过numpy得到的16位浮点数,是FP16。float64占用的内存是float32的两倍,是float16的4倍;比如对于CIFAR10数据集,如果采用float64来表示,需要60000*32*32*...原创 2019-11-29 16:00:17 · 39476 阅读 · 7 评论 -
python生成嵌套字典
https://blog.csdn.net/chinacmt/article/details/51965743转载 2019-03-21 17:51:52 · 1206 阅读 · 0 评论 -
python常用函数总结
1 Python中struct.pack()和struct.unpack()用法详细说明2 找到列表里长度最大的词语max( m_names , key=len)3 建立单词和索引的映射# chars 为单词集合res = dict((c, i) for i, c in enumerate(chars))4 实现名称label数字化genderMap={'M':0,...原创 2019-03-22 14:46:25 · 194 阅读 · 0 评论 -
正则表达式
1· 判断字符串是否包含中文import rezhPattern = re.compile(u'[\u4e00-\u9fa5]+')#一个小应用,判断一段文本中是否包含简体中:contents=u'一个小应用,判断一段文本中是否包含简体中:'match = zhPattern.search(contents) if match: print u'有中文:%s' % (ma...原创 2019-04-26 17:00:03 · 186 阅读 · 0 评论 -
python 模块之 numpy
Z = np.random.uniform(0,10,10)print (Z - Z%1)#np.floor 返回不大于输入参数的最大整数。print (np.floor(Z))#np.ceil 函数返回输入值的上限,即对于输入 x ,返回最小的整数 i ,使得 i> = x。print (np.ceil(Z)-1)# 转换为 int 类型print (Z.astype(i...原创 2019-04-30 10:31:32 · 305 阅读 · 0 评论 -
python 模块之 os
1 path.basename(),返回path最后的文件名。若path以/或\结尾,那么就会返回空值。path='D:\CSDN'os.path.basename(path)=CSDN2 / ./ ../ 等的用法 :https://blog.csdn.net/baidu_41878679/article/details/82770461...原创 2019-05-08 15:05:22 · 117 阅读 · 0 评论 -
Process finished with exit code -1073740940 (0xC0000374)
konlpy uses the JVM via JPype. If it is Windows and a problem with heap corruption, there are really too many possible culprits here. To narrow this down, you can attach a native debugger to python.ex...原创 2019-04-25 16:54:14 · 4244 阅读 · 1 评论 -
判断 字符 是中文、英文、数字
1 判断是否为数字http://www.cnblogs.com/lgqboke/p/5985458.html原创 2019-05-20 11:07:49 · 482 阅读 · 0 评论 -
python 数据类型之 列表
1 对列表进行排序后返回其索引# 默认是正序排列,改为True,倒序排列[i for i,v in sorted(enumerate(['Vincent', 'Alex', 'Bill', 'Matthew']), key=lambda x:x[1],reverse=True)]...原创 2019-05-10 14:57:59 · 111 阅读 · 0 评论 -
pandas 读取csv 按行读取
import pandas as pdcsvfile = open('text.csv',encoding='utf-8')df = pd.read_csv(csvfile,engine='python')# 按行读取保存到字典里,假设每行有三个字段,item_id,info,titledict_item_id = {}dict_info = {}dict_title = {}di...原创 2019-07-18 11:05:12 · 30461 阅读 · 0 评论 -
python 查看处理器架构
python-c "import platform;print(platform.architecture()[0]);print(platform.machine())"原创 2019-09-09 09:29:34 · 1804 阅读 · 0 评论 -
python os模块
1、os.path.dirname(__file__)作用:返回脚本的路径,但是需要注意一下几点:1、必须是实际存在的.py文件,如果在命令行执行,则会引发异常NameError: name '__file__' is not defined2、结合os.path.abspath用,效果会好,如果大家看过一些python架构的代码的话,会发现经常有这样的组合os.path.di...原创 2019-09-17 14:11:50 · 240 阅读 · 0 评论 -
python 错误汇总
1 Keyerror 指字典的键值异常运算过程中产生了异常的数据或者数值,导致返回的结果的数值也是异常的。检查程序中可能存在异常数据和数值的代码。2 AttributeError: 'DataFrame' object has no attribute 'map'在 spark2.0之后,rdd 和DataFrame格式调用map函数时候还是不一样的。DataFrame需要显示.rdd...原创 2019-01-15 16:01:23 · 994 阅读 · 1 评论 -
python 线程、多线程、进程、多进程、协程
一、进程进程是程序的分配资源的最小单元;一个程序可以有多个进程,但只有一个主进程;进程由程序、数据集、控制器三部分组成。二、线程线程是程序最小的执行单元;一个进程可以有多个线程,但是只有一个主线程;线程切换分为两种:一种是I/O切换,一种是时间切换(I/O切换:一旦运行I/O任务时便进行线程切换,CPU开始执行其他线程;时间切换:一旦到了一定时间,线程也进行切换,CPU开始执行其他线程)。...原创 2019-01-17 16:14:19 · 176 阅读 · 0 评论 -
解决 RuntimeWarning: invalid value encountered in double_scalars
在计算余弦相似度函数时候,出现这个错误 # 计算余弦相似度函数 def cos_like(self,array1, array2): num = float(np.matmul(array1, array2)) s = np.linalg.norm(array1) * np.linalg.norm(array2) return num ...原创 2018-12-26 11:08:21 · 120902 阅读 · 5 评论 -
anaconda + pycharm+TensorFlow 安装问题
一、anaconda的版本和python版本的对应关系,最新版anaconda 对应python3.7,。二、pycharm 里面的解释器的选择。新建一个project ,然后在命名界面下拉,在existing environment 那里搜索对应的python.exe。可以避免各种麻烦。pycharm激活三、打开pycharm 一直有updating index。已知的方法尝试过,都没用...原创 2018-11-10 17:14:58 · 731 阅读 · 0 评论 -
关于numpy 数组的知识总结
一、简单一维数组的创建arr1 = np.arange(10) #创建内容为0—9的一维数组 [0,1,2,3,4,5,6,7,8,9]arr1.shape : (10,)这里说明了一个问题,(10,)指的是一维数组的长度,没有行和列的概念。对比可知(1,10)指的是一个特殊的二维数组,也即一个行向量,如下:[[0,1,2,3,4,5,6,7,8,9]]二、创建二维...原创 2018-11-10 14:57:11 · 223 阅读 · 0 评论 -
Flask + Ajax + Mysql 实现网页异步加载(二)
Flask + Ajax + Mysql 实现网页异步加载(一)二、jquery 和Ajax 实现前端请求<script src="static/js/jquery.min.js" ></script><script type="text/javascript"> var pk = 1; $(window).scroll(fun...原创 2018-11-09 14:01:33 · 1803 阅读 · 0 评论 -
Flask + Ajax + Mysql 实现网页异步加载(一)
滚动条滑到底部时候,在当前页面加载下一页数据;滚动条到达顶部时候,刷新当前页面。一、flask 实现的服务器端@app.route('/',methods=['GET','POST'])def index(): '''新闻首页''' page = request.args.get('page', 1, type=int) pagination = News....原创 2018-11-09 11:48:31 · 2015 阅读 · 0 评论 -
python里的转移字符
转义字符 描述 \(在行尾时) 续行符 \\ 反斜杠符号 \’ 单引号 \” 双引号 \a 响铃 \b 退格(Backspace) \e 转义 \000 空 \n 换行 \v 纵向制表符 \t 横向制表符 \r 回车 \f 换页 \oyy 八进制数yy代...原创 2018-11-19 09:25:48 · 754 阅读 · 0 评论 -
python 数据类型之字典
一、''和' '都可以作为字典的键a ={'':1,' ':2}print(a)for key in a: print('这就是key:', key)del a['']print(a)del a[' ']print(a)二、dict.get()方法返回指定键的值。 a.get(key1) ...原创 2018-11-19 13:40:26 · 142 阅读 · 0 评论 -
python的问题日常
一 、TypeError: sequence ietm 0:expected str tuple foundstring.join connects elements inside list of strings, not ints.Use this generator expression instead :values = ','.join(str(v) for v in val...原创 2018-11-22 09:40:05 · 343 阅读 · 0 评论 -
pycharm导入本地py文件时,模块下方出现红色波浪线时如何解决
详情见链接所在博客总结:出现红色波浪线的原因是因为本地路径并未被标记“源目录”原创 2018-11-19 15:39:59 · 2780 阅读 · 0 评论 -
python基础之 文件读写操作
git 把 代码上传到github一、文件打开方式,有三种常用的打开方法:r , w, a。r :读;w:写;a:追加(基本不用)ps: os.path 用法#os.path.dirname(path) 去掉文件名返回目录print(os.path.dirname("E:/Read_File/read_yaml.py"))#结果:E:/Read_File# os.path.d...原创 2018-11-22 13:51:00 · 410 阅读 · 0 评论 -
pandas之DataFrame
1、将列表转换为DataFramedistances = [11,22,33,123]distances = pd.DataFrame(distances,columns=['dis'])2、改变DataFrame的列的顺序方法一:最简洁的方法order = ['date', 'time', 'open', 'high', 'low', 'close', 'volum...原创 2018-11-27 15:47:27 · 231 阅读 · 0 评论 -
python模块之itertools
1 chain(*可迭代对象)chain 迭代器能够将多个可迭代对象合并成一个更长的可迭代对象。实际上,我参与的一个项目中最近就需要这一功能。我有一个列表,里面已经包含一些元素,接着想把另外两个列表添加到最初那个列表中。注意,我们想添加的是两个列表的元素。最初,我是这样做的:>>> my_list = ['foo', 'bar']>>> number...转载 2018-11-30 16:59:15 · 127 阅读 · 0 评论 -
matplotlib绘图相关
1、在jupyter里面使用这个可以,省去plt.show()这句话,但是在pycharm里面,没有此用法,需要自行plt.show()。%matplotlib inline2、plt.matshow(矩阵or数组),画出这个矩阵,不同的值赋予不同的颜色。 ...原创 2018-12-03 09:51:39 · 188 阅读 · 0 评论 -
python生成器,生产消费者模型
一、生成器的概念综述一个带有 yield 的函数就是一个 generator,它和普通函数不同,生成一个 generator 看起来像函数调用,但不会执行任何函数代码,直到对其调用 next()(在 for 循环中会自动调用 next())才开始执行。虽然执行流程仍按函数的流程执行,但每执行到一个 yield 语句就会中断,并返回一个迭代值,下次执行时从 yield 的下一个语句继续执行。看起...原创 2018-12-03 11:56:17 · 350 阅读 · 0 评论 -
pycharm debug模式
设置断点 在行号后单击(双击取消)Alt + Shift + F9 运行debug模式按F8,执行下一行代码调试快捷键 shift + Alt + F10终止快捷键 Ctrl + F2原创 2018-12-03 14:30:59 · 1315 阅读 · 0 评论 -
解决 UserWarning: detected Windows; aliasing chunkize to chunkize_serial warnings.warn("detected Win
1. 原因:windows自身的问题。Some algorithms in Gensim (mostly the distributed/parallelized versions) call a function called chunkize, which splits an input stream of records into batches. It works in a strea...原创 2018-12-28 15:23:22 · 3836 阅读 · 1 评论 -
相似度计算之余弦相似度
一、定义及概念:余弦取值范围为[-1,1]。求得两个向量的夹角,并得出夹角对应的余弦值,此余弦值就可以用来表征这两个向量的相似性。夹角越小,趋近于0度,余弦值越接近于1,它们的方向更加吻合,则越相似。当两个向量的方向完全相反夹角余弦取最小值-1。当余弦值为0时,两向量正交,夹角为90度。因此可以看出,余弦相似度与向量的幅值无关,只与向量的方向相关。由于连续离散点连线的斜率存在无穷大的问题...原创 2018-12-18 11:17:43 · 7221 阅读 · 0 评论 -
python 垃圾回收
在for循环中,每次读取的数据占据较大内存和磁盘,在该次循环结束后可以启用内存回收,释放内存。 python变量占用了内存,仅仅通过del变量的方式,只是让这个变量无法再使用;虽然很多书上都说是,del变量会使得变量的引用次数-1,如果这个数成为0,会被垃圾回收,但是回收的速度确实令人等不起(目测5分钟都没什么反应)。探究发现,其中一个解决办法是调用gc模块的回收函数,这样就能立刻释放内存。...原创 2018-12-26 10:30:02 · 207 阅读 · 0 评论 -
解决FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating`
解决问题FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(float).type`. from ._conv i...原创 2018-11-13 09:50:08 · 1149 阅读 · 0 评论