如何在 python 中不接受空白和 space 仅 raw_input 回复?
How to not accept blank and space only raw_input reply in python?
newname = 3
while (newname>0):
Create_Login =raw_input("Create login name: ")
if Create_Login == (""):
newname=newname-1
print "error! Please do not leave it blank"
elif Create_Login == (" ") or Create_Login == (" ") or Create_Login == (" ") or Create_Login == (" ") or Create_Login == (" "):
newname=newname-1
print "error! Please do not spam the spacebar!"
else:
newname=-2
if newname!=-2:
#back to menu code and the rest...
我有这样的代码可以在我的程序中创建新用户,但是,对于
Create_Login =raw_input("Create login name: ")
它接受来自用户的任何类型的输入作为他们的用户名。我想限制 Create_Login
拒绝无效输入,例如
[ "", " ", " ", " ",...] #and so on
我该怎么做?
你试过isspace()
了吗?
isspace()
检查字符串是否只是空格,而不需要像 strip()
那样创建新的字符串对象
if(not Create_Login or Create_Login.isspace()):
print "User has not entered anything"
您也可以尝试 strip()
。然而就像我之前说的,它会创建一个新的字符串对象。
strip()
删除前导空格和试用空格。所以它只会删除前导和尾随的空格,不会删除字符串中的空格。
Create_Login = raw_input("Create login name: ")
if not Create_Login.strip():
print "User has not entered anything"
谢谢大家的关心~
最近,我刚刚发现一个非常有用和简单的方法来解决这个问题。
#by doing .strip
Create_Login = raw_input('new username: ')
Create_Login = str(Create_Login.strip(' '))
此新行将 Create_login 读取为字符串并删除其中的所有 space 以创建不含 space.
的有效用户名
#e.g.: "A B" = "AB", " C" = "C", or " "=""
newname = 3
while (newname>0):
Create_Login =raw_input("Create login name: ")
if Create_Login == (""):
newname=newname-1
print "error! Please do not leave it blank"
elif Create_Login == (" ") or Create_Login == (" ") or Create_Login == (" ") or Create_Login == (" ") or Create_Login == (" "):
newname=newname-1
print "error! Please do not spam the spacebar!"
else:
newname=-2
if newname!=-2:
#back to menu code and the rest...
我有这样的代码可以在我的程序中创建新用户,但是,对于
Create_Login =raw_input("Create login name: ")
它接受来自用户的任何类型的输入作为他们的用户名。我想限制 Create_Login
拒绝无效输入,例如
[ "", " ", " ", " ",...] #and so on
我该怎么做?
你试过isspace()
了吗?
isspace()
检查字符串是否只是空格,而不需要像 strip()
if(not Create_Login or Create_Login.isspace()):
print "User has not entered anything"
您也可以尝试 strip()
。然而就像我之前说的,它会创建一个新的字符串对象。
strip()
删除前导空格和试用空格。所以它只会删除前导和尾随的空格,不会删除字符串中的空格。
Create_Login = raw_input("Create login name: ")
if not Create_Login.strip():
print "User has not entered anything"
谢谢大家的关心~ 最近,我刚刚发现一个非常有用和简单的方法来解决这个问题。
#by doing .strip
Create_Login = raw_input('new username: ')
Create_Login = str(Create_Login.strip(' '))
此新行将 Create_login 读取为字符串并删除其中的所有 space 以创建不含 space.
的有效用户名#e.g.: "A B" = "AB", " C" = "C", or " "=""