使用类方法检查的Python输入验证

使用类方法检查的Python输入验证,python,validation,dictionary,Python,Validation,Dictionary,好的,我已经试了大约两个小时了,但我似乎不明白。我想我尝试了几乎所有可能的算法组合,但仍然不起作用。下面是: 我试图基于两个条件(按优先级排序)验证Python中的键盘输入: 检查输入是否为整数 检查输入是否为vertex(用于检查给定数字是否可以在字典中作为键找到的类方法) 代码如下: 示例的屏幕记录: 当checkInt(顶点)为False时,验证只运行:-如果它第一次是一个有效的整数,则不会检查其余的整数。并不是说graf.checkVertex(vertex)不起作用;从来没有人打过电

好的,我已经试了大约两个小时了,但我似乎不明白。我想我尝试了几乎所有可能的算法组合,但仍然不起作用。下面是:

我试图基于两个条件(按优先级排序)验证Python中的键盘输入:

  • 检查输入是否为整数
  • 检查输入是否为vertex(用于检查给定数字是否可以在字典中作为键找到的类方法)
  • 代码如下:

    示例的屏幕记录:

    当checkInt(顶点)为False时,验证只运行
    -如果它第一次是一个有效的整数,则不会检查其余的整数。并不是说
    graf.checkVertex(vertex)
    不起作用;从来没有人打过电话。相反,请尝试:

    def readVertex(msg, graf, invalid_input):
        """
        msg - string message
        graf - Graph() class instance initialised somewhere
        invalid_input - string error message
        """
        while True:
            vertex = raw_input(msg)
            if checkInt(vertex) and graf.checkVertex(int(vertex)):
                return int(vertex)
            print invalid_input
    


    谢谢!我现在才意识到我是多么愚蠢。快速提问:当我在graf.checkVertex(int(vertex))中使用int(vertex)时,输入字母时总是会给我一个ValueError,但现在没有了。如果它现在能工作,它不是把字母转换成ASCII码吗?例如:int(“a”)应该是32,或者“a”的代码是什么。如果我不明白,我很抱歉,但是我的大脑现在很紧张,谢谢。没问题-有一个很好的社区wiki,可以接受用户输入@csergiu\u ro
    ,而且
    是懒惰的-第二部分只有在第一部分为
    True
    时才会运行,所以如果
    checkInt(vertex)=True
    ,你只能尝试
    int(vertex)
    {0: [], 1: [], 2: [], 3: [], 4: []}
    
    def readVertex(msg, graf, invalid_input):
        """
        msg - string message
        graf - Graph() class instance initialised somewhere
        invalid_input - string error message
        """
        while True:
            vertex = raw_input(msg)
            if checkInt(vertex) and graf.checkVertex(int(vertex)):
                return int(vertex)
            print invalid_input
    
    def readVertex(msg, graf, invalid_input):
        """
        msg - string message
        graf - Graph() class instance initialised somewhere
        invalid_input - string error message
        """
        while True:
            try:
                vertex = int(raw_input(msg))
            except ValueError:
                print invalid_input
            else:
                if graf.checkVertex(vertex):
                    return vertex
                print invalid_input