首先,赋值是让函数“compute”求解它并返回值。如果给定的sting不是有效的公式,则返回“None”
def compute(side):
val=int(side[0])
lastop=0
for i in range(1,len(side)):
if side[i].isdigit():
if lastop=='+':
val+=int(side[i])
elif lastop=='-':
val-=int(side[i])
elif lastop=='x':
val*=int(side[i])
elif lastop=='/':
val/=int(side[i])
else:
lastop=side[i]
return val
因此,此时将返回值。但是,如果函数是为(“22-11x4”)运行的,它将给出0而不是44。我把它们变成了整数,为什么它们仍然给我错误的值?
def evaluate():
val=int(side[0])
lastop=0
for i in range(1,len(side)):
if side[i].true():
print('Congrats')
elif side[i].false():
print('Try again')
当它到达这个求值函数时,它给出了一个错误“invalid literal for int(),以10为基数:'+'”,我不太清楚这意味着什么以及如何解决。
def solve():
pass
这个函数“solve”是在我修复了之前函数中的问题之后,我稍后要用到的。你知道吗
def main():
print("22-11x4 =", compute("22-11x4"),"(expect 44)")
print("+11x4 =", compute("+11x4"),"(expect None)")
print("22-11x4 ?= 7x5+9", evaluate("22-11x4=7x5+9"),"(expect True)")
print("solving 288/24x6=18x13x8 :", solve("288/24x6=18x13x8"))
main()
您编写的
compute
函数按数字执行操作,而且您忘记执行for
完成后的最后一个操作:这就是为什么你从函数中得到这个返回
下面是正确的函数
同样在测试字符串中:
你为什么不指望呢?应该是44?你知道吗
这个功能还可以改进,但我没有时间去做。不管怎样,它是有效的。你知道吗
相关问题 更多 >
编程相关推荐