python if user input contains string

2020-02-05 10:02发布

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

3条回答
地球回转人心会变
2楼-- · 2020-02-05 10:42

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.
查看更多
We Are One
3楼-- · 2020-02-05 10:54

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")
查看更多
Summer. ? 凉城
4楼-- · 2020-02-05 11:07

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.

查看更多
登录 后发表回答