像微博一类的平台上传图片时,平台都会添加一个水印,宣誓着对图片的所有权,我们自己的博客平台也可以给自己的图片添加上水印。还是用Pillow模块来实现先来看一个简单的例子>>>fromPILimportImage>>>fromPILimportImageDraw>>>>>>image=Image.open('/Users/wxnacy/Downloads/vm-error1.png')>>>draw=ImageDraw.Draw(image)>>>draw.
系统 2019-09-27 17:56:30 2154
字符编码,在编程中,是一个让学习者比较郁闷的东西,比如一个str,如果都是英文,好说多了。但恰恰不是如此,中文是我们不得不用的。所以,哪怕是初学者,都要了解并能够解决字符编码问题。>>>name='老齐'>>>name'\xe8\x80\x81\xe9\xbd\x90'在你的编程中,你遇到过上面的情形吗?认识最下面一行打印出来的东西吗?看人家英文,就好多了>>>name="qiwsir">>>name'qiwsir'难道这是中文的错吗?看来投胎真的是一个技
系统 2019-09-27 17:56:06 2154
前言学pytest就不得不说fixture,fixture是pytest的精髓所在,就像unittest中的setup和teardown一样,如果不学fixture那么使用pytest和使用unittest是没什么区别的(个人理解)。fixture用途1.做测试前后的初始化设置,如测试数据准备,链接数据库,打开浏览器等这些操作都可以使用fixture来实现2.测试用例的前置条件可以使用fixture实现3.支持经典的xunitfixture,像unitte
系统 2019-09-27 17:54:47 2154
很多企业开发语言从Python转向了Golang的原因因为原生Python的性能真的是太捉襟见肘了。单机运行计算型任务,速度慢是有目共睹的。IO型人物不涉及多线程(比如用协程)的还好,一旦涉及到多线程,立刻懵逼。比如,你开个Python线程,让它sleep5秒,再开第二个线程,随便算个fibonacci或者直接写个busyloop,你就会发现你的程序实际上会sleep6秒。想突破也不难,用pybinding11写c++,再用python调用。但都这样了
系统 2019-09-27 17:54:29 2154
在使用正则表达式时,匹配算法存在贪婪模式和非贪婪模式两种模式,在《第11.8节Pytho正则表达式的重复匹配模式及元字符“?”、“*”、“+”功能介绍》中的重复匹配模式就是贪婪模式。什么是贪婪模式呢?就是匹配的时候,在整体匹配的情况下最大可能多的匹配最多的字符。非贪婪模式就是只要在字符串从左往右匹配模式串成功即停止匹配。如模式串“<.*>”在匹配字符串'b'时,会匹配到整个字符串,这就是贪婪模式,如果是非贪婪模式,则匹配到’’就结束了。关于贪婪模式和非贪婪
系统 2019-09-27 17:54:17 2154
通常在使用Spark算子函数,比如使用map()或者reduce函数我们向函数传入条件时,函数内部可以使用驱动程序中定义的变量,但是这样会使集群中所有任务都会得到变量新的副本,这些副本的更新不会传播回驱动程序,导致读写共享变量效率低下或者内存溢出,为了解决这个问题Spark提供了两种共享变量类型:广播变量和累加器广播变量:用来高效分发较大对象,只能在Driver定义,不能在Executor端定义,同时RDD不存储数据所以不能广播出去累加器:用来对信息进行聚
系统 2019-09-27 17:52:33 2154
数据集:https://archive.ics.uci.edu/ml/datasets/Adult这个数据集是字符数据集,你需要自己进行清洗数据转换数据之类的,好在python的字符串操作特别简单,好处理。特征取了学位情况、工作职业性质、工作单位之类的。朴素贝叶斯:https://www.bilibili.com/video/av36338359?from=search&seid=1177086802297258225这个的数据集是预测一个人的年薪是否能超
系统 2019-09-27 17:52:08 2154
目录第十五章、Python多线程之信号量和GIL1.信号量(Semaphore)2.GIL说明:第十五章、Python多线程之信号量和GIL1.信号量(Semaphore)信号量用来控制线程并发数的,Semaphore管理一个内置的计数器,每当调用acquire()时-1,调用release()时+1。计数器不能小于0,当计数器为0时,acquire()将阻塞线程至同步锁定状态,直到其他线程调用release()。其实就是控制最多几个线程可以操作同享资源。
系统 2019-09-27 17:51:26 2154
importnumpyasnpa=np.array([[0,3],[1,4]])#a.shape是(2,2)#axis=1表示按行相加,并且保持其二维特性print(np.sum(a,axis=1,keepdims=True))#按行相加,不保持其二维特性print(np.sum(a,axis=1))输出为array([[3],[5]]),shape是(2,1)array([3,5]),shape是(1,2)
系统 2019-09-27 17:50:08 2154
描述max()方法返回给定参数的最大值,参数可以为序列。语法以下是max()方法的语法:max(x,y,z,....)参数x--数值表达式。y--数值表达式。z--数值表达式。返回值返回给定参数的最大值。实例以下展示了使用max()方法的实例:#!/usr/bin/python3print("max(80,100,1000):",max(80,100,1000))print("max(-20,100,400):",max(-20,100,400))prin
系统 2019-09-27 17:49:49 2154
转眼又到了咱们中国传统的情人节七夕了,今天笔者就带大家来领略一下用Python表白的方式。让程序员的恋人们感受一下IT人的浪漫。一、词云制作首先咱们可以用之前介绍过的wordcould包制作词云。wordcloud包安装十分简单。pip即可完成安装pipinstallwordclould然后需要制作一个背景图片,为了应急我用艺术字做了个七夕的图片,如果大家来不及直接图片另存为使用下图即可。具体制作的词云的代码如下:fromwordcloudimportWo
系统 2019-09-27 17:49:28 2154
下标索引a='123456'#注意下标从0开始print(a[0])#输出结果为1切片操作a='123456'#注意切片是左闭右开print(a[0:6:2])【起始值:结束值:步长】#输出结果为1351.find()检测str是否包含在mystr中如果是返回开始的索引值否则返回-1str='a'mystr='小马是最棒的a'mystr1='小马是最最棒的'print(mystr.find(str))#可选参数startend指明查找的区间默认整个字符串#
系统 2019-09-27 17:49:20 2154
========坚持30天刷leetcode=====题目链接:https://leetcode-cn.com/problems/3sum-closest/先上结果:分析:关键在于特殊情况的判断,减少遍历。classSolution:defthreeSumClosest(self,nums,target):k=len(nums)ifk<3:returnNone#特殊情况:数组小于3ifk==3:returnsum(nums)#特殊情况:数组等于3nums.
系统 2019-09-27 17:49:00 2154
Python3快速入门(十二)——NumPy一、NumPy简介1、NumPy简介NumPy(NumericalPython)是Python语言的一个扩展程序库,支持大量的维度数组与矩阵运算,同时对数组运算提供了大量的数学函数库。Numpy是一个运行速度非常快的数学库,内部解除了CPython的GIL,运行效率极好,主要用于数组计算,是大量机器学习框架的基础库,NumPy主要包括如下:(1)强大的N维数组对象ndarray(2)广播功能函数(3)整合C/C+
系统 2019-09-27 17:46:28 2154
本文对Python爬虫常用的模块做了较为深入的分析,并以实例加以深入说明。分享给大家供大家参考之用。具体分析如下:creepy模块某台湾大神开发的,功能简单,能够自动抓取某个网站的所有内容,当然你也可以设定哪些url需要抓。地址:https://pypi.python.org/pypi/creepy功能接口:set_content_type_filter:设定抓取的content-type(header中的contenttype)。包括text/htmla
系统 2019-09-27 17:45:57 2154