FaGe's Blog

吹啊吹啊。

标签:工作原理

共 9 篇文章

练习38.列表操作

练习38.列表操作 你已经学过了列表。在你学习“while循环”的时候,你对列表进行过“追加(append)”操作,而且将列表的内容打印了出来。另外你应该还在附加题里研究过 Python 文档,看了列表支持的其他操作。这已经是一段时间以前了,所以如果你不记得了的话,就回到本书的前面再复习一遍把。 找到了吗?还记得吗?很好。那时候你对一个列表执行了append函数。不过,你也许还没有真正明白发生的事情,所以我们再来看看我们可以对列表进行什么样的操作。 当你看到像 mystuff.append('hello') 这样的代码时,你事实上已经在 Python 内部激发了一个连锁...

阅读全文

练习31.做出决定

练习31.做出决定 这本书的上半部分你打印了一些东西,而且调用了函数,不过一切都是直线式进行的。你的脚本从最上面一行开始,一路运行到结束,但其中并没有决定程序流向的分支点。现在你已经学了if,else,和elif,你就可以开始创建包含条件判断的脚本了。 上一个脚本中你写了一系列的简单提问测试。这节的脚本中,你将需要向用户提问,依据用户的答案来做出决定。把脚本写下来,多多鼓捣一阵子,看看它的工作原理是什么。 print "You enter a dark room with two doors. Do you go through door #1 or door #2?" door = raw_input("> ") if door ...

阅读全文

练习15.读文件

练习15.读文件 你已经学过raw_input和argv,这些是你开始学习读取文件的必备基础。你可能需要多多实验才能明白它的工作原理,所以你要细心做练习,并且仔细检查结果。处理文件需要非常仔细,否则,你可能会把有用的文件弄坏或者清空。导致前功尽弃。 这节练习涉及到写两个文件。一个正常的 ex15.py 文件,另外一个是 ex15_sample.txt,第二个文件并不是脚本,而是供你的脚本读取的文本文件。以下是后者的内容: This is stuff I typed into a file. It is really cool stuff. Lots and lots of fun to have in here. 我们要做的是用我们的脚本“打开...

阅读全文

简介

简介 笨办法更简单 在这本书的帮助下,你将通过非常简单的练习学会一门编程语言。做练习 是每个程序员的必经之路: 做每一道习题 一字不差地写出每一个程序 让程序运行起来 就是这样,刚开始可能会非常难,但你要坚持下去。如果你通读了这本书,并且每晚花一两个小时做习题,你可以为自己读下一本关于Python的编程书籍打下良好的基础。这本书不会在一夜之间把你变成一个程序员,但是它会帮你掌握学习编程的最基本的方法。 这本书的目的是教会你作为编程新手所需的三种最重要的技能:读和写、注重细节、发现不同。 读和写 如果你连打字都成问题的话...

阅读全文

练习40:二叉搜索树

练习40:二叉搜索树 原文:Exercise 40: Binary Search Trees 译者:飞龙 二叉树是最简单的树形数据结构,虽然它在许多语言中被哈希表取代,但仍旧对于一些应用很实用。二叉树的各种变体可用于一些非常实用东西,比如数据库的索引、搜索算法结构、以及图像处理。 我把我的二叉树叫做BSTree,描述它的最佳方法就是它是另一种Hashmap形式的键值对储存容器。它们的差异在于,哈希表为键计算哈希值来寻找位置,而二叉树将键与树中的节点进行对比,之后深入树中找到储存它的最佳位置,基于它与其它节点的关系。 在我真正解释它的工作原理之前,让我向你...

阅读全文

练习37:哈希表

练习37:哈希表 原文:Exercise 37: Hashmaps 译者:飞龙 哈希表(HashMap、HashTable以及Dictionary)广泛用于许多动态编程语言来储存键值对的数据。哈希表通过在键上执行“哈希”运算产生整数,之后使用它来寻找相应的桶来获取或储存值。它是非常快速的使用数据结构,因为它适用于任何数据并且易于实现。 下面是哈希表(也叫作字典)的一个使用示例: fruit_weights = {'Apples': 10, 'Oranges': 100, 'Grapes': 1.0} for key, value in fruit_weights.items(): print key, "=", value 几乎所有现代语言都具备这种特性,所以许多人写完代...

阅读全文

练习32:双向链表

练习32:双向链表 原文:Exercise 32: Double Linked Lists 译者:飞龙 这本书的目的是教给你计算机实际上如何工作,这也包括多种数据结构和算法函数。计算机自己其实并没有太大用处。为了让它们做一些有用的事情,你需要构建数据,之后在这些结构上组织处理。其它编程语言带有实现所有这些结构的库,或者带有直接的语法来创建它们。C需要你手动实现所有数据结构,这使它成为最“完美”的语言,让你知道它们的工作原理。 我的目标是交给你这些数据结构,以及相关算法的知识,来帮助你完成下面这三件事: 理解Python、Ruby或JavaScript的data = {"...

阅读全文

练习19:一个简单的对象系统

练习19:一个简单的对象系统 原文:Exercise 19: A Simple Object System 译者:飞龙 我在学习面向对象编程之前学了C,所以它有助于我在C中构建面向对象系统,来理解OOP的基本含义。你可能在学习C之前就学了OOP语言,所以这章也可能会起到一种衔接作用。这个联系中,你将会构建一个简单的对象系统,但是也会了解更多关于C预处理器的事情。 这个练习会构建一个简单的游戏,在游戏中你会在一个小型的城堡中杀死弥诺陶洛斯,并没有任何神奇之处,只是四个房间和一个坏家伙。这个练习同时是一个多文件的项目,并且比起之前的一些程序看起来更像一个真...

阅读全文

导言:C的笛卡尔之梦

导言:C的笛卡尔之梦 原文:Introduction: The Cartesian Dream Of C 译者:飞龙 ‍ 直到现在,凡是我当作最真实、最可靠而接受的东西,都是从感官或通过感官得来的。不过,我有时觉得这些感官是骗人的,并且为了小心谨慎起见,对于一经骗过我们的东西就决不完全加以信任。 勒内·笛卡尔,《第一哲学沉思录》 如果有一段引述用来描述C语言编程的话,那就是它了。对于大多数程序员,C是极其可怕而且邪恶的。他就像是恶魔、撒旦,或者一个使用指针的花言巧语和对机器的直接访问来破坏你生产力的骗子洛基。于是,一旦这位计算界的路西法将你缠住,...

阅读全文