gpt4 book ai didi

python - 将字符串作为输入,像计算器一样对其进行计算并返回整数答案的函数

转载 作者:太空宇宙 更新时间:2023-11-03 14:31:02 26 4
gpt4 key购买 nike

我正在尝试实现一个函数,该函数接受字符串输入,例如“1+2-3”或“-2+2”,像计算器一样对其进行评估并返回整数答案。

在该示例中,两个输入都将返回 0。我们可以假设只有 + 或 - 运算符(没有倍数/除法/或任何其他运算符),并且输入格式良好,因此我们不需要进行任何验证(即它始终是交替的运算符/操作数) .

我需要它,而不需要使用现有的 Python 函数,如 calc() 等。相反,我尝试开发一个简单的代码来实际执行此操作。

我的代码是

d =  {}
sum = 0
for index, value in enumerate(s):
   if value.isdigit():
           pass
   else:
           if not value.isdigit():
                   d[index] = int(s[index]+s[index+1])


for i in d.values():
   sum += i

但它仅适用于“-2+2”的情况。

我怎样才能使它也适用于“1+2-3”的情况。

最佳答案

您在代码中的想法是正确的,但试图通过引用字符串中的下一个字符来有效地添加到总和这将您限制为以下形式的字符串:

.a.b

其中 .+-

您想要做的是迭代字符串中的每个字符,并且该字符是否是加号 > 或 minus (即不是 digit),然后将乘法变量分别更改为 1-1。然后,每当您达到要加或减的实际数字时,只需将该数字乘以乘法值即可。

下面是上述逻辑的代码:

s = "1+2-3"
m = 1
sm = 0
for c in s:
is c.isdigit():
sm += m * int(c)
else:
m = -1 if c == "-" else 1

其输出sm为:

0
<小时/>

请记住,这只在字符串操作数字之间交替时才有效。

关于python - 将字符串作为输入,像计算器一样对其进行计算并返回整数答案的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47290307/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com