'python if user input contains string
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
Solution 1:[1]
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.
Solution 2:[2]
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.
Solution 3:[3]
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")
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | Ashwini Chaudhary |
Solution 2 | |
Solution 3 | JHolta |