我是Python的初学者,请不要使用复杂或高级的代码。
我有三个if
条件,我希望对此条件作出某些响应,并且我希望我的代码仅给出一个响应。
首先,我希望输入仅以字符串形式回答而不是整数或浮点数
f = input("Please enter your name :")
如果给出整数或浮点数,则应该给出错误
if type (f)== int or float :
print("Invalid entry")
if f=="" :
print("Invalid input. Your name cannot be blank. ")
我已经尝试过
f = str(input("Please enter your name :"))
它无法正常工作,我的代码仍然接受整数和字符串中的ans。
如果我输入字符串,它会给出以下响应:
if type (f)== int or float :
print("Invalid entry")
我是一个初学者,所以我可能犯了很多错误。您的耐心将不胜感激。
答案 0 :(得分:2)
如果您使用的是Python 3.X,则input()
总是返回一个字符串。请注意,尽管"1"
之类的字符串看上去很像数字,但它们仍然是字符串。
我认为您实际上 想要的是验证字符串仅包含字母字符,在这种情况下,您可以这样做:
s = input("Enter your name: ")
if not s.isalpha():
print("Please enter only alphabetical characters for your name.")
或者您可能希望接受除仅由数字组成的字符串以外的所有字符串。
s = input("Enter your name: ")
if s.isdigit():
print("Your name cannot be a number.")
还是只接受完全不包含数字的字符串?
s = input("Enter your name: ")
if any(char.isdigit() for char in s):
print("Please do not include digits in your name.")
如果您使用的是Python 2.7或更低版本,input()
可以返回字符串,整数或任何其他类型的对象。通常,这比它值得的事更令人头疼,因此,我建议切换到raw_input()
,此时,以上所有建议均适用。
一旦您具有适用于验证条件的正确逻辑,您可能会认为“好吧,但是如何使程序返回到第一个input()
调用,以便用户有另一个机会输入验证码正确的输入?”。如果是这样,您可能会发现这很有用:Asking the user for input until they give a valid response
PS。当涉及名称时,请注意验证输入的严格程度。接受异常输入方面的错误。否则,您可能会收到诸如“第三名约翰·史密斯”,“史蒂夫·奥雷里”或“田中太郎”之类的人的投诉。相关阅读:Falsehoods Programmers Believe About Names