Python 验证键盘输入
我一直在编写一个包含键盘输入的Python3程序,我想测试输入的内容,以确保它符合某些标准,即它应该是单个字符,并且只有a、b或c。 作为Python新手,我在这里拼凑了其他页面的一些代码,它似乎可以工作,但我不确定它是否遵循最佳实践(甚至是正确的编程)。因此,任何意见/改进或替代方案都是最受欢迎的Python 验证键盘输入,python,python-3.x,Python,Python 3.x,我一直在编写一个包含键盘输入的Python3程序,我想测试输入的内容,以确保它符合某些标准,即它应该是单个字符,并且只有a、b或c。 作为Python新手,我在这里拼凑了其他页面的一些代码,它似乎可以工作,但我不确定它是否遵循最佳实践(甚至是正确的编程)。因此,任何意见/改进或替代方案都是最受欢迎的 chars = set('abc') trigger = 0 while (trigger == 0): answer = input(':') if len(answer) !=
chars = set('abc')
trigger = 0
while (trigger == 0):
answer = input(':')
if len(answer) != 1:
print ('Please enter only one character')
if any ((c in chars) for c in answer):
trigger = 1
else:
print ('please answer a,b or c')
创建有效输入的列表,并使用中的
进行测试。例如:
>>> rv = input()
a
>>> rv in ['a', 'b', 'c']
True
>>> rv = input()
test
>>> rv in ['a', 'b', 'c']
False
如果这是您认为可以改进的工作代码,请参阅。如果您不确定,请删除问题并进行测试。如果您知道某个特定问题,请提供解决方案。一般来说,验证用户输入的指南位于。非常感谢,您提供的链接将我带到了我要查找的内容,尽管我在搜索中没有看到该页面。您还必须为多字符添加'len(rv)==1'input@JoeIddon这是没有必要的。正如您在第二次尝试中所看到的,长度>1的字符串失败。如果您在['a','b','c']中尝试了'aa',
它也会失败。对不起!我的错误是,我假设您在字符串上使用in
运算符,在这种情况下,您必须检查它的长度1
,我的错误!当然,len(rv)==1,而“abc”中的rv也是一个有效的答案。
非常感谢你们的帮助,我觉得有更好的方法