首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在python2.7中如何获取输入的一部分

在python2.7中如何获取输入的一部分
EN

Stack Overflow用户
提问于 2015-11-20 02:28:56
回答 1查看 44关注 0票数 0

我正在做一个python的小项目。我正在创建一个机器人,它可以做几件事,比如抛硬币,在谷歌上搜索东西,它是一个ask eight球。我正在做计算器方面的工作。到目前为止,对于calc部分,我已经有了这个。

代码语言:javascript
运行
复制
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,我希望能够读取+,并知道这是一个加法问题。

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

EN

回答 1

Stack Overflow用户

发布于 2015-11-20 02:35:16

假设输入是正确的,您可以使用一个简单的正则表达式来拆分这些片段。

代码语言:javascript
运行
复制
>>> import re
>>> pat = re.compile(r'(\d+)([\-+*\\])(\d+)')
>>> pat.search('13+5').groups()
('13', '+', '5')

然后,您可以通过.groups()[1]访问操作员并检查每个案例。增加了额外的好处,有了这个正则表达式,你也可以访问每个操作数。

或者,正如Two_bitAlchemist建议的那样,您可以将其作为堆栈进行处理,但这超出了我的理解。

编辑:

确保保存组:

代码语言:javascript
运行
复制
>>> l = pat.search('15-1').groups()
>>> l
('15', '-', '1')
>>> l[1]
'-'
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33811645

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档