2012-04-07 3 views
0

파이썬 2.4에서 차등 계산기 프로그램을 작성하고 있습니다. (오래된 것으로 알고 있습니다. 학교 과제이고 시스템 관리자는 아무것도 업데이트하지 않습니다.) 접두사 표기법 (즉, x = 2 + 2x - 3x^2 * x에 해당하는 input = [+ - * x^2 2x 3x^2 x])에서 사용자 입력을 받아들이고 차이를 계산합니다.파이썬 2.4에서 사용자 입력을 읽고 대기열에 넣기

나는 명령 행 사용자 입력을 읽고 수학 연산자를 대기열에 넣는 방법을 찾으려고 노력하고 있지만 알아낼 수는 없다! 분명히 X = input() 및 x = raw_input() 명령이 작동하지 않으며 Python 2.4에서 사용자 입력을 읽는 방법에 대한 문서가 실제로는 0 개 있습니다. 내 질문은 : 어떻게 내가 파이썬 2.4에서 사용자 입력을 읽고, 그 입력을 대기열에 넣을 수 있습니까? 여기에 내가 노력하고 무엇을 : 작동하지 않는 어떤

1 formula = input("Enter Formula:") 
2 
3 operatorQueue=[] 
4 
5 int i = len(formula) 
6 
7 for x in formula: 
8  if formula[x] == '*', '+', '-', '/': 
9   operatorQueue.append(formula[x]) 
0 
11 print "operator A:", operatorQueue.pop(0) 
12 

어떤 도움이

을 감상 할 수있다

(I 같은 오류가 점점 계속 : "명령을 찾을 수없는 공식", "인쇄 명령을 찾을 수 없습니다"등) 당신이 유닉스 틱 플랫폼의 경우

답변

1

@miku 님이 이미이 문제를 귀하의 초기 문제로 대답했지만, 제가 더 이상 추가 할 것이라고 생각했습니다.

"sh-bang"행은 bash, perl, python 등 언어를 해석하는 데 적절한 프로세스가 사용되도록 명령 행 스크립트에서 필요합니다. 따라서 귀하의 경우에는 다음을 필요로합니다 : /usr/bin/env python

그런 말은 한 번 실행하면 다른 몇 가지 문제에 직면하게됩니다. input 대신 raw_input을 사용해야합니다. 원시 문자열을 돌려주기 때문입니다. input 대부분의 경우 문제를 일으킬 문자열을 평가하고 평가하려고합니다.

파이썬 구문을 좀 더 검토해야 할 수도 있습니다. 파이썬의 할당에서는 변수 유형을 선언 할 필요가 없습니다 : int a = 1. 그것은 동적이고 컴파일러는 당신을 위해 그것을 처리 할 것입니다.

또한 수식의 케이스를 올바르게 처리하기 위해 if elif else 테스트를 수행하는 방법을 검토해야합니다. 그것도 여러 매개 변수를 사용하여 한 줄로 모든 작업을 수행하지 않습니다.

1

, top of your program

#!/usr/bin/env python 

을 넣어. 셸은 파이썬 스크립트를 실행하고 있다는 것을 인식하지 못하는 것 같습니다.

+1

또한 입력을 사용하지 마십시오. 대신 raw_input을 사용하십시오. – jdi

관련 문제