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