计算器之可计算浮点型,负数和小括号。

Posted alecc1124

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算器之可计算浮点型,负数和小括号。相关的知识,希望对你有一定的参考价值。

接着昨天的整型。整型计算器=??啥都不是。

又来了个新版,与其说是新版,倒不如说是翻版。

直接奉上全部代码,代码边上都有注解

 1 import re
 2 def size(ch):           #定义一个基础的四则运算用于基础计算
 3     ch=re.sub(--,+,ch)#去除两个减号相连
 4     list_num=re.findall((-\d+\.\d+|\d+\.\d+|\d+|-\d+|/|\*),ch) #定义一个对象接收所有运算对象包括浮点
 5     num=0
 6     list_del=[]#基于四则运算的基本原则,不管加减只论乘除,最后结果在列表中相加,减号直接当成数据直接处理
 7     for i in list_num:
 8         if i==/or i==*:#判断有无乘除
 9             if i==*:#有的话顺序执行乘除
10                 list_num[num+1]=str(float(list_num[num-1])*float(list_num[num+1]))
11             elif i==/:
12                 list_num[num+1]=str(float(list_num[num-1])/float(list_num[num+1]))
13             list_del.append(num-1)
14             list_del.append(num)#记录需要删除的前面两个元素
15         num+=1
16     m=0
17     for i in list_del:
18         del list_num[i-m]
19         m+=1#删除时需要自减,不然会重复删除大的数据
20     del list_del #移除空列表
21     sum=0
22     for j in list_num:
23         sum+=float(j)
24     return sum  #返回计算好的值
25 while True:
26     date=input(输入计算数字的字符串:)
27     date=re.sub(\s*,‘‘,date)#去除输入字符串中的空格
28     date=re.sub(\+-|-\+,-,date)#去除+-符号相连
29     if re.search([a-zA-Z],date)!=None:       #匹配字母
30         print(不能输入字母)
31     else:
32         if len(re.findall(\(,date))!=len(re.findall(\),date)): #求两匹配列表长度
33             print(输入的左右括号不一致)
34         else:
35             while True:
36                 if re.search(\(,date)!=None:
37                     date_m=re.search(\([^()]+\),date).group()#正则匹配最内层括号及内层数据
38                     date_x=re.sub(\(|\),‘‘,date_m)#正则匹配去除两边括号
39                     date_n=re.sub(\+,\+,date_m)
40                     date_n=re.sub(\*,\*,date_n)
41                     date_n=re.sub(\(,\(,date_n)
42                     date_n = re.sub(\), \), date_n)#将特殊字符普通化
43                     date=re.sub(date_n,str(size(date_x)),date)#将括号里面的字符计算出来并替代原来字符串
44                 else:
45                     print(size(date))#输出结果
46                     break   #退出循环

emm,没有照片

以上是关于计算器之可计算浮点型,负数和小括号。的主要内容,如果未能解决你的问题,请参考以下文章

百度的科学计算器(简单)

浮点型在计算机内的存储方式

Java连载14-补码简介&浮点型整数

浮点型是啥意思

关于浮点型计算遇到的小问题

请问浮点型数据在计算机是怎么存储的