파 이 썬 으로 역 폴란드 표현 식 계산 하기
1302 단어 Python
제목 내용 은 다음 과 같다.
Your job is to create a calculator which evaluates expressions inReverse Polish notation.
For example expression 5 1 2 + 4 * + 3 - (which is equivalent to 5 + ((1 + 2) * 4) - 3 in normal notation) should evaluate to 14.
Note that for simplicity you may assume that there are always spaces between numbers and operations, e.g. 1 3 + expression is valid, but 1 3+ isn't.
Empty expression should evaluate to 0.
Valid operations are +, -, *, /.
You may assume that there won't be exceptional situations (like stack underflow or division by zero).
예 를 들 어'1,3-'문자열 을 드 리 면 결 과 를 되 돌려 주 셔 야 합 니 다.-2.
역 폴란드 식 의 계산 은 스 택 을 통 해 처리 하 는 데 자주 사용 된다.
다음은 제 코드 입 니 다.
def calc(expr):
token=[]
for i in expr.split():
if i in ['+','-','*','/']:
first, second=token.pop(), token.pop()
token.append(str(eval(second+i+first)))
else:
token.append(i)
return eval(token.pop()) if token else 0
코드 의 안전성 을 고려 할 때,여기 에는 사실 몇 가지 더 협의 해 야 할 부분 이 있다.주로 eval()이라는 함수 의 사용 으로 안전 문 제 를 일 으 킬 수 있 습 니 다.구체 적 인 해결 방법 은 import operator,operator.add 등 방법 으로 상기 eval(y+i+x)의 표현 을 대체 할 수 있 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.