当前位置:首页>综合>正文

python什么样制作计算器 求用Python写一个简单的计算器!

2023-05-20 00:51:22 互联网 未知 综合

 python什么样制作计算器 求用Python写一个简单的计算器!

python什么样制作计算器



你的问题过于简单了。这样吧,我给你看看一个我的逆波兰运算符栈的范例代码,你大概就知道了。至于为什么是逆波兰栈,因为一般来说计算器的最终执行方式,就和程序语言编译/解释一样,这是比较推荐的方式,因为它能够体现运算优先关系,又比树形存储简单。
class Calculator:
    def operator(self, token):
        if token ==  :
            return lambda x,y:y x
        elif token == -:
            return lambda x,y:y-x
        elif token == *:
            return lambda x,y:y*x
        elif token == /:
            return lambda x,y:int(y/x)
        else:
            return None
    # @param tokens, a list of string
    # @return an integer
    def evalRPN(self, tokens):
        stack = []
        for token in tokens:
            op = self.operator(token)
            if op != None:
                stack.append(op(stack.pop(), stack.pop()))
            else:
                #assume all non-op are int
                stack.append(int(token))
            print(stack)
        if len(stack) != 1:
            raise ValueError("Unexpected stack length:%d" % len(stack))
        return stack.pop()

if __name__ == __main__:
    x = Calculator()
    print(x.evalRPN(["2", "1", " ", "3", "*"]))
    print(x.evalRPN(["4", "13", "5", "/", " "]))        
    print(x.evalRPN(["10","6","9","3"," ","-11","*","/","*","17"," ","5"," "]))

求用Python写一个简单的计算器!

def cal():
numA = float(raw_input(Please enter a number: ))
op = raw_input(Please enter a operator: )
numB = float(raw_input(Please enter another number: ))
if op == :
print "result: ",numA numB
elif op == -:
print "result: ",numA-numB
elif op == *:
print "result: ",numA*numB
elif op == /:
print "result: ",numA/numB
else:
print "Unknown operator ",op
cal()

python如何做简易计算器在cmd运行

python编码启动cmd批处理文件(.bat文件),用subprocess方法可以将相应的cmd输出获取到,代码如下:
#import os
#os.system("c:\sam.bat")

import subprocess
cmd = cmd.exe c:\sam.bat
p = subprocess.Popen("cmd.exe /c" "c:\sam.bat abc", stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
curline = p.stdout.readline()
while(curline != b):
print(curline)
curline = p.stdout.readline()

p.wait()
print(p.returncode)
sam.bat批处理文件代码:
echo Hello world!
echo show %1%

求 用python编计算器 原代码

#!/usr/bin/python
#~替换成TAB或空格
if __name__=="__main__":
~line = None
~while line != exit:
~~line = raw_input(>)
~~~try:
~~~~print eval(line)
~~~except:
~~~~print Error