繁体   English   中英

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

[英]Can't print out function result in Python

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

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

谢谢,

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

base_num = int(base_num)

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

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

试试下面的代码:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM