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