FaGe's Blog

吹啊吹啊。

标签:编程语言

共 11 篇文章

来自老程序员的建议

来自老程序员的建议 你已经完成了这本书而且打算继续编程。也许这会成为你的一门职业,也许你只是作为业余爱好玩玩。无论如何,你都需要一些建议以保证你在正确的道路上继续前行,并且让这项新的爱好为你带来最大程度的享受。 我从事编程已经太长时间,长到对我来说编程已经是非常乏味的事情了。我写这本书的时候,已经懂得大约20种编程语言,而且可以在大约一天或者一个星期内学会一门编程语言(取决于这门语言有多古怪)。现在对我来说编程这件事情已经很无聊,已经谈不上什么兴趣了。当然这不是说编程本身是一件无聊的事情,也不是说你以后也一定会...

阅读全文

练习44.继承Vs.包含

练习44.继承Vs.包含 在有关英雄战胜邪恶的童话中,总是有某种形式的黑暗森林。它可能是一个山洞,森林,另一个星球或者其他地方,每个人都知道英雄不应该去。当然,当不就之后坏人被你找到的时候,你发现,英雄已经去那个愚蠢的森林里杀坏人去了。看起来英雄进入了一种状态,这种状态要求英雄必须在这个邪恶的森林中冒险。 在面向对象编程中,继承就是那个黑暗森林。有经验的程序员知道要避免这种邪恶,因为他们知道,黑暗森林深处有着多重继承这个邪恶的皇后。 她喜欢那她那庞大的牙齿吃掉软件和程序员。但这个森林是如此强大,如此诱人,几乎每一个...

阅读全文

练习40.模块, 类和对象

练习40.模块, 类和对象 Python 是一门“面向对象编程语言”。这意味着在Python中有一个叫做类的概念,你能通过类用一种特殊的方式构建你的软件。使用类的概念,能给你的程序增添一致性,这样你可以用一种很轻松方便的方式调用他们。至少,这是面向对象的理论。 我现在要通过使用你已经知道的字典和模块等来教你开始学习面向对象编程、类和对象。我的问题是面向对象编程(OOP)只是普通的怪异。你要为之而奋斗,努力尝试理解我讲的内容,编写代码,在下一个练习中,我会更深入的讲解。 我们要开始了。 模块就像字典 你知道字典是如何被创建以及使用的...

阅读全文

简介

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

阅读全文

练习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 = {"...

阅读全文

练习20:Zed的强大的调试宏

练习20:Zed的强大的调试宏 原文:Exercise 20: Zed's Awesome Debug Macros 译者:飞龙 在C中有一个永恒的问题,它伴随了你很长时间,然而在这个练习我打算使用一系列我开发的宏来解决它。到现在为止你都不知道它们的强大之处,所以你必须使用它们,总有一天你会来找我说,“Zed,这些调试宏真是太伟大了,我应该把我的第一个孩子的出生归功于你,因为你治好了我十年的心脏病,并且打消了我数次想要自杀的念头。真是要谢谢你这样一个好人,这里有一百万美元,和Leo Fender设计的Snakehead Telecaster电吉他的原型。” 是的,它们的确很强大。 C的...

阅读全文

练习12:If,Else If,Else

练习12:If,Else If,Else 原文:Exercise 12: If, Else-If, Else 译者:飞龙 if语句是每个编程语言中共有的特性,包括C语言。下面是一段代码,使用了if语句来确保只传入了一个或两个命令行参数: #include <stdio.h> int main(int argc, char *argv[]) { int i = 0; if(argc == 1) { printf("You only have one argument. You suck.\n"); } else if(argc > 1 && argc < 4) { printf("Here's your arguments:\n"); for(i = 0; i < argc; i++) { printf("%s ", argv[i]); } p...

阅读全文

练习3:格式化输出

练习3:格式化输出 原文:Exercise 3: Formatted Printing 译者:飞龙 不要删除Makefile,因为它可以帮你指出错误,以及当我们需要自动化处理一些事情时,可以向它添加新的东西。 许多编程语言都使用了C风格的格式化输出,所以让我们尝试一下: #include <stdio.h> int main() { int age = 10; int height = 72; printf("I am %d years old.\n", age); printf("I am %d inches tall.\n", height); return 0; } 写完之后,执行通常的make ex3命令来构建并运行它。一定要确保你处理了所有的警告。 这个练习的代码量很小,但...

阅读全文

导言:C的笛卡尔之梦

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

阅读全文