我试图在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")
这就是我已经拥有的,但即使输入了错误的字符,它仍然会继续运行。
答案 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)