如何让用户输入值并接收答案,同时保持" x + xy + y"的值。在一条线上?
print("Calculator")
x = input("")
xy = input("")
y = input("")
if xy == "+":
print(x+y)
elif xy == "-":
print(x-y)
elif xy == "*":
print(x*y)
elif xy == "/":
print(x/y)
答案 0 :(得分:1)
我建议使用单个input
语句,然后使用简单的regular expression将字符串解析为x
,y
和运算符。例如,此模式:(\d+)\s*([-+*/])\s*(\d+)
。在这里,\d+
表示“一个或多个数字”,\s*
表示“零个或多个空格”,[-+*/]
表示“这四个符号中的任何一个。(...)
中的部分以后可以提取。
import re
expr = input() # get one input for entire line
m = re.match(r"(\d+)\s*([-+*/])\s*(\d+)", expr) # match expression
if m: # check whether we have a match
x, op, y = m.groups() # get the stuff within pairs of (...)
x, y = int(x), int(y) # don't forget to cast to int!
if op == "+":
print(x + y)
elif ...: # check operators -, *, /
...
else:
print("Invalid expression")
除了四个if/elif
之外,您还可以创建一个字典,将运算符符号映射到函数:
operators = {"+": lambda n, m: n + m}
然后从该dict中获取正确的函数并将其应用于操作数:
print(operators[op](x, y))
答案 1 :(得分:0)
这是另一种可能性。
raw = raw_input("Calculator: ")
raw1 = raw.split(" ")
x = int(raw1[0])
xy = raw1[1]
y = int(raw1[2])
if xy == "+":
print raw, "=", x + y
elif xy == "-":
print raw, "=", x-y
elif xy == "/":
print raw, "=", x/y
elif xy == "*":
print raw, "=", x*y
答案 2 :(得分:0)
你可以得到这样的输入:
cal = input("Calculator: ").strip().split()
x, xy, y = int(cal[0]), cal[1], int(cal[2])
然后您可以处理输入数据。