2013-07-03 24 views
5

非常に基本的な質問です。ユーザ入力に文字列が含まれているとPython

a = input("how old are you") 

if a == string: 
    do this 

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

は明らかにそれがそのように動作しません: 私たちは、コードを持っています。しかし、これを行う最も簡単な方法は何ですか。 事前にお返事ありがとうございます。

我々はまた、言うことができる:

if string in a: 
    do this 
+0

私はあなたが何を求めているのかよく分かりません。なんでしょう? – feralin

+0

* "これを行う最も簡単な方法は何でしょうか" *何をする? – arshajii

+2

'input'は常に文字列を返すことに注意することが重要です。あなたが探しているように見えるのは、その文字列に数字が含まれているかどうかを検出する方法です。あなたがその区別を理解していることを確認してください。 – acjay

答えて

13

は、あなたが使用することができます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. 
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は、文字列で呼び出すことができるメソッドをより詳しく説明します。

+4

入力は常に文字列になります – computmaxer

+0

ええ、あなたは正しいです。 – jh314

0

ツアーの例で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") 
関連する問題