zoukankan      html  css  js  c++  java
  • Python简易项目 加减计算器的实现

    Python Calculator 1.0

    支持功能:add、minus

    输入表达式不含括号,允许不加'='

    非常简单的一个小计算器,还缺少很多功能,目的是为了练练手。

    日后会对其进行更新。

    源码

    Github:calculator1.0

    #!/usr/bin/env python3
    
    """
    	Name: Python Calculator 1.0
    
    	Support: add minus
    
    	Created by Chen. 2017/2/8
    """
    
    def calculator(stack):
    	s1, s2 = [], []
    	
    	# handle the stack
    	for i in stack:
    		if i == '+' or i == '-' :
    			s1.append(i)
    		else :
    			s2.append(int(i))
    	
    	s3, s4 = [], []
    
    	# turn the list
    	while len(s1) > 0 :
    		s3.append(s1[-1])
    		s1.pop()
    	while len(s2) > 0 :
    		s4.append(s2[-1])
    		s2.pop()
    
    	# calculate the result
    	while len(s3) > 0 :
    		cal, mid = s3[-1], 0
    		
    		if cal == '+' :
    			mid = s4[-1]+s4[-2]
    			s4.pop()
    			s4.pop()
    			s4.append(mid)
    		
    		elif cal == '-' :
    			mid = s4[-1]-s4[-2]
    			s4.pop()
    			s4.pop()
    			s4.append(mid)
    
    		s3.pop()
    	
    	return s4[-1]
    
    def main():
    	print('Python Calculator 1.0')
    	calstr = input()
    	
    	mid, s1 = '', []
    	for i in range(len(calstr)) :
    		if (calstr[i] == '+' or calstr[i] == '-' or calstr[i] == '=') and i != 0:
    			if mid != '' :
    				s1.append(mid)
    				mid = ''
    			s1.append(calstr[i])
    		else :
    			mid = mid + calstr[i]
    	if mid != '' :
    		s1.append(mid)
    
    	if s1[-1] == '=' : # delete '='
    		s1.pop() 
    
    	res = calculator(s1)
    	print(res)
    
    
    if __name__ == '__main__':
    	main()
    

    2017/2/8

  • 相关阅读:
    Errors
    fix eclipse gc overhead limit exceeded in mac
    Cobub Razor
    Mac commands
    git vs svn
    SourceTree
    生成静态页技术
    URL重写技术总结
    回味手写三层-增删改查
    生成 (web): 找不到目标 .NET Framework 版本的引用程序集;请确保已安装这些程序集或选择有效的目标版本。
  • 原文地址:https://www.cnblogs.com/qq952693358/p/6378518.html
Copyright © 2011-2022 走看看