7k 6 分钟

# 图形用户界面和游戏开发 # 基于 tkinter 模块的 GUI GUI 是图形用户界面的缩写,图形化的用户界面对使用过计算机的人来说应该都不陌生,在此也无需进行赘述。Python 默认的 GUI 开发模块是 tkinter(在 Python 3 以前的版本中名为 Tkinter),从这个名字就可以看出它是基于 Tk 的,Tk 是一个工具包,最初是为 Tcl 设计的,后来被移植到很多其他的脚本语言中,它提供了跨平台的 GUI 控件。当然 Tk 并不是最新和最好的选择,也没有功能特别强大的 GUI 控件,事实上,开发 GUI 应用并不是 Python 最擅长的工作,如果真的需要使用...
13k 12 分钟

# 面向对象进阶 在前面的章节我们已经了解了面向对象的入门知识,知道了如何定义类,如何创建对象以及如何给对象发消息。为了能够更好的使用面向对象编程思想进行程序开发,我们还需要对 Python 中的面向对象编程进行更为深入的了解。 # @property 装饰器 之前我们讨论过 Python 中属性和方法访问权限的问题,虽然我们不建议将属性设置为私有的,但是如果直接将属性暴露给外界也是有问题的,比如我们没有办法检查赋给属性的值是否有效。我们之前的建议是将属性命名以单下划线开头,通过这种方式来暗示属性是受保护的,不建议外界直接访问,那么如果想访问属性可以通过属性的 getter(访问器)和...
5k 5 分钟

# 面向对象编程基础 活在当下的程序员应该都听过 "面向对象编程" 一词,也经常有人问能不能用一句话解释下什么是...
12k 11 分钟

# 字符串和常用数据结构 # 使用字符串 第二次世界大战促使了现代电子计算机的诞生,最初计算机被应用于导弹弹道的计算,而在计算机诞生后的很多年时间里,计算机处理的信息基本上都是数值型的信息。世界上的第一台电子计算机叫 ENIAC(电子数值积分计算机),诞生于美国的宾夕法尼亚大学,每秒钟能够完成约 5000 次浮点运算。随着时间的推移,虽然数值运算仍然是计算机日常工作中最为重要的事情之一,但是今天的计算机处理得更多的数据可能都是以文本的方式存在的,如果我们希望通过 Python...
5.9k 5 分钟

# 函数和模块的使用 在讲解本章节的内容之前,我们先来研究一道数学题,请说出下面的方程有多少组正整数解。 事实上,上面的问题等同于将 8 个苹果分成四组每组至少一个苹果有多少种方案。想到这一点问题的答案就呼之欲出了。 可以用 Python 的程序来计算出这个值,代码如下所示。 """ 输入M和N计算C(M,N) Version: 0.1 Author: 骆昊 """ m = int(input('m = ')) n = int(input('n =...
2.7k 2 分钟

# 构造程序逻辑 学完前面的几个章节后,我觉得有必要在这里带大家做一些练习来巩固之前所学的知识,虽然迄今为止我们学习的内容只是 Python 的冰山一角,但是这些内容已经足够我们来构建程序中的逻辑。对于编程语言的初学者来说,在学习了 Python 的核心语言元素(变量、类型、运算符、表达式、分支结构、循环结构等)之后,必须做的一件事情就是尝试用所学知识去解决现实中的问题,换句话说就是锻炼自己把用人类自然语言描述的算法(解决问题的方法和步骤)翻译成 Python...
3.3k 3 分钟

# 循环结构 # 应用场景 我们在写程序的时候,一定会遇到需要重复执行某条或某些指令的场景。例如用程序控制机器人踢足球,如果机器人持球而且还没有进入射门范围,那么我们就要一直发出让机器人向球门方向移动的指令。在这个场景中,让机器人向球门方向移动就是一个需要重复的动作,当然这里还会用到上一课讲的分支结构来判断机器人是否持球以及是否进入射门范围。再举一个简单的例子,如果要实现每隔 1 秒中在屏幕上打印一次 “hello, world” 并持续打印一个小时,我们肯定不能够直接把 print('hello, world') 这句代码写 3600...
2.6k 2 分钟

# 分支结构 # 应用场景 迄今为止,我们写的 Python 代码都是一条一条语句顺序执行,这种代码结构通常称之为顺序结构。然而仅有顺序结构并不能解决所有的问题,比如我们设计一个游戏,游戏第一关的通关条件是玩家获得 1000 分,那么在完成本局游戏后,我们要根据玩家得到分数来决定究竟是进入第二关,还是告诉玩家 “Game Over”,这里就会产生两个分支,而且这两个分支只有一个会被执行。类似的场景还有很多,我们将这种结构称之为 “分支结构” 或 “选择结构”。给大家一分钟的时间,你应该可以想到至少 5 个以上这样的例子,赶紧试一试。 # if 语句的使用 在 Python...
15k 13 分钟

# NoSQL 入门 # NoSQL 概述 如今,大多数的计算机系统(包括服务器、PC、移动设备等)都会产生庞大的数据量。其实,早在 2012 年的时候,全世界每天产生的数据量就达到了 2.5EB(艾字节,$$1EB\approx10^{18} B$$)。这些数据有很大一部分是由关系型数据库来存储和管理的。 早在 1970 年,E.F.Codd 发表了论述关系型数据库的著名论文 “A relational model of data for large shared data...