我是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))
答案 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))