如何用条件循环匹配python中的字符串

2024-04-19 17:41:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我是python的初学者。我想让用户输入他的名字。名称应该只包含字母A-Z,如果不是,我想显示一个错误,并要求用户再次输入名称,直到名称是正确的。这是我正在尝试的代码。但是,即使字符串包含数字和特殊字符,也不会对其进行检查。我哪里做错了??你知道吗

def get_first_name():
try_again = True
while(try_again==True):
    first_name = raw_input("Please enter your first name.")
    if (re.match("^[A-Za-z]+$", first_name)==False):
        try_again = True
    else:
        try_again = False
        return first_name

Tags: 字符串代码用户name名称falsetrue错误
2条回答

你不需要re,只要使用str.isalpha

def get_first_name():  
     while True:
        first_name = raw_input("Please enter your first name.")
        if not first_name.isalpha(): # if not all letters, ask for input again
            print "Invalid entry"
            continue
        else: # else all is good, return first_name
            return first_name
In [12]: "foo".isalpha()
Out[12]: True

In [13]: "foo1".isalpha()
Out[13]: False
 if (re.match("^[A-Za-z]+$", first_name)==False):

你知道吗重新匹配在没有匹配项时返回None。无不等于假。你可以这样写:

 if not re.match("^[A-Za-z]+$", first_name):

相关问题 更多 >