如何在python 2.7中获得输入的一部分

时间:2015-11-19 18:28:56

标签: python

我正在使用python中的一个小项目。我正在创建一个机器人,它可以做几件事,比如翻硬币,搜索谷歌上的东西,它是一个问八个球。我正在研究计算器位。到目前为止,对于计算部分,我有这个。

  "commands": {
    "web": "Microsoft.AspNet.Server.Kestrel --server.urls=http://172.16.1.7:5000",
    "ef": "EntityFramework.Commands"
  },

我希望能够确定运营商类型。因此,如果userInput是4-3,我希望能够阅读' - '并且知道它是一个减法问题。如果userInput是4 + 3,我希望能够读取+并知道它的附加问题。

我该怎么做?我有一种感觉,我需要循环,但我不是特别肯定。提前谢谢!

1 个答案:

答案 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]
'-'