所以我正在用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
最佳答案
这看起来像正则表达式的工作:
>>> 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'
像您当前所做的那样对输入进行切片可能不是一个好主意,因为它极大地限制了允许的格式。例如,如果用户不小心在输入之前加上了两个空格怎么办?正则表达式可以很好地处理这种情况。
关于python - 在Python中分解字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17636214/