将Python输入字符串限制为某些字符和长度
我刚刚开始学习我的第一种真正的编程语言Python。我想知道如何将用户输入限制raw_input
为特定字符和特定长度。例如,如果用户输入的字符串包含除字母以外的任何内容,我想显示一条错误消息a-z
,并且我想显示其中一个用户输入的字符超过15个。
第一个似乎是我可以使用正则表达式做的事情,由于我已经在Java语言中使用过它们,所以我对此有所了解,但是我不确定如何在Python中使用它们。第二个,我不确定该如何处理。有人可以帮忙吗?
-
问题1:仅限某些字符
没错,这很容易用正则表达式解决:
import re input_str = raw_input("Please provide some info: ") if not re.match("^[a-z]*$", input_str): print "Error! Only letters a-z allowed!" sys.exit()
问题2:限制为一定长度
正如Tim正确提到的那样,您可以通过调整第一个示例中的正则表达式以只允许一定数量的字母来做到这一点。您也可以像这样手动检查长度:
input_str = raw_input("Please provide some info: ") if len(input_str) > 15: print "Error! Only 15 characters allowed!" sys.exit()
或两者合一:
import re input_str = raw_input("Please provide some info: ") if not re.match("^[a-z]*$", input_str): print "Error! Only letters a-z allowed!" sys.exit() elif len(input_str) > 15: print "Error! Only 15 characters allowed!" sys.exit() print "Your input was:", input_str