我想在" /"," *"和" +"所以我写这样的代码
x,op,y=raw_input()
if op=='+':
print int(x)+int(y)
这里如果我输入数字有两位数就会出错我应该输入小于10的数字0到9只做加号或减号等等所以我试着把它们分开来这样
x,op,y=raw_input().split()
if op=='+':
print int(x)+int(y)
把输入设置为20 + 20这里是问题我要删除这个空格之间的数字超过9来使操作我想要输入像20 + 20而不是20 + 20就这样我可以提交在线评委的代码请帮助我
答案 0 :(得分:1)
你真的需要自己解析表达式吗?
怎么样?expression = raw_input()
answer = eval(expression)
print answer
如果默认异常提升不是您想要的行为,您可以使用try:
并捕获异常并做一些合理的事情。 (例如,如果表达式最终为asdf'.8
或其他一些垃圾表达式,您可能需要与默认SyntaxError
不同的行为。)
注意:对我上面建议的方法的批评是它允许评估潜在的恶意字符串,因此首先清理输入可能是有意义的......
答案 1 :(得分:0)
尝试re.split("([+-/*])",raw_input())
可能吗?
my_input = raw_input()
numbers = re.split("([+-/*])", my_input)
if '+' in my_input:
print float(numbers[0]) + float(numbers[1])
或
>>> import re
>>> re.split("\s*([+-/*])\s*",raw_input())
29+ 22
['29', '+', '22']