所以我正在用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/

10-09 07:35
查看更多