# Enter Function
def enter(self,newval):
self.value = newval
# Add Function
def add(self,newval):
self.value += newval
# Subtract Function
def subtract(self,newval):
self.value -= newval
class Accumulator:
def __init__(self,newval = 0):
self.value = newval
acc = Accumulator()
if operator == 'e' or operator == 'E':
acc.enter(newval)
elif operator == 'a' or operator == 'A':
acc.add(newval)
elif operator == 's' or operator == 'S':
acc.subtract(newval)
calculator = input("Enter a number, followed by a space, then a valid operator: ").split
我正在尝试将用户输入创建一个像想法一样的计算器。我理解如何获取1个输入值,但我不知道如何获取2个输入值"或者分割"并将它们设置为与上面的问题相同如果用户输入" 5 a"它将设置5作为(newval)值并调用add函数。如果用户输入" 5 s"它会将5设置为(newval)值并调用subtract函数并最终打印出累计总数。
答案 0 :(得分:1)
我不知道如何取2个输入值“或拆分”并设置它们......
分割字符串的方法是使用split
方法。
所以:
number, operator = calculator.split()
默认情况下,split
会在任何空格上分割;要分割到一个空格,请使用split(' ')
。
此外,split
将返回与单词一样多的值。这意味着如果用户键入123 + *
或123+
,您将获得有关尝试将3个或1个值解包为2个目标的例外情况。您可以使用try
/ except
来处理该问题,或者您可以将结果存储在列表中并检查其len
,或者您可以使用partition
来保证您获得结果正好两个字。
number, _, operator = calculator.partition(' ')