1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > python实现简单计算器加减乘除功能_Python3实现简单加减乘除运算的计算器

python实现简单计算器加减乘除功能_Python3实现简单加减乘除运算的计算器

时间:2022-06-22 19:59:11

相关推荐

python实现简单计算器加减乘除功能_Python3实现简单加减乘除运算的计算器

这是用Python3编写的一个简易的计算器,只有加减乘除,没有括号。

个人思路:将公式以字符串形式传入:

1、去掉其中的空格,生成新的字符串进行操作;

2、提取其中的数字和运算符号分别生产新的列表;

3、先寻找运算符号列表里的乘除运算符,对数字对应位置的两个相邻数进行运算,再进行加减运算。

'''用函数编写计算器,要求可以计算多个值的加减乘除

多个值的加减乘除'''

def caculator():

formula00 = input('请输入公式')

formula01 = '' #去除其中的空格

for i in formula00:

if i.isspace():

pass

else:

formula01 += i

num01 = ''

num_list = [] #用来存储单独数字

symbol = [] #用来存储运算符号

count = 0 #计数器,判断是否连续出现运算符

for i in str(formula01):

if count > 1:

print('输入有误,请重新输入')

break

elif i.isdigit():

num01 += i #判断单个字符,对于连续的数字字符,将会组合在一起,即'789' 变为整数型

count = 0 #出现数字符号,计数器重置为0

elif i == '*' or i == '/' or i == '+' or i == '-':

num_list.append(int(num01))

num01 = ''

symbol.append(i)

count += 1 #出现运算符,计数器加1,连续出现,count>1,第一个if条件生效

else:

print('输入有误,请重新输入')

break

num_list.append(int(num01)) #在公式最后不会出现运算符,所以需要将最后一个存入列表

#对num_list和symbol两个列表进行处理,进行运算

while symbol:

while "*" in symbol or "/" in symbol: #先寻找*和/运算

for i in symbol:

if i == "*":

#找到运算符对应位置的symbol列表下标,对num_list里面对应位置的两个相邻数据进行运算,并用结果覆盖原数据

#同时删除symbol列表里的运算符

j = symbol.index("*")

result = num_list[j] * num_list[j+1]

del num_list[j:j+2]

num_list.insert(j,result)

symbol.remove("*")

break

if i == "/":

j = symbol.index("/")

result = num_list[j] / num_list[j + 1]

del num_list[j:j + 2]

num_list.insert(j, result)

symbol.remove("/")

break

while "+" in symbol or "-" in symbol:

for i in symbol:

if i == "+":

j = symbol.index("+")

result = num_list[j] + num_list[j+1]

del num_list[j:j + 2]

num_list.insert(j, result)

symbol.remove("+")

break

if i == "-":

j = symbol.index("-")

result = num_list[j] - num_list[j + 1]

del num_list[j:j + 2]

num_list.insert(j, result)

symbol.remove("-")

break

return num_list

print(caculator())

初学者用的用的基础的知识,不足之处请指正,谢谢!!(后续会更新)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。