Python拆分用户输入

时间:2014-11-26 00:38:43

标签: python split

# 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函数并最终打印出累计总数。

1 个答案:

答案 0 :(得分:1)

  

我不知道如何取2个输入值“或拆分”并设置它们......

分割字符串的方法是使用split方法。

所以:

number, operator = calculator.split()

默认情况下,split会在任何空格上分割;要分割到一个空格,请使用split(' ')

此外,split将返回与单词一样多的值。这意味着如果用户键入123 + *123+,您将获得有关尝试将3个或1个值解包为2个目标的例外情况。您可以使用try / except来处理该问题,或者您可以将结果存储在列表中并检查其len,或者您可以使用partition来保证您获得结果正好两个字。

number, _, operator = calculator.partition(' ')