我正在使用python中的一个小项目。我正在创建一个机器人,它可以做几件事,比如翻硬币,搜索谷歌上的东西,它是一个问八个球。我正在研究计算器位。到目前为止,对于计算部分,我有这个。
"commands": {
"web": "Microsoft.AspNet.Server.Kestrel --server.urls=http://172.16.1.7:5000",
"ef": "EntityFramework.Commands"
},
我希望能够确定运营商类型。因此,如果userInput是4-3,我希望能够阅读' - '并且知道它是一个减法问题。如果userInput是4 + 3,我希望能够读取+并知道它的附加问题。
我该怎么做?我有一种感觉,我需要循环,但我不是特别肯定。提前谢谢!
答案 0 :(得分:2)
假设输入正确,您可以使用简单的正则表达式来分割碎片。
>>> 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]
'-'