Python混乱 - 打印简洁的帧堆栈

时间:2014-02-19 18:13:05

标签: python stack frame

我一直坚持编程练习。我有一个基本的程序编写,练习要求我打印出框架堆栈。我尝试过的所有方法都没有打印出我需要的信息。

这是我的简单程序,

#! /usr/bin/python
import math

def square(x): # returns the sqare of x
    return x*x

def hyp(x, y): # returns the size of vector (x,y)
    return math.sqrt(square(x) + square(y))

def compVectLen(x1,y1, x2,y2): # compares the size of two vectors
    return hyp(x1,y1) >= hyp(x2,y2)

print compVectLen(2,2, 7,7)

这就是练习要求显示堆栈帧的方式,

 |---------------compVectLen---------------­­­­­­­­­­­­­|
 | Locals: x1=2,y1=2, x2=7,y2=7            ­|
 | return hyp(x1,y1) >= hyp(x2,y2)         |
 |­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­-----------------------------------------|
 |­­­­­­­­­­­­­­­---------------hyp(x1, y1)---------------­­­­­­­­­­­­|
 | Locals: x=2,y=2                       ­  |
 | return math.sqrt(square(x) + square(y)) |
 |-----------------------------------------|
 |­­­­­­­­­­­­­­­----------------square(x)----------------­­­­­­­­­­­­­­|
 | Locals: x=2,                          ­  |
 | return 2*2                              |
 |­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­-----------------------------------------|

我尝试过的所有方法都给了我结果,但没有提供太多的信息而不是这种风格。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

中的

def compVectLen(x1,y1, x2,y2): # compares the size of two vectors
return hyp(x1,y1) >= hyp(x2,y2)

你没有给出任何条件。你只需返回hyp(x1,y1) >= hyp(x2,y2),它将始终返回x1,y1值更大..