1

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

2 回答 2

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'

像您当前所做的那样对输入进行切片可能不是一个好主意,因为它极大地限制了允许的格式。例如,如果用户不小心在他的输入之前添加了几个空格怎么办?正则表达式可以很好地处理这种情况。

于 2013-07-14T03:25:17.497 回答
0

我不会为你做作业,但我会指出你的问题的答案(提示:看起来你试图在链接中分割空格而不是逗号,所以相应地调整代码)。

如何在python中读取格式化输入?

于 2013-07-14T03:22:43.127 回答