我是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
有人可以解释为什么会这样吗?
谢谢
答案 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))