
Python3
文章平均质量分 71
Python3.0版本,常被称为Python 3000,或简称Py3k。相对于Python的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0在设计的时候没有考虑向下兼容。
No Silver Bullet
业精于勤荒于嬉,行成于思毁于随。
学业由于勤奋而专精,由于玩乐而荒废;德行由于独立思考而有所成就,由于因循随俗而败坏。
——出自(唐)韩愈《进学解》
展开
-
Python进阶(十八)Python3爬虫小试牛刀
这篇文章主要介绍了如何使用Python3爬取csdn博客访问量的相关资料,在Python2已实现的基础上实现Python3爬虫,对比版本之间的差异所在,需要的朋友可以参考下。使用python来获取自己博客的访问量,也是后面将要开发项目的一部分,后边会对博客的访问量进行分析,以折线图和饼图等可视化的方式展示自己博客被访问的情况,使自己能更加清楚自己的哪些博客更受关注。其实,在较早之前博客专家本身就有这个功能,不知什么原因此功能被取消了。原创 2022-10-14 10:54:01 · 1665 阅读 · 0 评论 -
Python进阶(五十二)Flask使用pymysql连接MySQL数据库
Python:3.5MySQL:5.5之前在做Python Web开发时,选择的是Django框架,后台的自动化实现着实十分方便。相关博文参见《Python进阶(三十六)-Web框架Django项目搭建全过程》、《Python进阶(二十三)-Django使用pymysql连接MySQL数据库做增删改查》。对于知识的渴求,驱使我尝试使用Flask实现Web开发。在利用Flask实现研究课题相关系统时,涉及到数据库相关操作。原创 2017-05-31 16:32:02 · 17421 阅读 · 1 评论 -
Python进阶(五十三)Flask Web开发实现将表单渲染成HTML
在利用Flask进行Python Web开发时,页面中的函数中的参数form是如何与视图函数中的form变量关联起来的?即Flask是如何将表单渲染成HTML的?下面以实例的形式进行问题求解。在视图函数views.py中:将相应的表单类实例作为参数传递给模版。原创 2017-05-31 16:53:16 · 8777 阅读 · 1 评论 -
Python进阶(五十一)Flask文件上传提示PermissionError: [Errno 13] Permission denied: ‘E:\\IDEA Projects\\Data‘
在学习Flask文件上传过程中,按照视频教学中的示例代码敲了一遍,执行时却提示’PermissionError: [Errno 13] Permission denied: 'E:\\IDEA Projects\\Data’的错误,但是视频中却是可以正常操作。原创 2017-05-31 16:21:10 · 15168 阅读 · 7 评论 -
Python进阶(四十九)初识Flask Blueprint
Python进阶(四十九)-初识Flask Blueprint 在进行Python Web开发时选择Flask框架。项目模块划分阶段,使用Blueprint(这里暂且称之为“蓝本”)。Blueprint通过把实现不同功能的module分开,从而把一个大的application分割成各自实现不同功能的module。在一个Blueprint中可以调用另一个blueprint的view function原创 2017-05-29 18:30:52 · 32658 阅读 · 1 评论 -
Python进阶(五十)浅析Flask运行原理
在学习Python Web开发过程中,掌握了Flask的开发方法。经过一段时间的视频学习,回过头来对Flask的运行原理做一简要解析,以增强自己对Flask的了解。原创 2017-05-30 09:38:25 · 26597 阅读 · 3 评论 -
Python进阶(四十八)Python导包时提示SystemError: Parent module ‘‘ not loaded, cannot perform relative import
在利用Flask进行Web开发时,通过重置项目结构,结构如下:再次运行项目出现了的错误提示。通过错误定位,发现是导包时出现的问题。翻译过来就是“父模块’’没有加载,不能执行相对导入”。为什么会出现这样的问题呢?通过查看项目结构,使用此时出现更多的导包问题:自己首先定位到views.py中,删除了导包语句然后,再使用局部导包至此,问题得到了解决。至于为什么通过这种局部导包的方式就可以解决问题,正在研究中…原创 2017-05-29 11:30:25 · 28174 阅读 · 3 评论 -
Python进阶(四十一)Python3解决“tuple parameter unpacking is not supported in python3”
在调用fxn函数时第二个参数就需要保证其长度为2,例如[42, -13],当参数传递时,就会完成参数自动拆箱,即b, c = [42, -13]。翻译成中文就是“拆箱的tuple元组参数在python3中不得到支持”即此种参数形式在python3下废弃了。元素的参数形式,在PEP 3113中是这样说的。,使其类似于列表的形式,在调用的时候,使用。在解决图像配准过程中, 涉及到如下代码,可发现,在python3中之所以去除。看到这里,相信大家都明白了,原创 2017-04-19 19:33:30 · 55124 阅读 · 3 评论 -
Python进阶(四十二)windows 64位安装Pillow模块替换PIL模块
在使用时,注意要用 ‘from PIL import Image’ 代替 ‘import Image’。此时就需要使用其它模块来替换PIL模块。有人提供了非官方的64位库,叫做。使用的一种压缩文件,后缀名改成zip,可以打开。这个需要用 pip 安装。,下载下来,是个.whl 结尾的文件,这个其实就是。(Python Image Lib)模块。在dos中切换至pip文件夹,输入命令“至此,Pillow模块安装完成。做图像配准时,需要安装。原创 2017-04-19 19:42:27 · 43642 阅读 · 0 评论 -
Python进阶(四十三)glob 文件路径查找
glob是python自己带的一个文件操作相关模块,内容也不多,是最简单的模块之一。用它可以查找符合特定规则的文件路径名。跟使用windows下的文件搜索差不多。查找文件只用到三个匹配符: "\*”, “?”, “[]”。”*”匹配0个或多个字符;”?”匹配单个字符;”[]”匹配指定范围内的字符,如:[0-9]匹配数字。原创 2017-04-19 19:49:13 · 43414 阅读 · 1 评论 -
Python进阶(四十四)-Python3实现基于PHA实现图像配准
在博文《Java进阶(五十七)-基于感知哈希算法的图像配准》中使用Java语言实现了基于“感知哈希算法”的改进版pHash算法图像匹配。相比于Java语言,Python表现出其简洁性与高效性。在Python实现中同样是先将图片转化成Hash字符串,然后再进行比较。原创 2017-04-20 11:44:26 · 43001 阅读 · 1 评论 -
Python进阶(四十五)走进requests库
Requests是用Python语言编写,基于urllib,采用开源协议的HTTP库。它比urllib更加方便,可以节约我们大量的工作,完全满足HTTP测试需求。Requests的哲学是以 PEP20 的箴言为中心开发的,所以它比 urllib 更加 Pythoner。更重要的一点是它支持 Python3!Requests允许你发送简单的HTTP/1.1请求,无需手工劳动。你不需要手动为 URL 添加查询字串,也不需要对 POST 数据进行表单编码。原创 2017-04-23 16:44:16 · 39712 阅读 · 0 评论 -
Python进阶(四十七)python3使用pyinstaller实现将py文件打包成exe文件
Python进阶(四十七)-python3使用pyinstaller实现将py文件打包成exe文件前言 py文件通常需要运行在Python编程坏境中,而可执行exe文件更方便。 之前看过若干博文在python2环境下使用pyinstaller将py文件打包成exe文件,因为之前pyinstaller不支持python3。现在pyinstaller支持python3,此篇博文即是在python原创 2017-04-25 17:02:40 · 62664 阅读 · 5 评论 -
Python进阶(四十六)Python3实现SMTP发送邮件详细教程
Python发送邮件的教程本人在网站搜索的时候搜索出来了一大堆,但是都是说了一大堆原理然后就推出了实现代码,我测试用给出的代码进行发送邮件时都不成功,后面找了很久才找到原因,这都是没有一个详细的环境调试导致,所以今天特出一个详细的教程,一步一步从环境调试到代码实现整一个教程,希望对还在苦苦寻找解决方法却迟迟不能得到有效解决的朋友们一点帮助。原创 2017-04-26 22:13:21 · 55341 阅读 · 12 评论 -
Python进阶(四十)应用matplotlib绘图实战
matplotlib是基于Python语言的开源项目,旨在为Python提供一个数据绘图包。我将在这篇文章中介绍matplotlib API的核心对象,并介绍如何使用这些对象来实现绘图。实际上,matplotlib的对象体系严谨而有趣,为使用者提供了巨大的发挥空间。用户在熟悉了核心对象之后,可以轻易的定制图像。matplotlib的对象体系也是计算机图形学的一个优秀范例。即使你不是Python程序员,你也可以从文中了解一些通用的图形绘制原则。matplotlib使用numpy。原创 2017-04-16 15:21:10 · 43784 阅读 · 0 评论 -
Python进阶(三十三)Python获取并输出当前日期时间
输出的结果是:time.struct_time(tm_year=2010, tm_mon=7, tm_mday=19, tm_hour=22, tm_min=33, tm_sec=39, tm_wday=0, tm_yday=200, tm_isdst=0)时间戳是1970年到现在时间相隔的时间。将指定的struct_time(默认为当前时间),根据指定的格式化字符串输出。用time.localtime()方法,作用是格式化时间戳为本地的时间。现在看起来更有希望格式成我们想要的时间了。原创 2017-04-14 08:45:54 · 47896 阅读 · 0 评论 -
Python进阶(三十四)Python3多线程解读
使用 Thread 对象的 Lock 和 Rlock 可以实现简单的线程同步,这两个对象都有 acquire 方法和 release 方法,对于那些需要每次只允许一个线程操作的数据,可以将其操作放到 acquire 和 release 方法之间。锁有两种状态——锁定和未锁定。那么,可能线程"set"开始改的时候,线程"print"便来打印列表了,输出就成了一半0一半1,这就是数据的不同步。是线程上下文中两个最重要的寄存器,线程总是在进程的上下文中运行的,这些地址都用于标志拥有线程的进程地址空间中的内存。原创 2017-04-14 09:05:33 · 52549 阅读 · 4 评论 -
Python进阶(三十五)Fiddler命令行和HTTP断点调试
假设js前端程序员和服务器程序员是分工合作的,js程序员想要调试Ajax请求的功能,这样便不必等待服务器端程序员开发好所有接口之后再开始开发js端的ajax请求功能,因为通过“模拟”真实的服务器端的响应,便可以保证功能的正确性,而服务器端开发程序员,只要保证最终的响应是符合规定的即可。例如修改请求头的UA, Cookie, Referer 信息,通过“伪造”相应信息达到达到相应的目的(调试,模拟用户真实请求等)。当然实际应用中,断点的设置和响应的修改会比这复杂的多,这里只是基本的示例。原创 2017-04-14 09:27:35 · 44063 阅读 · 1 评论 -
Python进阶(三十六)Web框架Django项目搭建全过程
安装好Django之后, 就可以使用 django-admin.py管理工具来创建一个项目。首先我们来看下django-admin.py的命令介绍,在命令行输入django-admin.py查看可用的项目管理命令。Django url() 可以接收四个参数,分别是两个必选参数:regex、view 和两个可选参数:kwargs、name,接下来详细介绍这四个参数。正式发布的服务,我们需要一个可以稳定而持续的服务器,比如apache, Nginx, lighttpd等,本文后续将以 Nginx 为例。原创 2017-04-15 08:53:16 · 61660 阅读 · 13 评论 -
Python进阶(三十七)Windows7使用nginx+apache部署django项目
Python进阶(三十七)-Windows7使用nginx+apache部署django项目 Django的部署可以有很多方式,采用nginx+uwsgi的方式是其中比较常见的一种方式。 目前国内各大门户网站已经部署了nginx,如新浪、网易、腾讯等;国内几个重要的视频分享网站也部署了nginx,如六房间、酷6等。新近发现nginx 技术在国内日趋火热,越来越多的网站开始部署nginx。原创 2017-04-15 16:03:30 · 55315 阅读 · 3 评论 -
Python进阶(三十八)利用matplotlib 进行折线图,直方图和饼图的绘制
Python进阶(三十八)-数据可视化の利用python进行折线图,直方图和饼图的绘制 我用10个国家某年的GDP来绘图,数据如下: labels = [‘USA’, ‘China’, ‘India’, ‘Japan’, ‘Germany’, ‘Russia’, ‘Brazil’, ‘UK’, ‘France’, ‘Italy’] quants = [15094025.0, 11299原创 2017-04-15 21:45:40 · 44787 阅读 · 0 评论 -
Python进阶(三十九)使用matplotlib进行绘图分析数据
matplotlib是python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地进行制图。而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中。它的文档相当完备,并且 Gallery页面中有上百幅缩略图,打开之后都有源程序。因此如果你需要绘制某种类型的图,只需要在这个页面中浏览/复制/粘贴一下,基本上都能搞定。在Linux下比较著名的数据图工具还有gnuplot,这个是免费的,Python有一个包可以调用gnuplot,但是语法比较不习惯,而且画图质量不高。而。原创 2017-04-16 10:53:23 · 45710 阅读 · 1 评论 -
Python进阶(二十三)Django使用pymysql连接MySQL数据库做增删改查
在学习完Python基础之后,继续学习Python Web开发方面的知识。首先决定学习Django Web开发框架。在连接数据库一块,视频教学中使用的是django内置的sqlite数据库,之前自己使用的是mysql数据库,遂决定继续使用mysql数据库。IDE说明Python:3.5Django:1.10Pymysql:0.7.10Mysql:5.5Django1.10默认使用的是mysqlDB模块来操作数据库,而该模块已不支持Python3,所以需要其他的方式连接数据库。本文选择使用。原创 2017-04-06 11:18:11 · 60327 阅读 · 1 评论 -
Python进阶(二十四)Python中函数的参数定义和可变参数
结果跟funcB(100, 99)都是一样的,因为我们在使用关键字参数调用的时候,指定了把100赋值给a,99赋值给b。上面的例子里,调用函数的时候,传递的参数都是根据位置来跟函数定义里的参数表匹配的,比如funcB(100, 99)和funcB(99, 100)的执行结果是不一样的。我们在调用funcD的时候,至少要传递2个参数,2个以上的参数,都放到c里了,如果只有两个参数,那么c就是一个。在函数funcC的定义中,参数b有默认值,是一个可选参数,如果我们调用funcC(100),b会自动赋值为0。原创 2017-04-06 11:37:36 · 43776 阅读 · 0 评论 -
Python进阶(二十五)Python读写文件
在处理日志文件的时候,常常会遇到这样的情况:日志文件巨大,不可能一次性把整个文件读入到内存中进行处理,例如需要在一台物理内存为 2GB 的机器上处理一个 2GB 的日志文件,我们可能希望每次只处理其中200MB的内容。模式打开一个已经存在的文件时,原有文件的内容会被清空,因为一开始文件的操作的标记是在文件的开头的,这时候进行写操作,无疑会把原有的内容给抹掉。由于历史的原因,换行符在不同的系统中有不同模式,比如在。如果是一个大于1的数表示缓冲区的大小,应该是以字节为单位的。它参数都是以字符串的形式传递的。原创 2017-04-06 14:22:20 · 45600 阅读 · 2 评论 -
Python进阶(二十六)多线程实现同步的四种方式
临界资源即那些一次只能被一个线程访问的资源,典型例子就是打印机,它一次只能被一个程序用来执行打印功能,因为不能多个线程同时操作,而访问这部分资源的代码通常称之为临界区。原创 2017-04-06 14:32:30 · 49765 阅读 · 1 评论 -
Python进阶(二十七)字符串大小写转换
方法,以及所有单词首字母大写,其余小写的。还提供了首字母大写,其余小写的。方法用来判断字符串的大小写。原创 2017-04-06 15:41:07 · 43989 阅读 · 0 评论 -
Python进阶(二十九)Python时间&日期&时间戳处理
注:time.strftime,time.strptime,datetime.timedelta。函数接收以时间元组,并返回以可读字符串表示的当地时间,格式由参数format决定。所有参数可选,且默认都是0,参数的值可以是整数,浮点数,正数或负数。函数根据指定的格式把一个时间字符串解析为时间元组。方法来前后移动时间,效率很高,而且可读性很强。方法:先转换为时间数组,然后转换为其他格式。转换为时间数组,然后格式化为需要的格式,如。后可以很高效的进行统计操作,因为转换为。返回以可读字符串表示的当地时间。原创 2017-04-06 16:24:55 · 45488 阅读 · 0 评论 -
Python进阶(三十)Python3实现随机数
所谓真随机数,是要求根据绝对随机事件产生的数,也就是说要求要有一个无因果关系的随机事件,那么,这其实只存在与哲学领域……用于生成一个指定范围内的整数,a为下限,b为上限,生成的随机整数a原创 2017-04-06 16:30:15 · 54043 阅读 · 2 评论 -
Python进阶(三十一)往MySQL数据库里添加数据,update和insert效率分析
因为自己臆想的是“数据插入的效率应该优于更新效率。的设计目标是处理大容量数据库系统,它的 CPU 利用率是其它基于磁盘的关系数据库引擎所不能比的。对于这种大数据量的更新情况,可以采用多线程的方式,每个线程更新100条数据,这样就能提高更新的速度了。insert ignore表示,如果表中如果已经存在相同的记录,则忽略当前新数据。,或者唯一索引,如果表中已经存在数据,则用新数据替换,如果没有数据效果则和。对于大数据量的更新一般会做成一个异步的操作,而不需要是实时的。这个操作的返回是实时的吗?原创 2017-04-06 16:36:07 · 50712 阅读 · 0 评论 -
Python进阶(三十二)local variable ‘xxx‘ referenced before assignment
的函数中和全局同名的变量,如果你有修改变量的值就会变成局部变量,在修改之前对该变量的引用自然就会出现没定义这样的错误了,如果确定要引用全局变量,并且要对它修改,必须加上。错误的意思就是xxx这个变量在引用前还没有定义,这上面不是定义了么?但是后来我把xxx = 24这句去掉之后,又没问题了,后来想起。这个问题很囧,在外面定义了一个变量 xxx ,然后在。的一个函数里面引用这个变量,并改变它的值,结果报错。原创 2017-04-06 16:38:44 · 46141 阅读 · 0 评论 -
Python进阶(二十二)Python3使用PyMysql连接mysql数据库
由于python3.x完全不向前兼容,导致我们在python2.x中可以正常使用的库,到了python3就用不了。比如说mysqldb。目前MySQLdb并不支持python3.x,Python3.x连接MySQLoursql,PyMySQL,myconnpy等下面来说下python3如何安装和使用pymysql,另外两个方案我会在以后再讲。PEP 249 – Python Database API Specification v2.0文档。原创 2017-03-28 19:27:46 · 54945 阅读 · 3 评论 -
Python进阶(一)初识Python数据元素:列表&元组
毕业论文已完成,下面就是等待盲审结果了。在此期间,已感觉论文无从看起。就学习一下Python吧,听说这是一门很神奇的语言。下面言归正传~点击查看IDE:IntelJ。有关IntelJ的安装与注册详见博文《IntelliJ IDEA 2016注册方法和注册码》。下面介绍一下Python中几种不熟悉的数据元素:列表、元组、字典、时间。原创 2017-03-14 16:19:21 · 48177 阅读 · 1 评论 -
Python进阶(二)初识Python数据元素:字典&时间
字典(dic dictionary)是除列表之外python中最灵活的内置数据结构类型。列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。字典由键和对应的值组成。字典也被称作关联数组或哈希表。dict = {dict1 = {dict2 = {每个键与值必须用冒号隔开(😃,每对用逗号分割,整体放在花括号中{}。键必须独一无二,但值则不必;值可以取任何数据类型,但必须是不可变的,如字符串,数或元组。原创 2017-03-14 16:40:55 · 48309 阅读 · 0 评论 -
Python进阶(三)函数式编程之reduce()
官方解释如下:格式:reduce()函数即为化简函数,它的执行过程为:每一次迭代,都将上一次的迭代结果(注:第一次为init元素,如果没有指定init则为seq的第一个元素)与下一个元素一同传入二元func函数中去执行。在reduce()函数中,init是可选的,如果指定,则作为第一次迭代的第一个元素使用,如果没有指定,就取seq中的第一个元素。原创 2017-03-15 16:33:35 · 45602 阅读 · 0 评论 -
Python进阶(四)浅谈Python闭包
注意: 发现没法把 lazy_sum 移到 calc_sum 的外部,因为它引用了 calc_sum 的参数 lst。像这种内层函数引用了外层函数的变量(参数也算变量),然后返回内层函数的情况,称为闭包(Closure)。原创 2017-03-15 21:52:33 · 45888 阅读 · 2 评论 -
Python进阶(五)浅谈python匿名函数
高阶函数可以接收函数做参数,有些时候,我们不需要显式地定义函数,直接传入匿名函数更方便。在Python中,对匿名函数提供了有限支持。还是以map()函数为例,计算f(x)=x2关键字lambda表示匿名函数,冒号前面的 x 表示函数参数。匿名函数有个限制,就是只能有一个表达式,不写return,返回值就是该表达式的结果。原创 2017-03-15 22:06:05 · 46240 阅读 · 0 评论 -
Python进阶(六)python编写无参数decorator
Python的decorator本质上就是一个高阶函数,它接收一个函数作为参数,然后,返回一个新函数。使用decorator用Python提供的@语法,这样可以避免手动编写这样的代码。考察一个@log对于阶乘函数,@log结果:3628800结果:因为add()函数需要传入两个参数,但是@log写死了只含一个参数的返回函数。要让@log自适应任何参数定义的函数,可以利用Python的*args和**kw现在,对于任意函数,@log 都能正常工作。原创 2017-03-16 11:11:33 · 45125 阅读 · 2 评论 -
Python进阶(七)浅谈python3和Python2的区别
不管使用何种版本的Python语言,都需要遵循编程规范,不该有的缩进一定不能有。否则会出现莫名其妙的错误,如下图所示:在应用Python编程时,首先要明确所使用Python版本,因为版本2与3之间存在着很多细节性的差异。稍有不慎就会入坑~下面介绍一下具体应用中的细节性差异。具体参照。原创 2017-03-16 11:16:22 · 47563 阅读 · 0 评论 -
Python进阶(八)编写带参数decorator
拆开以后会发现,调用会失败,因为在3层嵌套的decorator定义中,最内层的wrapper引用了最外层的参数prefix,所以,把一个闭包拆成普通的函数调用会比较困难。不支持闭包的编程语言要实现同样的功能就需要更多的代码。如果有的函数非常重要,希望打印出’[INFO] call xxx()…‘,有的函数不太重要,希望打印出’[DEBUG] call xxx()…',这时,log函数本身就需要传入’发现对于被装饰的函数,log打印的语句是不能变的(除了函数名)。需要3层嵌套的decorator来实现。原创 2017-03-16 16:28:30 · 45274 阅读 · 0 评论