zoukankan      html  css  js  c++  java
  • 笨办法学Python(三十八)

    习题 38: 阅读代码

        现在去找一些 Python 代码阅读一下。你需要自己找代码,然后从中学习一些东西。你学到的东西已经足够让你看懂一些代码了,但你可能还无法理解这些代码的功能。这节课我要教给你的是:如何运用你学到的东西理解别人的代码。

        首先把你想要理解的代码打印到纸上。没错,你需要打印出来,因为和屏幕输出相比,你的眼睛和大脑更习惯于接受纸质打印的内容。一次最多打印几页就可以了。

        然后通读你打印出来的代码并做好标记,标记的内容包括以下几个方面:

    1. 函数以及函数的功能。
    2. 每个变量的初始赋值。
    3. 每个在程序的各个部分中多次出现的变量。它们以后可能会给你带来麻烦。
    4. 任何不包含 else 的 if 语句。它们是正确的吗?
    5. 任何可能没有结束点的 while 循环。
    6. 最后一条,代码中任何你看不懂的部分都记下来。

        接下来你需要通过注解的方式向自己解释代码的含义。解释各个函数的使用方法,各个变量的用途,以及任何其它方面的内容,只要能帮助你理解代码即可。

        最后,在代码中比较难的各个部分,逐行或者逐个函数跟踪变量值。你可以再打印一份出来,在空白处写出你要“追踪”的每个变量的值。

        一旦你基本理解了代码的功能,回到电脑面前,在屏幕上重读一次,看看能不能找到新的问题点。然后继续找新的代码,用上述的方法去阅读理解,直到你不再需要纸质打印为止。

    加分习题

    1. 研究一下什么是“流程图(flow chart)”,并学着画一下。
    2. 如果你在读代码的时候找出了错误,试着把它们改对,并把修改内容发给作者。
    3. 不使用纸质打印时,你可以使用注解符号 # 在程序中加入笔记。有时这些笔记会对后来的读代码的人有很大的帮助。
  • 相关阅读:
    【Lintcode】112.Remove Duplicates from Sorted List
    【Lintcode】087.Remove Node in Binary Search Tree
    【Lintcode】011.Search Range in Binary Search Tree
    【Lintcode】095.Validate Binary Search Tree
    【Lintcode】069.Binary Tree Level Order Traversal
    【Lintcode】088.Lowest Common Ancestor
    【Lintcode】094.Binary Tree Maximum Path Sum
    【算法总结】二叉树
    库(静态库和动态库)
    从尾到头打印链表
  • 原文地址:https://www.cnblogs.com/yllinux/p/7616322.html
Copyright © 2011-2022 走看看