【发布时间】:2014-11-13 17:02:26
【问题描述】:
我想做如下的事情。这是一个欧几里得算法。
1. 为什么我想调用已经在调用堆栈中的函数时它不起作用?
2. 我怎样才能让它工作?
import sys
def __block_1__():
__block_2__()
def __block_2__():
global b,a
b,a=None,None
__block_3__()
def __block_3__():
global b,a
a=int(raw_input())
__block_4__()
def __block_4__():
global b,a
b=int(raw_input())
__block_5__()
def __block_5__():
global b,a
if a==b:
__block_6__()
else:
__block_7__()
def __block_6__():
global b,a
__block_8__()
def __block_8__():
global b,a
sys.exit(0)
def __block_7__():
global b,a
if a<b:
__block_9__()
else:
__block_10__()
def __block_9__():
global b,a
b=b-a
__block_5__
def __block_10__():
global b,a
a=a-b
__block_5__
__block_1__()
【问题讨论】:
-
在您的第 9 和第 10 块中,您没有调用
__block_5__,因为您忘记了括号。您的代码也很难阅读。你为什么要把所有这些下划线放在一个地方? -
这是一个自动生成的代码。抱歉,我没有注意到这一点。谢谢。