如何像在 C++ 中那样使用 python 制作计算器
how to make a calculator with python like in c++
我想为“/”、“*”和“+”制作一个计算器,所以我这样写我的代码
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 这是问题所在在他们身上所以我可以提交在线法官的代码请帮助我
试试 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']
您真的需要自己解析表达式吗?怎么样
expression = raw_input()
answer = eval(expression)
print answer
?
您可以使用 try:
并捕获异常并在默认异常引发不是您想要的行为时做一些明智的事情。 (例如,如果表达式最终成为 asdf'.8
或其他垃圾表达式,您可能需要与默认 SyntaxError
不同的行为。)
注意:对我上面建议的方法的批评是它允许评估潜在的恶意字符串,因此首先清理您的输入可能有意义...
我想为“/”、“*”和“+”制作一个计算器,所以我这样写我的代码
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 这是问题所在在他们身上所以我可以提交在线法官的代码请帮助我
试试 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']
您真的需要自己解析表达式吗?怎么样
expression = raw_input()
answer = eval(expression)
print answer
?
您可以使用 try:
并捕获异常并在默认异常引发不是您想要的行为时做一些明智的事情。 (例如,如果表达式最终成为 asdf'.8
或其他垃圾表达式,您可能需要与默认 SyntaxError
不同的行为。)
注意:对我上面建议的方法的批评是它允许评估潜在的恶意字符串,因此首先清理您的输入可能有意义...