【发布时间】:2017-08-05 01:40:02
【问题描述】:
我正在编写一个递归函数,它将一个数字作为输入并根据输入返回一个字符串。
这是我的代码:
def sum_power2( n ):
n_int = int( n )
if n_int == 0:
return '1'
else:
return sum_power2( n_int * '(1 + 1)' )
最初的代码是导致错误代码
can't multiply sequence by non-int of type 'str'
当 n 未转换为“int”时,现在我收到了此错误代码。请帮我解决,谢谢!
对于 sum_power2(2) 的输入,输出应为 '((1 + 1)(1 + 1))'
【问题讨论】:
-
int 不会评估您在字符串中写入的内容,它只是尝试将其转换为 int 而不进行任何其他操作。如果您想要做的就像您在那里展示的那样简单,那么使用 eval 函数可能是一种方法,即使通常不建议使用它 - 我不知道为什么,欢迎任何人澄清.
-
sum_power2(3)应该返回什么? -
@PM2Ring 抱歉回复晚了,但我不能确切地告诉你 sum_power2(3) 应该返回什么,因为括号的数量让我感到困惑,但我可以告诉你 sum_power2(4) 返回正好 '((((1+1)+(1+1))+((1+1)+(1+1)))+(((1+1)+(1+1))+(( 1+1)+(1+1))))'
标签: python string recursion error-handling int