python类计算器开发_开发一个简单的python计算器
详解:
1.str.split(分隔符):将str按分隔符进行切片,最后形成的是列表类型
eg:
str = "Line1-abcdef \nLine2-abc \nLine4-abcd";
print str.split( );
print str.split(' ', 1 );
>>['Line1-abcdef', 'Line2-abc', 'Line4-abcd']
>>['Line1-abcdef', '\nLine2-abc \nLine4-abcd']
2.str.join():连接字符串数组。将字符串、元组、列表中的元素以指定的字符(分隔符)连接生成一个新的字符串。
语法: 'sep'.join(seq)
参数说明
sep:分隔符。可以为空
seq:要连接的元素序列、字符串、元组、字典
上面的语法即:以sep作为分隔符,将seq所有的元素合并成一个新的字符串
返回值:返回一个以分隔符sep连接各个元素后生成的字符串
3.sub():按指定的字符进行替换。
Sub(replacement,string[,count =0 ])
1)返回的字符串是在字符串中用RE最左边不重复的匹配来替换。如果模式没有被发现,字符将没有被改变的返回。
2)可选参数count是模式匹配后替换的最大次数;count必须是非负整数。缺省值是0表示替换所有的匹配。
4.grop():获取分段截获的字符串.
需求:
实现加减乘除及拓号优先级解析
用户输入 1 - 2 * ( (60-30 +(-40/5) * (9-2*5/3 + 7 /3*99/4*2998 +10 * 568/14 )) - (-4*3)/ (16-3*2) )等类似公式后,必须自己解析里面的(),+,-,*,/符号和公式。
#coding:utf-8
import re
def main():
a = ''.join(raw_input('请输入需要计算的算式').split())
while True:
if '(' in a:
ct = re.search(r'\(([^()]+)\)', a)
if ct is not None:
b = ct.groups()[0]
c = count(b)
a = re.sub(r'\(([^()]+)\)', str(c), a, 1)
else:
c = count(a)
print(c)
break
def add_min(a):
'''
计算加减法
:param:
:return:
'''
if '--' in a:
a = a.replace('--', '+')
c = re.findall(r'-?\d+\.?\d*', a)
ls = []
for i in c:
ls.append(float(i))
rest = sum(ls)
return rest
def mul(a):
'''
计算剩数
:param ct:
:return:
'''
b = re.search(r'\d+\.?\d*(\*-?\d+\.?\d*)+', a)
if b is not None:
b = b.group()
rest = 1
c = re.findall(r'-?\d+\.?\d*', b)
ls =[]
for item in c:
ls.append(float(item))
for i1 in range(len(ls)):
rest = rest * ls[i1]
a = re.sub(r'\d+\.?\d*(\*-?\d+\.?\d*)+', str(rest), a, 1)
return a
def div(a):
'''
计算出发
:param a:
:return:
'''
b = re.search(r'\d+\.?\d*(\/-?\d+\.?\d*)+', a)
if b is not None:
b = b.group()
c = re.findall(r'\d+\.?\d*', b)
#print c
ls =[]
for i in c:
ls.append(float(i))
rest = ls[0]
for i1 in range(1,len(ls)):
rest = rest / ls[i1]
a = re.sub(r'\d+\.?\d*(\/-?\d+\.?\d*)+', str(rest), a, 1)
return a
def count(b):
'''
计算结果
:return:
'''
while True:
if '*' in b:
c = b.split('*')
if '/' in c[0]:
b = div(b)
else:
b = mul(b)
elif '/' in b:
b = div(b)
elif '+' or '-' in b:
b = add_min(b)
return b
else:
return b
main()
python类计算器开发_开发一个简单的python计算器相关推荐
- python做的简单gui计算器_Python计算器–使用Tkinter创建一个简单的GUI计算器
在Python计算器教程中,您将学习创建简单的GUI计算器.在这篇文章中,我将向您展示如何使用python中的tkinter模块开发一个简单的计算器.因此,让我们进一步创建一个简单的python计算器 ...
- python框架实例,从零构建一个简单的 Python 框架
为什么你想要自己构建一个 web 框架呢?我想,原因有以下几点: 你有一个新奇的想法,觉得将会取代其他的框架 你想要获得一些名气 你遇到的问题很独特,以至于现有的框架不太合适 你对 web 框架是如何 ...
- 编写python程序 兀 3_帮忙写一个简单的python程序π_π 要求就是图上的那样 其实挺简单的但我就是写不出来。拜托了,...
展开全部 要求提的不是很明确,按照最简单的功能来做了. 只记录姓名和电话号码62616964757a686964616fe78988e69d8331333337626138,没有做号码检验.也没有做保 ...
- python自动生成坐标脚本_用一个简单的python脚本从经纬度坐标获得高程
我从这个question得到了一个python脚本,它将从USGS高程点查询服务中提取.但是,它总是超时,并在一段看似随机的时间之后,在查询完成之前将我踢出.我需要另一种方法来获取给定纬度坐标的高程数 ...
- python简单菜单_创建一个简单的python菜单
修正和评论,它们主要是语法错误.menulist= '''1. Print the list, 2. Add a name to the list, 3. Remove a name from the ...
- python3写一个计算器_Python3 写了一个简单的模拟计算器 总是报错 有知道的大神 帮忙解答下 非常感谢...
先上代码复制粘贴就可以运行了```#_*_coding:utf-8_*_importsysdefadd():returnnum1+num2defsubtract():returnnum1-num2de ...
- python可以用来写什么_对于一个OIer,Python能干些什么?
Part 0 写在前面 Python是一门比较新的编程语言,火的相当迅速. 这一篇文章会比较全面的告诉你:OIer可以用Python来干嘛? 如有不足,请指出. 更好地阅读体验 Part 1 用来出数 ...
- 作业1开发一个简单的python计算器
开发一个简单的python计算器 实现加减乘除及拓号优先级解析 用户输入 1 - 2 * ( (60-30 +(-40/5) * (9-2*5/3 + 7 /3*99/4*2998 +10 * 568 ...
- Windows10 手机应用程序开发 - 3. 做一个简单的计算器界面
2019独角兽企业重金招聘Python工程师标准>>> 目标:完成一个简单的计算器的界面,暂时不做点击处理,主要联系UI布局. 步骤: 1.创建一个空的windows phone 项 ...
- 如何搭建python框架_从零开始:写一个简单的Python框架
原标题:从零开始:写一个简单的Python框架 Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发. 你为什么想搭建一个Web框架?我想有下面几个原因: 有一个 ...
最新文章
- 13.组合查询--SQL
- 邓力、何晓冬深度解读:多模态智能未来的研究热点
- android 反编译apktool工具
- 真正能解决 Windows 7下安装Office 2007—2010出现1402和1406类错误的方法
- 重庆大学光电工程学院 贾旭滨 对 “句柄” “指针” 有下面的描述(AfxGetMainWnd GetSafeHwnd() AfxGetAppName() AfxGetThread)...
- Linux Kernel Makefile Test
- iPhone5帮助了谁?
- OpenGL整体概念
- c++ string substr_用std::string_view替换leveldb的Slice
- 回到顶部 jquery
- [转] Linux应用层的定时器Timer
- 《Oracle 11g数据库基础教程(第2版)》读者勘误
- 【5步解决】打开Word 2016时出现MathType has detected an error in AutoExecCls.Main 以及 文件未找到:MathPage.WILL.亲测完美方案
- 目标检测中的边界框(x,y,w,h形式转换与绘制)
- 检验两个随机序列的beta系数
- rust相框加载图片代码_vue图片加载与显示默认图片实例代码
- 4个方法判断食物的热量高低
- LCD显示屏和OLED显示屏的区别
- 基于Web服务的物联网-WoT(Web of Things)
- Android默认时区大全