Python限制字符输入

时间:2015-02-26 09:51:56

标签: python

我试图在Python程序(下面的代码)的.dat文件的输入中只允许输入字母a,b或c,但是我很难让程序执行此操作正确。

varClass = "class" + input("Which class are you in? [A/B/C]: ").lower() + ".dat"
if not re.match("^[a-c]*$", varClass):
    print("Enter the correct class number")

这就是我已经拥有的,但即使输入了错误的字符,它仍然会继续运行。

2 个答案:

答案 0 :(得分:1)

varClass = "class" + input("Which class are you in? [A/B/C]: ").lower() + ".dat"
if not re.match("^class[a-c]\.dat$", varClass):
    print("Enter the correct class number")

您的match将始终返回false作为match匹配的开头,并且您在开头有class

答案 1 :(得分:0)

首先获取输入,然后检查它,然后添加class.dat,在检查输入之前已经添加了class和.dat,添加然后检查是向后做了一些事情:

allowed = {"a","b","c"}
inp =  input("Which class are you in? [A/B/C]: ").lower()
if not allowed.issuperset(inp):
     print("Enter the correct class number")
else:
     var = "class{}.dat".format(inp)

如果您有某些特定的字母组合,则必须在集合中添加这些字母组合并检查:

    inp =  input("Which class are you in? [A/B/C]: ").lower()
    if inp.lower() not in {"ab","ac"}:
         print("Enter the correct class number")
    else:
         var = "class{}.dat".format(inp)