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
: