基本Python:错误检查.isdigit,.isalnum

时间:2018-05-07 18:11:04

标签: python-3.x

我是python的新手,并且当我使用name.isalnum方法时,代码将在下面的简单程序有一个小问题它只适用于第一个工作,例如如果我运行程序并输入名称1joe,if语句将运行,但如果我要输入Joe 1jacques,if语句将忽略我输入中的数字并继续正常,任何人都知道问题?

def main():
    print ("WELCOME")
    name = input("Please Enter your name ")
    if name.isdigit():
        print ("Name only includes numbers, name can only have letters: ")
        name = input("Reenter Name:" )
    elif name.isalnum():
        print ("Name can only include letters : ")
        name = input("Reenter Name: ")
    elif len(name) ==0:
        print ("Name field is empty")
        name= input("Reenter name:" )
    print ("Nice to meet you! " + name)
    print (len(name))

This is me running the program with both sets on inputs

1 个答案:

答案 0 :(得分:0)

忽略

isalnum,因为您输入的字符串中有空格。使用str.replace删除空格,然后使用isalnum

<强>实施例

def main():
    print ("WELCOME")
    name = input("Please Enter your name ")
    if name.isdigit():
        print ("Name only includes numbers, name can only have letters: ")
        name = input("Reenter Name:" )
    elif name.replace(' ','').isalnum():   #-->Update
        print ("Name can only include letters : ")
        name = input("Reenter Name: ")
    elif len(name) ==0:
        print ("Name field is empty")
        name= input("Reenter name:" )
    print ("Nice to meet you! " + name)
    print (len(name))
相关问题