我正在尝试创建一个要求输入名称的程序,但如果它不包含字母/空格则拒绝输入。但是,它似乎拒绝空格以及数字和符号。
print("Welcome to the Basic Arthmetics Quiz.")
print("What is your name?")
name=input()
if not name.isalpha()or name not in(str(" ")):
print('Please only enter letters for your name!')
while not name.isalpha()or name in(str(" ")):
v=1
print('Please enter your name again.')
name=input()
if name.isalpha()or name not in(str(" ")):
v=0
else:
v=1
我哪里出错?
答案 0 :(得分:0)
这看起来很像家庭作业。
您的测试RequestDispatcher dispatcher = getServletContext().getRequestDispatcher(response.encodeURL("/WEB-INF/view.jsp"));
dispatcher.forward(request, response);
,应该写为name not in(str(" "))
,测试名称是name not in " "
之一。
最简单的方法是一次测试一个char,并使用per-char条件,如
{"", " "}
将此与char.isalpha() or char == ' '
和生成器表达式结合使用,以测试all
的所有字符。
实际的实现,以及正确的代码流程(您不使用name
,执行测试三次,并且调用v
两次,所有这些都是不可接受的)留下作为锻炼。