計算を間違える逆ポーランド記法の計算機を作りました。
chmod +x r.py
、./r.py 10 20 \*
としてください。
*/?
にはシェルエスケープ\
が必要です。
Usage: ./r.py <スペースで区切った逆ポーランド記法の式>
エラーチェックはしてません。
r.py
#!/usr/bin/python3
import sys
import random
stack=[]
s=sys.argv[1:]
while(s):
e=s[0]
if (e=='+'):
stack.append(stack.pop()+stack.pop())
elif (e=='-'):
a=stack.pop()
stack.append(stack.pop()-a)
elif (e=='*'):
stack.append(stack.pop()*stack.pop())
elif (e=='/'):
a=stack.pop()
stack.append(stack.pop()/a)
elif (e=='?'):
v=stack.pop()
stack.append(v)
print(v+random.randint(1,7))
else:
stack.append(float(e))
s=s[1:]
print(stack.pop()+random.randint(1,7))