Python全栈开发
分享Python语言基础、Python爬虫开发、Python后台框架、Python数据分析、Python机器学习等方面的知识和心得。
骆昊的技术专栏
传道、授业、解惑,分享知识带来的快乐
展开
-
Python开发系列课程(20) - 网络应用开发
网络应用开发发送电子邮件在即时通信软件如此发达的今天,电子邮件仍然是互联网上使用最为广泛的应用之一,公司向应聘者发出录用通知、网站向用户发送一个激活账号的链接、银行向客户推广它们的理财产品等几乎都是通过电子邮件来完成的,而这些任务应该都是由程序自动完成的。就像我们可以用HTTP(超文本传输协议)来访问一个网站一样,发送邮件要使用SMTP(简单邮件传输协议),SMTP也是一个建立在T...原创 2018-05-05 00:33:43 · 6090 阅读 · 2 评论 -
Python开发系列课程(19) - 数据可视化
数据可视化数据的处理、分析和可视化已经成为Python近年来最为重要的应用领域之一,其中数据的可视化指的是将数据呈现为漂亮的统计图表,然后进一步发现数据中包含的规律以及隐藏的信息。数据可视化又跟数据挖掘和大数据分析紧密相关,而这些领域以及当下被热议的“深度学习”其最终的目标都是为了实现从过去的数据去对未来的状况进行预测。Python在实现数据可视化方面是非常棒的,即便是使用个人电脑也能够实现对...原创 2018-05-01 00:16:34 · 4973 阅读 · 2 评论 -
Python开发系列课程(18) - 网络编程入门
网络编程入门计算机网络基础计算机网络是独立自主的计算机互联而成的系统的总称,组建计算机网络最主要的目的是实现多台计算机之间的通信和资源共享。今天计算机网络中的设备和计算机网络的用户已经多得不可计数,而计算机网络也可以称得上是一个“复杂巨系统”,对于这样的系统,我们不可能用一两篇文章把它讲清楚,有兴趣的读者可以自行阅读Andrew S.Tanenbaum老师的经典之作《计算机网络》或Ku...原创 2018-04-26 23:32:15 · 3312 阅读 · 1 评论 -
Python开发系列课程(17) - Python“惯例”
Python“惯例”“惯例”这个词指的是“习惯的做法,常规的办法,一贯的做法”,与这个词对应的英文单词叫“idiom”。由于Python跟其他很多编程语言在语法和使用上还是有比较显著的差别,因此作为一个Python开发者如果不能掌握这些惯例,就无法写出“Pythonic”的代码。下面我们总结了一些在Python开发中的惯用的代码。让代码既可以被导入又可以被执行。if __name__...原创 2018-04-24 18:31:13 · 2474 阅读 · 1 评论 -
Python开发系列课程(15) - Python参考书籍
Python参考书籍入门读物《Python基础教程》(Beginning Python From Novice to Professional)《Python学习手册》(Learning Python)《Python编程》(Programming Python)《Python Cookbook》《Python程序设计》(Python Programming: An Intro...原创 2018-03-25 17:10:35 · 8906 阅读 · 3 评论 -
Python开发系列课程(16) - 进程和线程
进程和线程今天我们使用的计算机早已进入多CPU或多核时代,而我们使用的操作系统都是支持“多任务”的操作系统,这使得我们可以同时运行多个程序,也可以将一个程序分解为若干个相对独立的子任务,让多个子任务并发的执行,从而缩短程序的执行时间,同时也让用户获得更好的体验。因此在当下不管是用什么编程语言进行开发,实现让程序同时执行多个任务也就是常说的“并发编程”,应该是程序员必备技能之一。为此,我们需要先...原创 2018-03-27 19:10:58 · 4233 阅读 · 0 评论 -
Python开发系列课程(14) - 玩转正则表达式
玩转正则表达式正则表达式相关知识在编写处理字符串的程序或网页时,经常会有查找符合某些复杂规则的字符串的需要,正则表达式就是用于描述这些规则的工具,换句话说正则表达式是一种工具,它定义了字符串的匹配模式(如何检查一个字符串是否有跟某种模式匹配的部分或者从一个字符串中将与模式匹配的部分提取出来或者替换掉)。如果你在Windows操作系统中使用过文件查找并且在指定文件名时使用过通配符(*和?...原创 2018-03-23 14:47:08 · 2770 阅读 · 0 评论 -
Python开发系列课程(13) - 文件和异常
文件和异常在实际开发中,常常需要对程序中的数据进行持久化操作,而实现数据持久化最直接简单的方式就是将数据保存到文件中。说到“文件”这个词,可能需要先科普一下关于文件系统的知识,对于这个概念,维基百科上给出了很好的诠释,这里不再浪费笔墨。在Python中实现文件的读写操作其实非常简单,通过Python内置的open函数,我们可以指定文件名、操作模式、编码信息等来获得操作文件的对象,接下来就可...原创 2018-03-23 00:29:38 · 2003 阅读 · 1 评论 -
Python开发系列课程(12) - 图形用户界面和游戏开发
图形用户界面和游戏开发基于tkinter模块的GUIGUI是图形用户界面的缩写,图形化的用户界面对使用过计算机的人来说应该都不陌生,在此也无需进行赘述。Python默认的GUI开发模块是tkinter(在Python 3以前的版本中名为Tkinter),从这个名字就可以看出它是基于Tk的,Tk是一个工具包,最初是为Tcl设计的,后来被移植到很多其他的脚本语言中,它提供了跨平台的GUI控...原创 2018-03-18 22:03:25 · 7488 阅读 · 1 评论 -
Python开发系列课程(11) - 面向对象编程进阶
面向对象编程进阶在前面的章节我们已经了解了面向对象的入门知识,知道了如何定义类,如何创建对象以及如何给对象发消息。为了能够更好的使用面向对象编程思想进行程序开发,我们还需要对Python中的面向对象编程进行更为深入的了解。@property装饰器之前我们讨论过Python中属性和方法访问权限的问题,虽然我们不建议将属性设置为私有的,但是如果直接将属性暴露给外界也是有问题的,比如我们没有...原创 2018-03-13 19:46:28 · 3436 阅读 · 2 评论 -
Python开发系列课程(10) - 那些年我们踩过的那些坑(上)
那些年我们踩过的那些坑坑01 - 整数比较的坑在 Python 中一切都是对象,整数也是对象,在比较两个整数时有两个运算符==和is,它们的区别是:is比较的是两个整数对象的id值是否相等,也就是比较两个引用是否代表了内存中同一个地址。==比较的是两个整数对象的内容是否相等,使用==时其实是调用了对象的__eq__()方法。知道了is和==的区别之后,我们可以来看看下...原创 2018-03-11 22:42:42 · 40187 阅读 · 11 评论 -
Python开发系列课程(9) - 面向对象编程基础
面向对象编程基础活在当下的程序员应该都听过“面向对象编程”一词,也经常有人问能不能用一句话解释下什么是“面向对象编程”,我们先来看看比较正式的说法。 把一组数据结构和处理它们的方法组成对象(object),把相同行为的对象归纳为类(class),通过类的封装(encapsulation)隐藏内部细节,通过继承(inheritance)实现类的特化(specialization)和泛化(...原创 2018-03-11 09:45:05 · 3396 阅读 · 0 评论 -
Python开发系列课程(8) - 字符串和常用数据结构
字符串和常用数据结构使用字符串第二次世界大战促使了现代电子计算机的诞生,当初的想法很简单,就是用计算机来计算导弹的弹道,因此在计算机刚刚诞生的那个年代,计算机处理的信息主要是数值,而世界上的第一台电子计算机ENIAC每秒钟能够完成约5000次浮点运算。随着时间的推移,虽然对数值运算仍然是计算机日常工作中最为重要的事情之一,但是今天的计算机处理得更多的数据都是以文本信息的方式存在的,而P...原创 2018-03-09 02:02:19 · 3115 阅读 · 3 评论 -
Python开发系列课程(7) - 函数和模块的使用
函数和模块的使用在讲解本章节的内容之前,我们先来研究一道数学题,请说出下面的方程有多少组正整数解。x1+x2+x3+x4=8x1+x2+x3+x4=8x_1 + x_2 + x_3 + x_4 = 8事实上,上面的问题等同于将8个苹果分成四组每组至少一个苹果有多少种方案。想到这一点问题的答案就呼之欲出了。CNM=M!N!(M−N)!,(M=7, N=3)CMN=M!N!(M...原创 2018-03-05 23:40:20 · 4958 阅读 · 1 评论 -
Python开发系列课程(6) - 要不要使用复杂表达式
要不要使用复杂表达式Perl语言的原作者Larry Wall曾经说过,伟大的程序员都有三个优点:懒惰、暴躁和自负。乍一看这三个词语没有一个是褒义词,但在程序员的世界里,这三个词有不同的意义。首先,懒惰会促使程序员去写一些省事儿的程序来辅助自己或别人更好的完成工作,这样我们就无需做那些重复和繁琐的劳动;同理能够用3行代码解决的事情,我们也绝不会写出10行代码来。其次,暴躁会让程序员主动的去完成一...原创 2018-03-03 20:37:00 · 3342 阅读 · 1 评论 -
Python开发系列课程(5) - 玩转PyCharm(上)
玩转PyCharm(上)PyCharm是由JetBrains公司开发的提供给Python专业的开发者的一个集成开发环境,它最大的优点是能够大大提升Python开发者的工作效率,为开发者集成了很多用起来非常顺手的功能,包括代码调试、高亮语法、代码跳转、智能提示、自动补全、单元测试、版本控制等等。此外,PyCharm还提供了对一些高级功能的支持,包括支持基于Django框架的Web开发、。...原创 2018-03-02 00:01:55 · 5162 阅读 · 0 评论 -
Python开发系列课程(4) - 循环结构
循环结构循环结构的应用场景如果在程序中我们需要重复的执行某条或某些指令,例如用程序控制机器人踢足球,如果机器人持球而且还没有进入射门范围,那么我们就要一直发出让机器人向球门方向奔跑的指令。当然你可能已经注意到了,刚才的描述中其实不仅仅有需要重复的动作,还有我们上一个章节讲到的分支结构。再举一个简单的例子,比如在我们的程序中要实现每隔1秒中在屏幕上打印一个"hello, world"这样...原创 2018-02-28 18:19:13 · 3445 阅读 · 0 评论 -
Python开发系列课程(3) - 分支结构
分支结构分支结构的应用场景迄今为止,我们写的Python代码都是一条一条语句顺序执行,这种结构的代码我们称之为顺序结构。然而仅有顺序结构并不能解决所有的问题,比如我们设计一个游戏,游戏第一关的通关条件是玩家获得1000分,那么在完成本局游戏后我们要根据玩家得到分数来决定究竟是进入第二关还是告诉玩家“Game Over”,这里就会产生两个分支,而且这两个分支只有一个会被执行,这就是程序中...原创 2018-02-28 16:35:24 · 3753 阅读 · 3 评论 -
Python开发系列课程(2) - 语言元素
语言元素指令和程序计算机的硬件系统通常由五大部件构成,包括:运算器、控制器、存储器、输入设备和输出设备。其中,运算器和控制器放在一起就是我们通常所说的中央处理器,它的功能是执行各种运算和控制指令以及处理计算机软件中的数据。我们通常所说的程序实际上就是指令的集合,我们写程序就是将一系列的指令按照某种方式组织到一起,然后通过这些指令去控制计算机做我们想让它做的事情。今天我们使用的计算机虽然器件...原创 2018-02-27 19:05:26 · 4300 阅读 · 0 评论 -
Python开发系列课程(1) - 初识Python
初识PythonPython简介Python是一个很棒的语言,从它诞生的那天起,一直致力于向开发者提供同时具备可读性和生产力的多范式编程语言。曾经有人Python仅仅是一门脚本语言,不适合构建大型系统,但是现在在社区和先驱公司的努力下,Python已经成为可以构建绝大多数应用系统的开发语言。Python的历史1989年圣诞节:Guido von Rossum开始写Pyth...原创 2018-02-26 19:34:42 · 9772 阅读 · 8 评论 -
Python开发系列课程(0) - 公告
好久都没有打开自己的博客,今天才注意到博客的访问量早已过了200万次,而关注我博客的人也越来越多,突然觉得有些惭愧,从2017年1月到现在居然只为自己的博客添了一篇博文,以前一直以没有时间作为借口没有把自己的博客建起来就选择了CSDN,然而选择了CSDN后这两年也没有好好写几篇对得起观众的博文,我自己对自己有点失望。当然2017年也并不是没有收获,至少家里又添了一个小宝宝,这让我的生活又多了很多的...原创 2018-02-26 01:03:18 · 6307 阅读 · 7 评论