【问题标题】:Python Recursive PowerPython 递归能力
【发布时间】:2015-06-29 19:37:32
【问题描述】:
def main():

    base = input('Please Enter An Integer for the Base: ')
    exponent = input ('Please Enter An Exponent: ')

def power (base, exponent):
    if exponent == 0:
        return base
    else :
        return base * power(base, exponent - 1)


main()

采样: 输入一个整数作为底数:2 输入一个整数作为指数:5 2 的 5 次方等于 32

【问题讨论】:

  • 那么你的问题是什么?
  • 我想知道如何打印出“2 的 5 次方等于 32”的答案
  • 您的power 函数中存在错误。想想如果你有exponent == 0base == 5,你的函数会返回什么。现在想想函数应该返回什么。

标签: math recursion exponent


【解决方案1】:

如果这是 Python 3,请使用如下字符串格式:

result = power(base, exponent)
print("{} to the power of {} equals {}".format(base, exponent, result))

在 Python 2 中,

print "%d to the power of %d equals %d" % (base, exponent, result)

【讨论】:

  • def main(): base = input(' Please Enter An Integer for the Base: ') exponent = input (' Please Enter An Exponent: ') def power (base, exponent): if exponent == 1: 返回底数 else : 返回底数 * power(base, exponent - 1) result = power(base, exponent) print("{} {} 的幂等于 {}".format(base, exponent, result )) main() .... 当我尝试运行程序时它没有显示结果
  • 您的代码顺序错误。 print 语句和结果的计算应该是 main 函数的一部分,它位于 power 函数的定义之前。
  • 我已将结果添加到主函数中,并且可以输入整数和指数,但是随着程序运行,我不断收到此错误“TypeError:不支持的操作数类型(s ) for -: 'str' 和 'int'
  • 这可能是input() 方法返回的类型有问题。您必须学会诊断和修复自己的错误消息!
【解决方案2】:

这对我来说有点用,但如果我使用 10 作为底数和 2 作为指数,我会得到 1000。现在试图弄清楚为什么数学是错误的。

def main():

   base = float(input('Please Enter An Integer for the Base: '))
   exponent = float(input('Please Enter An Exponent: '))
   result = power(base, exponent)
   print("{} to the power of {} equals {}".format(base, exponent, result))

def power (base, exponent):

   if exponent == 0:
      return base
   else :
      return base * power(base, exponent - 1)
main()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-19
    • 1970-01-01
    • 1970-01-01
    • 2015-06-19
    • 2022-01-04
    • 2022-12-15
    相关资源
    最近更新 更多