有效检查,提出异常

时间:2017-04-25 05:04:54

标签: python-3.x

我尝试编写的代码采用格式'命令arg1 arg2'的字符串,现在,我卡住了,不知道如何编写有效的命令检查,有效命令在哪里添加'或者' sub'或者' mul'或者' div'。如果该命令不是有效命令,则会引发InvalidCommand()。

这是我的代码:

class InvalidCommand(Exception):
    pass

def validate_input(string):
    """
    validate_input(str) -> (str, [float])

    If string is a valid command, return its name and arguments.
    If string is not a valid command, raise InvalidCommand

    Valid commands:
    add x y
    sub x y
    mul x y
    div x y

    Arguments x and y must be convertable to float.

    """

    li = []

    if len(string.split(' ')) != 3:
        raise InvalidCommand()
    else:
        try:
            float(string.split(' ')[1])
            float(string.split(' ')[2])
        except ValueError:
            raise InvalidCommand()

    x = float(string.split(' ')[1])
    y = float(string.split(' ')[2])
    li.append(x)
    li.append(y)
    z = (string.split(' ')[0], li)
    return z

1 个答案:

答案 0 :(得分:0)

我认为这可以解决问题

VA=['add', 'sub', 'mul', 'div']
string=string.split()
if string[0] not in VA:
    raise InvalidCommand()
elif len(string) !=3:
    raise InvalidCommand()
else:
    try:
        return (string[0],[float(string[1]),float(string[2])])
    except ValueError:
        raise InvalidCommand()