美文网首页Python
笨办法学 Python(练习题)

笨办法学 Python(练习题)

作者: fatfatEddy | 来源:发表于2016-10-12 15:15 被阅读657次

    笨办法学 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

    相关文章

      网友评论

        本文标题:笨办法学 Python(练习题)

        本文链接:https://www.haomeiwen.com/subject/tmrvyttx.html