我无法让我的输入仅接受 a-z 和 A-Z 字母。这是我想出来的
while(not(studentName == "END")):
studentName = input("What is the name of the student (END to finish) ")
if not re.match("^[a-z]*$", studentName):
print("Only letters are allowed")
elif len(studentName) == 0:
print("Insufficient characters. Please try again.")
else:
studentsNames.append(studentname)
但是我只是想出了一个错误“未定义”。 我该怎么办:C
我不喜欢使用正则表达式,而是使用内置的字符串方法。其中之一是
str.isalpha()
,当在字符串上调用时,如果字符串仅包含 True
,则返回 A-z
。所以代替:
if not re.match("^[a-z]*$", studentName):
print("Only letters are allowed")
我只想写:
if not studentName.isalpha():
print("Only letters are allowed!")
您需要导入
re
模块,并且您必须需要将正则表达式更改为,
if not re.match(r"^[A-Za-z]+$", studentName):
只需在 python 脚本顶部输入以下代码。
import re
您的正则表达式
"^[a-z]*$"
将匹配零个或多个小写字母。也就是说,它也会匹配空字符串,并且不会匹配仅包含大写字母的字符串,例如 FOO
。
所以这个
if not re.match("^[a-z]*$", studentName):
将为所有字符串返回true
,该字符串不能是空字符串或仅包含小写字母的字符串。
您可以使用 set 和 string.ascii_letters:
from string import ascii_letters
def is_all_characters(student_name):
return set(student_name) in set(ascii_letters)
isalpha() 可以满足此要求。
username = input("Enter Username: ")
if username.isalpha() is False:
print("Only Text allowed in Username")
else:
print("Welcome "+username)
虽然正确: 而真实: StudentName = input("学生的名字是什么:") 如果学生姓名.isalpha(): print("欢迎来到cse", 学生姓名) 休息 别的: print("输入无效") 打破