无法在Python中打印出函数结果

时间:2019-11-26 05:19:14

标签: python string function integer

我是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

有人可以解释为什么会这样吗?

谢谢

3 个答案:

答案 0 :(得分:0)

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

base_num = int(base_num)

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

答案 1 :(得分:0)

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

尝试以下代码:

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

答案 2 :(得分:0)

您犯了两个错误。 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))