python完成计算器的程序设计语言_python 简单编写的计算器程序示例

本文展示了如何使用Python编写一个简单的计算器程序,包括检测公式、处理括号运算、优先级运算等核心功能。用户可以输入公式,程序会进行计算并输出结果。
摘要由CSDN通过智能技术生成

python 简单编写的计算器程序示例

发布于 2015-11-07 10:42:46 | 703 次阅读 | 评论: 1 | 来源: PHPERZ

Python编程语言Python 是一种面向对象、解释型计算机程序设计语言,由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年。Python语法简洁而清晰,具有丰富和强大的类库。它常被昵称为胶水语言,它能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。

计算器思路

1、要求输入公式

2、检测公式是否包含字母

3、如果包含字母则需要重新输入,否则进行下一步运算

4、检测是否存在括号,如果存在括号,把括号里面的值进行优先级运算,然后赋值到原位,没有则按照优先级运算,取出最后运算结果

流程图

1446864166_1154.jpg

具体代码如下:

#!/usr/bin/env python

# -*- coding: utf-8 -*-

__author__ = 'weibinf'

import re #导入模块

def kuohao(self): #判断是否存在括号

self = list(self)

if self.count(')') != 0 :

for k,v in enumerate(self):

if v == ")":

x = k

a = self[0:k]

q = a.count("(")

qq = 0

for k,v in enumerate(a):

if v == "(":

z = k

qq +=1

if q == qq :

b = self[z+1:x]

c = str(fushu(b))

del self[z:x+1]

self.insert(z,c)

return kuohao(self)

else:

return fushu(self)

def fushu(self):#取出所有运算符和相应运算数字

temp = ''

expp = []

self = list(self)

i = 0

for k,v in enumerate(self):

if v == '+' or v == '-' or v == '*' or v == '/':

if k == 0 or self[k-1] == "+" or self[k-1] == "-" or self[k-1] == "*" or self[k-1] == "/" :

temp += v

else:

expp.append(int(temp))

expp.append(v)

temp = ''

else:

temp += v

if i == len(self) -1 :

expp.append(int(temp))

i +=1

return zhengshu(expp)

def get_aob(a, o, b):#运算方式

if o == '+':

return a + b

elif o == '-':

return a - b

elif o == '*':

return a * b

elif o == '/':

return a / b

def zhengshu(exp_list):#运算公式

if len(exp_list) == 1:

return exp_list[0]

else:

q = exp_list.count("*")

w = exp_list.count("/")

if q != 0 or w != 0:

for k,v in enumerate(exp_list):

if v == "*" or v == "/":

a = exp_list[k - 1]

o = exp_list[k]

b = exp_list[k+1]

del exp_list[k]

del exp_list[k]

exp_list[k-1] = get_aob(a, o, b)

return zhengshu(exp_list)

else:

for k,v in enumerate(exp_list):

if v == "+" or v == "-":

a = exp_list[k - 1]

o = exp_list[k]

b = exp_list[k+1]

del exp_list[k]

del exp_list[k]

exp_list[k-1] = get_aob(a, o, b)

return zhengshu(exp_list)

# return zhengshu(exp_list)

while True:

calc = raw_input("\033[31m请输入需要计算的公式: \033[0m").replace(' ','').strip() #获取用户输入

a = re.findall('[a-zA-Z]+',calc) #正则匹配是否存在字母

if not len(calc) == 0 : #判断用户输入是否为空

if len(a) == 0: #判断用户输入字符串是否存在字母

print "\033[31m程序运算结果: \033[0m",kuohao(calc)

print '\033[43;1mpython计算器运算结果:\033[0m',eval(calc)

else:

print "\033[31m没有正确输入,运算字符串包含字母。\033[0m"

else:

print "\033[31m没有正确输入,请重新输入。。。\033[0m"

print "\033[31m-\033[0m" * 50

相关阅读:

python 简单编写的计算器程序示例

python实现类似ftp传输文件的网络程序示例

仅用50行代码实现一个Python编写的计算器的教程

Python实现TCP协议下的端口映射功能的脚本程序示例

Python只用40行代码编写的计算器实例

Python创建xml的方法代码示例

Python设计实现的计算器功能完整实例

Python实现完整的事务操作示例

Python实现简单的可逆加密程序示例代码

用Python编写简单的定时器的方法及示例代码

Python设计模式编程中解释器模式的简单程序示例分享

Python基于Socket实现的简单聊天程序示例

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值