我正在做一个python的小项目。我正在创建一个机器人,它可以做几件事,比如抛硬币,在谷歌上搜索东西,它是一个ask eight球。我正在做计算器方面的工作。到目前为止,对于calc部分,我已经有了这个。
def calc():
pompt = "Enter problem: "
print "I can only do basic math, no alegbra"
userInput = raw_input(prompt)
if userInput.strip() != 'exit':
calc()我希望能够确定运算符类型。因此,如果userInput是4-3,我希望能够读取'-‘,并知道这是一个减法问题。如果userInput为4+3,我希望能够读取+,并知道这是一个加法问题。
我该怎么做呢?我有一种需要循环的感觉,但我不是特别确定。提前感谢!
发布于 2015-11-20 02:35:16
假设输入是正确的,您可以使用一个简单的正则表达式来拆分这些片段。
>>> import re
>>> pat = re.compile(r'(\d+)([\-+*\\])(\d+)')
>>> pat.search('13+5').groups()
('13', '+', '5')然后,您可以通过.groups()[1]访问操作员并检查每个案例。增加了额外的好处,有了这个正则表达式,你也可以访问每个操作数。
或者,正如Two_bitAlchemist建议的那样,您可以将其作为堆栈进行处理,但这超出了我的理解。
编辑:
确保保存组:
>>> l = pat.search('15-1').groups()
>>> l
('15', '-', '1')
>>> l[1]
'-'https://stackoverflow.com/questions/33811645
复制相似问题