我试图做一个程序,可以找到一个确定的积分,但当我运行它时,我得到了一个错误消息,我甚至在搜索了几个网站的答案后,我还是搞不清。这是我的代码:
class Intagrals:
def main(self):
Coefficient = input("Coefficeient: ")
Exponet = input("Exponet: ")
X_start = input("X_Start: ")
X_end = input("X_End: ")
self.equation_parts(Coefficient,Exponet,X_start,X_end)
'''
For main to always run: if __name__ == '__main__':
main()
'''
def equation_parts(self,coefficient,exponet,x_start,x_end): #x_start and x_end are the beggining and end valuse to be set for x in the intagral
exponet += 1 #adds one to exponet for equation to be solved correctly
a_over_n_plus_1_x = coefficient/exponet #creates terms before x
def math_of_intagral(self):
solve_for_x = self.a_over_n_plus_1_x * self.x_end
raise_to_power_end_x = solve_for_x ** self.exponet
if self.x_start != 0:
solve_for_start_x = self.a_over_n_plus_1_x * self.x_start
raise_to_power_start_x = solve_for_start_x ** self.exponet
return raise_to_power_end_x - raise_to_power_start_x
else:
return raise_to_power_end_x
intagrals = Intagrals()
然后在我输入一些代码后显示此错误消息:
^{pr2}$有人能帮忙吗?在
您正在从输入中读取
Exponet
,它始终是一个字符串,当您试图用exponet += 1
递增它时,会出现错误。在您应该修改您的输入以获得一个整数而不是字符串,所以更改这一行
为了这个
^{pr2}$如果你使用
python总是把它当作字符串。把它转换成整数
^{pr2}$在这里,当您输入Exponet:2时,Python认为它是一个字符串,但是当您尝试递增时,由于您输入了string,它无法增加整数值。在
无论何时在python中使用^{} 函数,它都会返回一个字符串。引用文档(emphasis mine):
从文档中可以看到,
input()
函数将输入转换为字符串并返回它。因此,您不能对它执行+= 1
之类的操作,因为它是一个字符串。在要将字符串转换为int,需要使用
int()
函数。因此,代码行将是:这将修复您的问题,因为
int()
函数将字符串转换为int,然后您应该能够对它们执行+=
之类的操作。在旁注:
Exponet
是一个错误的拼写,它是Exponent
(注意额外的n
)。在相关问题 更多 >
编程相关推荐