【问题标题】:Analysing programs by hand手动分析程序
【发布时间】:2018-05-20 22:08:01
【问题描述】:

不确定这是不是问这个问题的最佳地方,但这里是。

对于考试,我必须手动分析一小段代码,以确定输出(如果有)。这是一个例子:

def f2(x, y):
    if not x > y:
        return "Red"
    else:
        return "Blue"

def Test(x):
    if x < 0:
        p = f2(2, 4)
    else:
        p = f2(4, 2)

    print(x**2, p)

Test(5)

这个 sn-p 的输出是25 Blue,我通过跟踪变量的进展正确地断言了它。所以我可以按照程序的逻辑。但是有没有一种简单的方法,比如图表或流程图,通常用于评估代码的输出,或者在纸上执行“试运行”?还是人们只是“跟随变量”?

【问题讨论】:

  • if not x &gt; y: => 简化为 if x &lt;= y 已经更好了...
  • @Jean-Francois-Fabre 我很欣赏代码并不像它可能的那么简单,但该代码是作为我可能需要分析的示例而给出的。这个想法是遵循逻辑,我可以做到。我只是想知道是否有遵循变量的“标准”流程图或图解方式。
  • “试运行”和“跟踪变量”有什么区别?
  • @ScottHunter 我想通过该代码的想法是:x == 5 else is True p is assigned the results of f2 with x = 4 and y = 2) f2 return "Blue" then prints x**x and whatever p is, which comes from f2 我只是想知道是否有一种图表方式来展示我的想法。
  • 老实说,图表或流程图可能比代码令人困惑。但我愿意被证明是错的!

标签: python code-analysis diagram


【解决方案1】:

Code trace:

代码跟踪是一种手动模拟代码执行的方法,以便在编译之前手动验证它是否正常工作。它也被称为“代码跟踪”或“桌面检查”。

如何编写跟踪代码

  1. 在顶部绘制一个带有变量名称的表格,在侧面向下编程行,并为输出分配一列

  2. 按照您期望的程序在程序中取得进展

  3. 当变量被赋值或变量的值被操作或改变时,根据变量名和执行行将该值记录在适当的位置。 (这样可以使代码跟踪清晰有序,便于复查)

  4. 继续跟踪程序,直到程序终止为计算机

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-24
    • 1970-01-01
    • 1970-01-01
    • 2011-06-23
    • 1970-01-01
    • 2014-01-23
    • 2020-12-29
    相关资源
    最近更新 更多