python如果用户输入包含字符串

时间:2013-07-03 16:41:56

标签: python string if-statement input python-3.x

非常基本的问题。 我们有代码:

a = input("how old are you")

if a == string:
    do this

if a == integer (a != string):  
    do that

显然它不会那样工作。但是最简单的方法是什么呢。 谢谢你提前得到任何答案。

我们也可以说:

if string in a:
    do this

3 个答案:

答案 0 :(得分:15)

您可以使用str.isdigitstr.isalpha

if a.isalpha():
   #do something
elif a.isdigit():
   #do something

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.

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.

答案 1 :(得分:3)

您可以使用a.isalpha(),a.isdigit(),a.isalnum()来检查a是否分别由字母,数字或数字和字母的组合组成。

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

Python docs将更详细地告诉您可以调用字符串的方法。

答案 2 :(得分:0)

看到你在tour示例中使用input(),你应该知道输入总是给你一个字符串。并且您需要将其转换为正确的类型,EG:Int或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")