【问题标题】:Can't print out function result in Python无法在 Python 中打印出函数结果
【发布时间】:2019-11-26 05:19:14
【问题描述】:

我是 Python 新手,在浏览了一个使用函数将数字提升到特定指数的示例之后,我尝试将其作为数字的用户,而不是仅仅将它们输入到代码中。

以下是我所拥有的:

def raise_to_power(base_num, pow_num):
    int(base_num)
    int(pow_num)
    result = 1
    for index in range(pow_num):
        result = result * base_num2

    return result


base_num = input("What number would you 
like to exponentially raise?: ")

pow_num = input("To what power?: ")

print(raise_to_power(base_num, pow_num))`

当我尝试运行它时,我得到了下面列出的错误:

Traceback (most recent call last):
File "C:/Users/PycharmProjects/Exponent 
Function.py", line 17, in <module>
print(raise_to_power(base_num, pow_num))
File "C:/Users/PycharmProjects/Exponent 
Function.py", line 7, in raise_to_power
for index in range(pow_num):
TypeError: 'str' object cannot be 
interpreted as an integer

有人可以解释为什么会发生这种情况吗?

谢谢,

【问题讨论】:

  • 将字符串输入转换为整数。
  • 提示:在你发布问题之前,谷歌错误信息,这已经被问和回答了 100 次。
  • pow_num = int(pow_num)

标签: python string function integer


【解决方案1】:

int(base_num) 不会更改参数。要将base_num 转换为字符串并保存到相同的变量中,请使用:

base_num = int(base_num)

这个代码示例显示了设计的一些弱点:为什么base_num 最初应该是字符串类型。尝试使用更有意义的名称来调用变量,以避免这种混淆。

【讨论】:

    【解决方案2】:

    您将输入字符串转换为整数的方式不正确。

    试试下面的代码:

    def raise_to_power(base_num, pow_num):  
        result = 1
        for index in range(int(pow_num)):
            result = result * int(base_num)
        return result
    

    【讨论】:

      【解决方案3】:

      你犯了两个错误。 1- int(base_num) 不是类型转换的好方法。 2- 在方法中,您传递的是 base_num,但在 for 循环中,您使用的是 base_num2。 这是正确的代码。

      def raise_to_power(base_num, pow_num):
          result=1
          for index in range(int(pow_num)):
              result = result * int(base_num)
          return result
      base_num = input("What number would you")
      pow_num = input("To what power?: ")
      print(raise_to_power(base_num, pow_num))
      

      【讨论】:

        【解决方案4】:
        def raise_to_power(base_num, power_num):
        
            result = 1
        
            for index in range(power_num):
                result = result * base_num
        
            return result 
                  
        base_num = input("enter a base number you want : ")
        power_num = input("enter the power of base number : ")
        
        print(str(raise_to_power(int(base_num), int(power_num))))
        

        【讨论】:

        • 请在您的回答中考虑 edit,以解释它如何解决 OPs 问题以及它如何改进以前的答案。
        • 我是这个社区的新手,谢谢@DavidBuck 指导我
        猜你喜欢
        • 2018-07-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-08-01
        • 2015-09-26
        • 2016-03-08
        • 2013-04-13
        • 2022-11-30
        相关资源
        最近更新 更多