笨办法学 Python(练习题)

笨办法学 Python (Learn Python The Hard Way)中文版

习题 0: 准备工作

总有一天你会听到有程序员建议你使用 Mac OSX 或者 Linux。如果他喜欢字体美观,他会告诉你让你弄台 Mac OSX 计算机,如果他们喜欢操作控制而且留了一部大胡子,他会让你安装 Linux。这里再次向你说明,只要是一台手上能用的电脑就可以了。你需要的只有三样东西: gedit、一个命令行终端、还有python。


习题 1: 第一个程序

学会看调试错误

这些内容你应该学会看懂的,这是很重要的一点,因为你以后还会犯类似的错误。就是我现在也会犯这样的错误。让我们一行一行来看。

python

  • 会打印出错误的行
  • 指示错误的地方
  • 指示错误的类型

习题 2: 注释和井号

程序里的注释是很重要的。它们可以用自然语言告诉你某段代码的功能是什么。
在你想要临时移除一段代码时,你还可以用注解的方式将这段代码临时禁用.


习题 3: 数字和数学计算

每一种编程语言都包含处理数字和进行数学计算的方法。不必担心,程序员经常撒谎说他们是多么牛的数学天才,其实他们根本不是。

如果他们真是数学天才,他们早就去从事数学相关的行业了,而不是写写广告程序和社交网络游戏,从人们身上偷赚点小钱而已。


习题 4: 变量(variable)和命名

在编程中,变量只不过是用来指代某个东西的名字。
程序员通过使用变量名可以让他们的程序读起来更像英语。
而且因为程序员的记性都不怎么地.
变量名可以让他们更容易记住程序的内容。如果他们没有在写程序时使用好的变量名,在下一次读到原来写的代码时他们会大为头疼的


习题 5: 更多的变量和打印

  • 格式化字符串(format string)
  • 试着使用更多的格式化字符。例如 %r 就是是非常有用的一个,它的含义是“不管什么都打印出来”。

习题 6: 字符串(string)和文本

字符串可以包含格式化字符 %s,这个你之前也见过的。你只要将格式化的变量放到字符串中,再紧跟着一个百分号 % (percent),再紧跟着变量名即可。

唯一要注意的地方,是如果你想要在字符串中通过格式化字符放入多个变量的时候,你需要将变量放到 ( ) 圆括号(parenthesis)中,而且变量之间用 ,逗号(comma)隔开。就像你逛商店说“我要买牛奶、面包、鸡蛋、八宝粥”一样,只不过程序员说的是”(milk, eggs, bread, soup)”。


习题 7: 更多打印

  • 从现在开始,把你的错误记录下来,写在一张纸上。
  • 在开始下一节习题时,阅读一遍你记录下来的错误,并且尽量避免在下个练习中再犯同样的错误。
  • 记住,每个人都会犯错误。程序员和魔术师一样,他们希望大家认为他们从不犯错,不过这只是表象而已,他们每时每刻都在犯错。

习题 8: 打印,打印

习题 9: 打印,打印,打印


习题 10: 那是什么

  • 使用反斜杠 \ (back-slash) 可以将难打印出来的字符放到字符串。针对不同的符号有很多这样的所谓“转义序列(escape sequences)”.
  • 但有一个特殊的转义序列,就是 **双反斜杠(double back-slash) \\ **。这两个字符组合会打印出一个反斜杠来.
tabby_cat = "\tI'm tabbed in."      #\t制表符
persian_cat = "I'm split\non a line."    #\n换行符
backslash_cat = "I'm \\ a \\ cat."     #2个\\显示1个\

fat_cat = """
I'll do a list:
\t* Cat food
\t* Fishies
\t* Catnip\n\t* Grass
"""

print tabby_cat
print persian_cat
print backslash_cat
print fat_cat

输出:

    I'm tabbed in.
I'm split
on a line.
I'm \ a \ cat.

I'll do a list:
* Cat food
* Fishies
* Catnip
* Grass

习题 11: 提问

一般软件做的事情主要就是下面几条:

  • 接受人的输入。
  • 改变输入。
  • 打印出改变了的输入。

注意到我在每行 print 后面加了个逗号(comma) , 了吧?这样的话 print 就不会输出新行符而结束这一行跑到下一行去了。


习题 12: 提示别人


习题 13: 参数、解包、变量

  • 在第 1 行我们有一个“import”语句. 这是你将 python 的功能引入你的脚本的方法.
  • Python 不会一下子将它所有的功能给你,而是让你需要什么就调用什么。
  • 这样可以让你的程序保持精简,而后面的程序员看到你的代码的时候,这些“import”可以作为提示,让他们明白你的代码用到了哪些功能。
from sys import argv

script, first, second, third  = argv
print ("The script is called:") , script
print ("Your first variable is:") , first
print ("Your second variable is:") , second
print ("Your third variable is:") , third
奇怪的结果

在pycharm里面运行命令行:
Run/Debug Configurations->Configurations->Script Parames

输出:

The script is called:       
F:/2���/python/nesterjerrychan/chapter6/learnhardway/test.py
Your first variable is: first
Your second variable is: second
Your third variable is: third

习题 14: 提示和传递


习题 15: 读取文件

我使用了“命令”这个词,不过实际上它们的名字是“函数(function)”和“方法(method)。上网搜索一下这两者的意义和区别。看不明白也没关系,迷失在别的程序员的知识海洋里是很正常的一件事情。


习题 16: 读写文件

  • close – 关闭文件。跟你编辑器的 文件->保存.. 一个意思。
  • read – 读取文件内容。你可以把结果赋给一个变量。
  • readline – 读取文本文件中的一行。
  • truncate – 清空文件,请小心使用该命令。
  • write(stuff) – 将stuff写入文件。

习题 17: 更多文件操作

文本1--->复制文本--->文本2
为什么每次需要output.close()?

1.把文件想象成信件就可以了,打开信封才能取出信纸,把信纸放入信封还要封好,不然随时可能掉出来.

2.如果没有close(),写入的内容可能会存在缓冲区中,并没有真正的写入文件里。

3.close()是为了释放资源。
如果不close(),那就要等到垃圾回收时,自动释放资源。垃圾回收的时机是不确定的,也无法控制的。
如果程序是一个命令,很快就执行完了,那么可能影响不大(注意:并不是说就保证没问题)。
但如果程序是一个服务,或是需要很长时间才能执行完,或者很大并发执行,就可能导致资源被耗尽,也有可能导致死锁。


习题 18: 命名、变量、代码、函数

函数可以做三样事情:

  • 它们给代码片段命名,就跟“变量”给字符串和数字命名一样。
  • 它们可以接受参数,就跟你的脚本接受 argv一样。
  • 通过使用 #1 和 #2,它们可以让你创建“微型脚本”或者“小命令”。

创建函数过程:

  • 告诉 Python 创建一个函数,def ,也就是“定义(define)”的意思。
  • 紧接着 def 的是函数的名称。但最好函数的名称能够体现出函数的功能来。

习题 19: 函数和变量

函数里边的变量和脚本里边的变量之间是没有连接的


习题 20: 函数和文件


习题 21: 函数可以返回东西


习题 22: 到现在你学到了哪些东西?

做这节练习没有失败,只有尝试,请牢记这一点。


习题 23: 读代码


习题 24: 更多练习


老程序员的建议

在这么久的旅程下来我的体会是:编程语言这东西并不重要,重要的是你用这些语言做的事情。事实上我一直知道这一点,不过以前我会周期性地被各种编程语言分神而忘记了这一点。现在我是永远不会忘记这一点了,你也不应该忘记这一点。

你学到和用到的编程语言并不重要。不要被围绕某一种语言的宗教把你扯进去,这只会让你忘掉了语言的真正目的,也就是作为你的工具来实现有趣的事情。

编程作为一项智力活动,是唯一一种能让你创建交互式艺术的艺术形式。你可以创建项目让别人使用,而且你可以间接地和使用者沟通。没有其他的艺术形式能做到如此程度的交互性。电影领着观众走向一个方向,绘画是不会动的。而代码却是双向互动的。

技术公司里边会编程的人多到一毛钱一打,根本得不到什么尊敬。而在生物学、医药学、政府部门、社会学、物理学、数学等行业领域从事编程的人就能得到足够的尊敬,而且你可以使用这项技能在这些领域做出令人惊异的成就。

You can code. They cannot. That is pretty damn cool.

Advice from an Old Programmer

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,290评论 4 363
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,399评论 1 294
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,021评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,034评论 0 207
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,412评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,651评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,902评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,605评论 0 199
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,339评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,586评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,076评论 1 261
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,400评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,060评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,083评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,851评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,685评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,595评论 2 270

推荐阅读更多精彩内容

  • 习题0:准备工作 总有一天你会听到有程序员建议你使用 Mac OSX 或者 Linux。如果他喜欢字体美观,他会告...
    KennyP0618阅读 2,161评论 0 1
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 170,569评论 25 707
  • http://python.jobbole.com/85231/ 关于专业技能写完项目接着写写一名3年工作经验的J...
    燕京博士阅读 7,484评论 1 118
  • 这些日子北京各大公园的相亲角成为了热门新闻,网络中报纸上电视里都在吐槽相亲角的种种不是,几乎一无是处。真奇怪几乎没...
    万象随心阅读 384评论 0 1
  • 我是农村人,从小是个女汉子。奔跑在乡野田坎,好几次差点掉水田里吃一嘴泥、掉河沟里被淹死。还记得小时候的那种塑料凉鞋...
    小小一二阅读 470评论 0 0