python编程计算器_python编写的计算器

本文介绍了一种通过正则表达式解析并计算包含加、减、乘、除运算的数学表达式的算法。该算法首先使用正则表达式定位乘除运算,并进行相应的计算,之后再处理加减运算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import

re

def

add_count

(

inf

)

:

result

=

0

for

i

in

inf

:

result

+=

i

return

result

def

mul_count

(

enter1

,

enter2

,

symbol

)

:

if

symbol

==

"*"

:

result

=

enter1

*

enter2

else

:

result

=

enter1

/

enter2

return

result

def

multiplication_pass

(

ifo

)

:

while True

:

data

=

re.search

(

"\d+[*,/][+\-]?\d+"

,

ifo

)

if

data

is None

:

break

else

:

data

=

data.group

()

#

为了防止将

36*6

取成

6*6

data0

=

re.findall

(

"^\d+"

,

data

)

data2

=

re.findall

(

"[+\-]?\d+$"

,

data

)

data1

=

re.findall

(

"[\*/]"

,

data

)

count_result

=

mul_count

(

int

(

data0

[

0

]

)

,

int

(

data2

[

0

]

)

,

data1

[

0

]

)

count_result

=

int

(

count_result

)

data

=

symbol_pass

(

data

)

#

为下面的新值替换旧值做准备,如果带

”*“,

则认为

是元符,所以提前一步转换

count_result

=

str

(

count_result

)

ifo

=

re.sub

(

data

,

count_result

,

ifo

)

#

将计算后的值与匹配的替换

return

ifo

def

symbol_pass

(

inf

)

:

if

"*"

in

inf

:

#

为下面的新值替换旧值做准备,如果带

”*“,

则认为是元符,所以提前一

步转换

inf

=

re.sub

(

"\*"

,

"\*"

,

inf

)

if

"("

and

")"

in

inf

:

inf

=

re.sub

(

"\("

,

"\("

,

inf

)

inf

=

re.sub

(

"\)"

,

"\)"

,

inf

)

if

"+"

in

inf

:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值