0

我刚开始用 python 编程,我遇到了一个关于递归的问题。

该程序似乎可以编译,但是没有显示打印输出。

这是程序:

print 'type s word'
s = raw_input()
print 'enter a number'
n = raw_input()

def print_n(s, n):

 if n<=0:
  return 
 print s
 print_n(s, n-1)

我得到的输出是:

xxxx@xxxx-Satellite-L600:~/Desktop$ python 5exp3.py
type s string
hello
add the number of recursions
4
xxxx@xxxx-Satellite-L600:~/Desktop$

出了什么问题,我怎样才能让程序显示输出?

4

2 回答 2

5

您发布的代码定义了该函数print_n,但从不调用它。在函数定义之后放置一个print_n(s, n).

执行此操作后,您会发现由于n当前是字符串(raw_input返回字符串)这一事实而导致的一些错误。用于int(a_string)将字符串转换为整数。像这样调用你的函数将解决问题

print_n(s, int(n))

或者做

n = int(raw_input())

完整代码:

s = raw_input('type a word: ')
n = int(raw_input('enter a number: '))

def print_n(s, n):
    if n <= 0:
        return 
    print s
    print_n(s, n-1)

print_n(s, n)
于 2012-10-31T20:23:22.887 回答
2

尝试n = raw_input()->n = int(raw_input())

于 2012-10-31T20:17:11.320 回答