5

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

a = input("how old are you")

if a == string:
    do this

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

显然它不是那样工作的。但是最简单的方法是什么。感谢您提前提供任何答案。

我们也可以说:

if string in a:
    do this
4

3 回答 3

17

您可以使用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.
于 2013-07-03T16:44:10.050 回答
2

您可以使用 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文档将更详细地告诉您可以在字符串上调用的方法。

于 2013-07-03T16:44:43.487 回答
0

看到您在游览示例中使用了 input(),您应该知道 input 总是给您一个字符串。您需要将其转换为正确的类型,例如: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")
于 2013-07-03T16:56:58.477 回答