파이썬 : 3/4/5 또는 32432/23423/2354325 나 3425 * 343/254235와 같은 표현식을 사용하는 프로그램 (클래스 할당)을 작업 중입니다. 43252 + 34254-2435, 등 (모든 연산자는 +, -, /, *). 표현을 해결할 것입니다.파이썬 : 수학 표현 파싱
I CANT 사용 EVAL! 나는 더 높은 수준의 코드를 사용하지 못할
은, 내가 문자열을 분할 아래의 웹 사이트에서 문자열 조종 장치를 사용하여, 기껏로 제한하고있다.
http://docs.python.org/2/library/stdtypes.html#typesseq
내 방법이 연산자 및 슬라이싱 함수를 사용해서 사용자가 입력 표현을보고하고 운영자를 찾는 find 함수를 사용한다 (예를 들면 S [0 : X]). . 내가 가지고있는 것은 아래에 있으며 불행하게도 작동하지 않는다 : * print 문은 디버깅 목적으로 만 존재한다. EDIT : 프로그램을 실행하고 표현식을 입력 할 때 x가 정의되지 않은 이유는 무엇입니까?
z= (input("expression:")).strip()
def finding(z):
if "/" in z:
x=z.find("/")
print("hi1")
elif "*" in z:
x=z.find("*")
print("hi2")
elif "+" in z:
x=z.find("+")
print("hi3")
elif "-" in z:
x=z.find("-")
print("hi4")
else:
print("error, not math expression")
return x
def Parsing(z,x):
x= finding(z)
qw=z.s[0:x]
print (qw)
# take the x-value from function finding(z) and use it to split
finding(z)
Parsing(z,x)
당신이 요청하지 않았나요 [비슷한 질문] (http://stackoverflow.com/questions/13055884/parsing-math-expression-in-python-and-solving-to-find-an-answer)? 나는이 정확한 질문에 어제 대답했다. 이틀 전에 누군가 다른 사람도 했어. 아무도 당신을 위해 숙제를하지 않을 것입니다. – Blender
@Blender 이것은 새로운 질문에 왜 그것이 노력하고 있는지 완전히 다른 방법입니다. 당신은 언제나 저에게 -1을주기 전에 이미 묻은 것을보기 위해 저의 프로필과 질문을 볼 수 있습니다. 내가 얻고있는 답변이 궤도에서 멀어지고 있기 때문에 나는 새로운 질문을 던졌다.나는 매우 구체적인 것을 요구하고 그것에 답을 주면 숙제를 마칠 수 없으므로 나는 누군가가 내 숙제를 할 수 있도록 같은 질문을 다시하지 않았다. ... – SeesSound
[이 답변] (http://stackoverflow.com/a/13056137/464744)? – Blender