Very basic question.
We have the code:
a = input("how old are you")
if a == string:
do this
if a == integer (a != string):
do that
Obviously it doesn't work that way. But what is the easiest way to do this.
Thanks for any answers in advance.
We could also say:
if string in a:
do this
You can use str.isdigit
and str.isalpha
:
if a.isalpha():
#do something
elif a.isdigit():
#do something
help on str.isdigit
:
>>> print str.isdigit.__doc__
S.isdigit() -> bool
Return True if all characters in S are digits
and there is at least one character in S, False otherwise.
help on str.isalpha
:
>>> print str.isalpha.__doc__
S.isalpha() -> bool
Return True if all characters in S are alphabetic
and there is at least one character in S, False otherwise.
You can use a.isalpha(), a.isdigit(), a.isalnum() to check if a is composed of letters, numbers, or a combination of numbers and letters, respectively.
if a.isalpha(): # a is made up of only letters
do this
if a.isdigit(): # a is made up of only numbers
do this
if a.isalnum(): # a is made up numbers and letters
do this
The Python docs will tell you in more detail the methods you can call on strings.
Seen that you use input() in tour example you should know that input always give you a string. And you need to cast it to the correct type, EG: Int, or Float.
def isint(input):
return input.isdigit()
def isfloat(input):
try:
return float(input) != None;
except ValueError:
return False;
def isstr(input):
if not isint(input) and not isfloat(input):
return True
return False
print isint("3.14")
print isfloat("3.14")
print isstr("3.14")