在Python中拆分字符串

时间:2013-07-14 03:18:31

标签: python string

所以我在Python中制作一个快速计算器脚本,我需要拆分一个短字符串。程序首先显示一条简短的欢迎消息,然后提示询问他们想要做什么计算,并向他们显示正确的格式。功能是进行计算但不幸的是,我无法让字符串解析位工作。

这是我的代码

print ("--------------------------------------")
print (" ")

print ("Advanced Quick Calculator")
print ("By Max M, licenced under GPLv3")

print (" ")
print ("--------------------------------------")

statement = raw_input ("Please enter your mathematical statement [3 3 plus minus times            divide]: ")

strnum1 = statement[:1]
print ("strnum1 : " + strnum1)
#num1 = int (strnum1)

strnum2 = statement[:4]
print ("strnum2 : " + strnum2)
#num2 = int (strnum2)

operation = statement[5:11]
print ("operation : " + operation)
#if operation == "+":
#     ans = num1 + num2

#if operation == "-":
#   ans = num1 - num2

#if operation == "*":
#   ans = num1 * num2

#if operation == "/":
#   ans = num1 / num2

#print ("The answer is : "), ans

2 个答案:

答案 0 :(得分:1)

这看起来像正则表达式的工作:

>>> import re
>>> match = re.search(r'(\d+)\s*([+*/-])\s*(\d+)', '42 + 7') 
>>> match.group(1)  # <-- num1
'42'
>>> match.group(2)  # <-- operation
'+'
>>> match.group(3)  # <-- num2
'7'

像你当前那样切换输入可能不是一个好主意,因为它极大地限制了允许的格式。例如,如果用户意外地在他的输入之前有几个空格怎么办?正则表达式可以很好地处理这种情况。

答案 1 :(得分:0)

我不打算为你做功课,但我会指出你问题的答案(提示:看起来你试图在空格上分开而不是像链接中的逗号一样,所以调整相应的代码)。

How to read formatted input in python?