먼저 주어진 함수는 "계산"함수가이를 해결하고 값을 반환하도록 지정되었습니다. 주어진 스팅이 유효한 방정식이 아니면 "None"을 반환합니다.int()가 10 진수 인 '+'에 대한 파이썬의 무효 리터럴
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")에 대해 실행되면 44가 아니라 0이됩니다. 정수로 변환했는데 왜 여전히 저에게 잘못된 값을줍니다.
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')
그리고이 평가 기능에 도달 할 때, 그것은 "기본 10 INT에 대한 잘못된 문자() : '+'"의 오류를주고 내가 어떻게이 무엇을 의미하는지 너무 확실하지 오전 풀다.
def solve():
pass
이 기능을 "해결"나는 내가 전에 기능에 문제를 해결 한 후 나중에 가져 가고 있었다.
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()
저는 파이썬 애프터 서비스에 처음이에요 ... – Eric