Python:如果用户输入包含字符串

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

我不太确定你在问什么。你想要什么? - feralin
“但是最简单的方法是什么?”。做什么? - arshajii
3
需要注意的是,input 函数始终会返回一个字符串。你似乎正在寻找一种方法来检测字符串中是否包含数字。确保你理解这个区别。 - acjay
如果我没有很好地提出问题,我很抱歉。Ashwini Chaudhary的回答非常完美。那就是我需要的全部。每次用户输入字母而不是数字时,我的应用程序都会出现错误,因此我希望输入框保持在循环中,如果输入是整数,则退出循环。如果问题表述不清,我很抱歉。 - Greg Peckory
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.

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


5
输入将始终为字符串。 - computmaxer

0

看到你在示例中使用了input(),你应该知道input()总是返回一个字符串。你需要将其转换为正确的类型,例如:整数或浮点数。

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")

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接