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

Python简易项目 加减计算器的实现的更多相关文章

  1. 用python进行月份加减的函数

    import math def add_month(datamonth, num): """ 月份加减函数,返回字符串类型 :param datamonth: 时间(20 ...

  2. Python日期的加减等操作

    1. 日期输出格式化 所有日期.时间的api都在datetime模块内. 1. datetime => string now = datetime.datetime.now() now.strf ...

  3. python获取日期加减之后的日期

    python语言中的datetime模块可以利用其中的方法获取不同的日期,比如获取当前日期.明天.昨天.上个月.下个月和明年.下面利用几个实例说明这些日期的获取方法,操作如下:     第一步,利用d ...

  4. 【python】详解time模块功能asctime、localtime、mktime、sleep、strptime、strftime、time等函数以及时间的加减运算

    在Python中,与时间处理相关的模块有:time.datetime以及calendar.学会计算时间,对程序的调优非常重要,可以在程序中狂打时间戳,来具体判断程序中哪一块耗时最多,从而找到程序调优的 ...

  5. python 简易计算器

    import tkinter import tkinter.messagebox import math ''' 波波版计算器可实现的功能 1.能进行简单的加减惩处 2.能进行开根号操作 3.能进行后 ...

  6. python 简易计算器(只能计算加减乘除和括号)

    import re # 格式化字符串函数(消除一些错误的格式) def format_string(string): # 一系列的替换语句 string = string.replace(" ...

  7. python datetime库使用和时间加减计算

    datetime库使用 一.操作当前时间 1.获取当前时间 >>> import datetime >>> print datetime.datetime.now( ...

  8. python简易计算器

    import re """ 过程:(最内部的括号->先乘除,替换->整理表达式->加减)->替换 """ def m ...

  9. Python开发之【简单计算器】

    开发一个简单的python计算器 1.实现加减乘除及括号优先级解析 2.用户输入 1 - 2 * ( (60-30 +(-40/5) * (9-2*5/3 + 7 /3*99/4*2998 +10 * ...

随机推荐

  1. VS调用python方法

    1.  安装python3.7 2.  Vs2010中配置python: 3.添加头文件:#include <Python.h> 4.问题:error LNK2001: 无法解析的外部符号 ...

  2. #define宏定义

    1 #define的概念  #define命令是C语言中的一个宏定义命令,它用来将一个标识符定义为一个字符串,该标识符被称为宏名,被定义的字符串称为替换文本.  该命令有两种格式:一种是简单的宏定义, ...

  3. 关闭linux的防火墙

    有两道防火墙 第一道 iptables -L iptables -F systemctl disable firewalld 第二道 [root@python3 ~]# getenforce Enfo ...

  4. Mysql中字段类型之时间戳大坑

         一 .环境说明: 在目前项目中,有这样的一张表,用来记录会议的相关信息,例如:会议的内容.会议的参会人员.会议的地点.会议的状态(会议是否已结束.会议是否被撤销).会议的开始时间以及该条信息 ...

  5. Python之OS模块函数

    函数列表: 1 os.sep:取代操作系统特定的路径分隔符 os.name:指示你正在使用的工作平台.比如对于Windows,它是'nt',而对于Linux/Unix用户,它是'posix'. os. ...

  6. JavaScript Big-Int

    这个库是为JavaScript中的大整数操作,如加,减,乘,除,mod,比较等. 这个库的原理是模拟笔和纸的操作,你可以操作整数,大到你的RAM允许. 例 var bigInt = require(' ...

  7. 升级wampserver3.0的PHP版本到7.1

    windows系统下,目前wampserver的最高版本为3.0.6,其中的PHP最高版本为7.0.10,博主想要安装laravel5.6最新版本,却看到需要PHP版本>=7.1.3,无奈之下, ...

  8. 如何将apk安装在模拟器上面

    1.运行SDK Manager,选择模拟器,并运行模拟器 2.将需要安装的apk文件复制到platform-tools目录下(默认在:C:\Program Files\Android\android- ...

  9. oracle的统计信息的查看与收集

    查看某个表的统计信息 SQL> alter session set NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS'; Session altered. SQL&g ...

  10. memento模式

    参考资料 • 维基百科:https://en.wikipedia.org/wiki/Memento_pattern • 百度百科:http://baike.baidu.com/link?url=ZQZ ...