- 博客(141)
- 资源 (26)
- 收藏
- 关注

原创 从零开始学Python第20课:面向对象编程应用
面向对象的编程思想非常的好,也符合人类的正常思维习惯,但是要想灵活运用面向对象编程中的抽象、封装、继承、多态需要长时间的积累和沉淀,这件事情无法一蹴而就,因为知识的积累本就是涓滴成河的过程。
2025-02-20 09:30:47
713

原创 从零开始学Python第19课:面向对象编程进阶
Python 是动态类型语言,Python 中的对象可以动态的添加属性,对象的方法其实也是属性,只不过和该属性对应的是一个可以调用的函数。在面向对象的世界中,一切皆为对象,我们定义的类也是对象,所以类也可以接收消息,对应的方法是类方法或静态方法。通过继承,我们可以从已有的类创建新类,实现对已有类代码的复用。
2025-02-20 09:28:33
654

原创 从零开始学Python第18课:面向对象编程入门
面向对象编程是一种非常流行的编程范式,除此之外还有指令式编程、函数式编程等编程范式。由于现实世界是由对象构成的,而对象是可以接收消息的实体,所以面向对象编程更符合人类正常的思维习惯。类是抽象的,对象是具体的,有了类就能创建对象,有了对象就可以接收消息,这就是面向对象编程的基础。定义类的过程是一个抽象的过程,找到对象公共的属性属于数据抽象,找到对象公共的方法属于行为抽象。
2025-02-20 09:26:40
790

原创 从零开始学Python第17课:函数高级应用
装饰器是 Python 语言中的特色语法,可以通过装饰器来增强现有的函数,这是一种非常有用的编程技巧。另一方面,通过函数递归调用,可以在代码层面将一些复杂的问题简单化,但是递归调用一定要注意收敛条件和递归公式,找到递归公式才有机会使用递归调用,而收敛条件则确保了递归调用能停下来。函数调用通过内存中的栈空间来保存现场和恢复现场,栈空间通常都很小,所以递归如果不能迅速收敛,很可能会引发栈溢出错误,从而导致程序的崩溃。
2025-02-20 09:21:48
970

原创 从零开始学Python第16课:函数使用进阶
Python 中的函数是一等函数,可以赋值给变量,也可以作为函数的参数和返回值,这也就意味着我们可以在 Python 中使用高阶函数。高阶函数的概念对新手并不友好,但它却带来了函数设计上的灵活性。如果我们要定义的函数非常简单,只有一行代码,而且不需要函数名来复用它,我们可以使用 lambda 函数。
2025-02-20 09:10:03
980

原创 从零开始学Python第15课:函数的应用
在写代码尤其是开发商业项目的时候,一定要有意识的将相对独立且重复使用的功能封装成函数,这样不管是自己还是团队的其他成员都可以通过调用函数的方式来使用这些功能,减少工作中那些重复且乏味的劳动。
2023-05-26 11:18:00
1182

原创 从零开始学Python第14课:函数和模块
函数是对功能相对独立且会重复使用的代码的封装。学会使用定义和使用函数,就能够写出更为优质的代码。当然,Python 语言的标准库中已经为我们提供了大量的模块和常用的函数,用好这些模块和函数就能够用更少的代码做更多的事情;如果这些模块和函数不能满足我们的要求,可能就需要自定义函数,然后再通过模块的概念来管理这些自定义函数。
2023-05-25 10:20:46
1185

原创 从零开始学Python第13课:常用数据结构之字典
Python 程序中的字典跟现实生活中字典非常像,允许我们以键值对的形式保存数据,再通过键索引对应的值。这是一种非常有利于数据检索的数据类型。再次提醒大家注意,字典中的键必须是不可变类型,字典中的值可以是任意类型。
2023-04-26 16:52:57
852

原创 从零开始学Python第12课:常用数据结构之集合
Python 中的集合类型是一种无序容器,不允许有重复运算,由于底层使用了哈希存储,集合中的元素必须是hashable类型。集合与列表最大的区别在于集合中的元素没有顺序、所以不能够通过索引运算访问元素、但是集合可以执行交集、并集、差集等二元运算,也可以通过关系运算符检查两个集合是否存在超集、子集等关系。
2023-04-07 13:52:59
516

原创 从零开始学Python第11课:常用数据结构之字符串
知道如何表示和操作字符串对程序员来说是非常重要的,因为我们经常需要处理文本信息,Python 中操作字符串可以用拼接、索引、切片等运算符,也可以使用字符串类型提供的非常丰富的方法。
2023-04-04 08:10:18
898

原创 从零开始学Python第10课:常用数据结构之元组
在 Python 中,元组也是多个元素按照一定顺序构成的序列。元组和列表的不同之处在于,元组是不可变类型,这就意味着元组类型的变量一旦定义,其中的元素不能再添加或删除,而且元素的值也不能修改。定义元组通常使用形如(x, y, z)的字面量语法,元组类型支持的运算符跟列表是一样的。
2023-03-31 23:09:34
615

原创 从零开始学Python第09课:常用数据结构之列表-2
Python 中的列表底层是一个可以动态扩容的数组,列表元素在计算机内存中是连续存储的,所以可以实现随机访问(通过一个有效的索引获取对应的元素且操作时间与列表元素个数无关)。我们可以暂时不去触碰这些底层的存储细节,也不需要大家理解列表每个方法的渐近时间复杂度(执行方法耗费的时间跟列表元素个数之间的关系),大家先学会用列表解决工作中的问题,我想这一点更为重要。
2023-03-31 15:40:36
388

原创 从零开始学Python第08课:常用数据结构之列表-1
在 Python 中,列表是由一系元素按特定顺序构成的数据序列,这就意味着如果我们定义一个列表类型的变量,可以用它来保存多个数据。
2023-03-28 17:33:29
478

原创 从零开始学Python第07课:分支结构和循环结构的应用
分支结构和循环结构都非常重要,是构造程序逻辑的基础,一定要通过大量的练习来达到融会贯通。我们可以用上面讲的花旗骰游戏作为一个标准,如果你能够很顺利的完成这段代码,那么分支结构和循环结构的知识你就已经很好的掌握了。
2023-03-26 11:43:29
675

原创 从零开始学Python第06课:循环结构
学会了 Python 中的分支结构和循环结构,我们就可以解决很多实际的问题了。通过这节课的学习,大家应该已经知道了可以用for和while关键字来构造循环结构。如果事先知道循环结构重复的次数,我们通常使用for循环;如果循环结构的重复次数不能确定,可以用while循环。此外,我们可以在循环结构中使用break终止循环,也可以在循环结构中使用continue关键字让循环结构直接进入下一轮次。
2023-03-24 16:06:09
497

原创 从零开始学Python第05课:分支结构
迄今为止,我们写的 Python 代码都是一条一条语句按顺序向下执行的,这种代码结构叫做顺序结构。然而仅有顺序结构并不能解决所有的问题,比如我们设计一个游戏,游戏第一关的过关条件是玩家获得1000分,那么在第一关完成后,我们要根据玩家得到分数来决定是进入第二关,还是告诉玩家“Game Over”。在这样的场景下,我们的代码就会产生两个分支,而且这两个分支只有一个会被执行。类似的场景还有很多,我们将这种结构称之为“分支结构”或“选择结构”。
2023-03-22 08:00:00
1200

原创 从零开始学Python第04课:Python语言元素之运算符
实际编程中的很多问题,都需通过构造表达式来解决,所以变量、运算符、表达式对于任何一门编程语言都是极为重要的基础。如果本节课的内容有什么不理解的地方,一定不要着急进入下一课,先在评论区留言讨论,我会及时解答大家的问题。
2023-03-20 15:42:44
662
2

原创 从零开始学Python第03课:Python语言中的变量
程序是指令的集合,写程序就是用指令控制计算机做我们想让它做的事情。今时今日,为什么有那么多人选择用 Python 语言来写程序,因为 Python 语言足够的简单和强大。
2023-03-20 08:00:00
430

原创 从零开始学Python第02课:第一个Python程序
对于初学者,我个人比较推荐使用 PyCharm,因为它不需要太多的配置也非常的强大,对新手还是很友好的。
2023-03-19 14:02:02
1316

原创 从零开始学Python第01课:初识Python
Python是目前世界上最受欢迎和拥有最多用户群体的编程语言,它强调代码的可读性和语法的简洁性,相较于 C 或 Java,Python 让使用者能够用更少的代码表达自己的意图。
2023-03-18 16:00:00
1577
2

原创 Java面试题全集(下)
这部分主要是开源Java EE框架方面的内容,包括Hibernate、MyBatis、Spring、Spring MVC等,由于Struts 2已经是明日黄花,在这里就不讨论Struts 2的面试题。此外,这篇文章还对企业应用架构、大型网站架构和应用服务器优化等内容进行了简单的探讨,这些内容相信对面试会很有帮助。
2015-04-14 17:19:19
251437
48

原创 Java面试题全集(中)
2015年重新整理发布的Java面试题全集,这部分主要是与Java Web和Web Service相关的面试题。
2015-04-09 22:05:20
264739
28

原创 Java面试题全集(上)
2013年年底的时候,我看到了网上流传的一个叫做《Java面试题大全》的东西,认真的阅读了以后发现里面的很多题目是重复且没有价值的题目,还有不少的参考答案也是错误的,于是我花了半个月时间对这个所谓的《Java面试大全》进行了全面的修订并重新发布在我的优快云博客。
2015-04-08 17:14:00
1669459
310

原创 Java的第20年:Java和我的故事
今年是Java诞生的第20年,写这样的一篇文章纪念那个曾经让我执着和疯狂的Java,也纪念那个从单纯到迷茫再回归单纯的我。
2015-03-29 06:42:12
22213
57

原创 关于Java并发编程的总结和思考
编写优质的并发代码是一件难度极高的事情。Java语言从第一版本开始内置了对多线程的支持,这一点在当年是非常了不起的,但是当我们对并发编程有了更深刻的认识和更多的实践后,实现并发编程就有了更多的方案和更好的选择。本文是对并发编程的一点总结和思考,同时也分享了Java 5以后的版本中如何编写并发代码的一点点经验。
2015-03-27 10:36:10
157511
36

原创 程序员必读书籍及导读指南
最近在网上看了一个非常好的帖子《程序员一生必读的书》, 这张图是由ThoughtWorks的资深人士提供的,它将程序员要读的书分为四个类别,每个类别又分为初级、进阶和高级读物,并用黄色三角形点出了强烈推荐阅读的书籍。
2015-03-23 00:59:20
56935
58

原创 Java Web自定义MVC框架详解
最近给学生讲Java Web,希望他们能够在学完这部分内容后自己实现一个MVC框架。但是突然发现百度上能搜索到的靠谱的资料并不是很多,有些只是原理没有代码实现,有些有代码实现但是对于初学者来说理解起来还是比较困难,于是决定把自己讲自定义MVC框架的内容放在这里分享给大家,不仅仅是代码,也有原理和探讨。内容会比较长,因为我打算用递增的方式讲解如何写一个自定义MVC框架,重点是前端控制器的开发。先...
2015-01-16 10:56:01
52943
5
原创 Python开发系列课程(20) - 网络应用开发
网络应用开发发送电子邮件在即时通信软件如此发达的今天,电子邮件仍然是互联网上使用最为广泛的应用之一,公司向应聘者发出录用通知、网站向用户发送一个激活账号的链接、银行向客户推广它们的理财产品等几乎都是通过电子邮件来完成的,而这些任务应该都是由程序自动完成的。就像我们可以用HTTP(超文本传输协议)来访问一个网站一样,发送邮件要使用SMTP(简单邮件传输协议),SMTP也是一个建立在T...
2018-05-05 00:33:43
6119
2
原创 Python开发系列课程(19) - 数据可视化
数据可视化数据的处理、分析和可视化已经成为Python近年来最为重要的应用领域之一,其中数据的可视化指的是将数据呈现为漂亮的统计图表,然后进一步发现数据中包含的规律以及隐藏的信息。数据可视化又跟数据挖掘和大数据分析紧密相关,而这些领域以及当下被热议的“深度学习”其最终的目标都是为了实现从过去的数据去对未来的状况进行预测。Python在实现数据可视化方面是非常棒的,即便是使用个人电脑也能够实现对...
2018-05-01 00:16:34
5072
1
原创 Python开发系列课程(18) - 网络编程入门
网络编程入门计算机网络基础计算机网络是独立自主的计算机互联而成的系统的总称,组建计算机网络最主要的目的是实现多台计算机之间的通信和资源共享。今天计算机网络中的设备和计算机网络的用户已经多得不可计数,而计算机网络也可以称得上是一个“复杂巨系统”,对于这样的系统,我们不可能用一两篇文章把它讲清楚,有兴趣的读者可以自行阅读Andrew S.Tanenbaum老师的经典之作《计算机网络》或Ku...
2018-04-26 23:32:15
3337
原创 Python开发系列课程(17) - Python“惯例”
Python“惯例”“惯例”这个词指的是“习惯的做法,常规的办法,一贯的做法”,与这个词对应的英文单词叫“idiom”。由于Python跟其他很多编程语言在语法和使用上还是有比较显著的差别,因此作为一个Python开发者如果不能掌握这些惯例,就无法写出“Pythonic”的代码。下面我们总结了一些在Python开发中的惯用的代码。让代码既可以被导入又可以被执行。if __name__...
2018-04-24 18:31:13
2501
原创 Python开发系列课程(16) - 进程和线程
进程和线程今天我们使用的计算机早已进入多CPU或多核时代,而我们使用的操作系统都是支持“多任务”的操作系统,这使得我们可以同时运行多个程序,也可以将一个程序分解为若干个相对独立的子任务,让多个子任务并发的执行,从而缩短程序的执行时间,同时也让用户获得更好的体验。因此在当下不管是用什么编程语言进行开发,实现让程序同时执行多个任务也就是常说的“并发编程”,应该是程序员必备技能之一。为此,我们需要先...
2018-03-27 19:10:58
4370
原创 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
8957
3
原创 Python开发系列课程(14) - 玩转正则表达式
玩转正则表达式正则表达式相关知识在编写处理字符串的程序或网页时,经常会有查找符合某些复杂规则的字符串的需要,正则表达式就是用于描述这些规则的工具,换句话说正则表达式是一种工具,它定义了字符串的匹配模式(如何检查一个字符串是否有跟某种模式匹配的部分或者从一个字符串中将与模式匹配的部分提取出来或者替换掉)。如果你在Windows操作系统中使用过文件查找并且在指定文件名时使用过通配符(*和?...
2018-03-23 14:47:08
2799
原创 Python开发系列课程(13) - 文件和异常
文件和异常在实际开发中,常常需要对程序中的数据进行持久化操作,而实现数据持久化最直接简单的方式就是将数据保存到文件中。说到“文件”这个词,可能需要先科普一下关于文件系统的知识,对于这个概念,维基百科上给出了很好的诠释,这里不再浪费笔墨。在Python中实现文件的读写操作其实非常简单,通过Python内置的open函数,我们可以指定文件名、操作模式、编码信息等来获得操作文件的对象,接下来就可...
2018-03-23 00:29:38
2025
原创 Python开发系列课程(12) - 图形用户界面和游戏开发
图形用户界面和游戏开发基于tkinter模块的GUIGUI是图形用户界面的缩写,图形化的用户界面对使用过计算机的人来说应该都不陌生,在此也无需进行赘述。Python默认的GUI开发模块是tkinter(在Python 3以前的版本中名为Tkinter),从这个名字就可以看出它是基于Tk的,Tk是一个工具包,最初是为Tcl设计的,后来被移植到很多其他的脚本语言中,它提供了跨平台的GUI控...
2018-03-18 22:03:25
7526
原创 Python开发系列课程(11) - 面向对象编程进阶
面向对象编程进阶在前面的章节我们已经了解了面向对象的入门知识,知道了如何定义类,如何创建对象以及如何给对象发消息。为了能够更好的使用面向对象编程思想进行程序开发,我们还需要对Python中的面向对象编程进行更为深入的了解。@property装饰器之前我们讨论过Python中属性和方法访问权限的问题,虽然我们不建议将属性设置为私有的,但是如果直接将属性暴露给外界也是有问题的,比如我们没有...
2018-03-13 19:46:28
3474
2
原创 Python开发系列课程(10) - 那些年我们踩过的那些坑(上)
那些年我们踩过的那些坑坑01 - 整数比较的坑在 Python 中一切都是对象,整数也是对象,在比较两个整数时有两个运算符==和is,它们的区别是:is比较的是两个整数对象的id值是否相等,也就是比较两个引用是否代表了内存中同一个地址。==比较的是两个整数对象的内容是否相等,使用==时其实是调用了对象的__eq__()方法。知道了is和==的区别之后,我们可以来看看下...
2018-03-11 22:42:42
40858
11
原创 Python开发系列课程(9) - 面向对象编程基础
面向对象编程基础活在当下的程序员应该都听过“面向对象编程”一词,也经常有人问能不能用一句话解释下什么是“面向对象编程”,我们先来看看比较正式的说法。 把一组数据结构和处理它们的方法组成对象(object),把相同行为的对象归纳为类(class),通过类的封装(encapsulation)隐藏内部细节,通过继承(inheritance)实现类的特化(specialization)和泛化(...
2018-03-11 09:45:05
3429
原创 Python开发系列课程(8) - 字符串和常用数据结构
字符串和常用数据结构使用字符串第二次世界大战促使了现代电子计算机的诞生,当初的想法很简单,就是用计算机来计算导弹的弹道,因此在计算机刚刚诞生的那个年代,计算机处理的信息主要是数值,而世界上的第一台电子计算机ENIAC每秒钟能够完成约5000次浮点运算。随着时间的推移,虽然对数值运算仍然是计算机日常工作中最为重要的事情之一,但是今天的计算机处理得更多的数据都是以文本信息的方式存在的,而P...
2018-03-09 02:02:19
3142
3
Java Web自定义MVC框架项目源代码
2015-04-13
C#开发的记忆力测试游戏
2014-04-06
Spring3.x企业应用开发实战源代码
2014-01-06
Introduction to Java Programming sixth Edition源程序
2009-02-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人