2013-07-03 25 views
5

dize içeriyorsa Çok basit bir soru.Kullanıcı girişi string

a = input("how old are you") 

if a == string: 
    do this 

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

Açıkçası bu şekilde çalışmaz: Biz kodu var. Ama bunu yapmanın en kolay yolu nedir? Önceden herhangi bir cevap için teşekkürler.

Biz de söyleyebiliriz:

if string in a: 
    do this 
+0

Ne sorduğundan emin değilim. Ne istiyorsun? – feralin

+0

* "Ama bunu yapmanın en kolay yolu nedir" * .. Ne yapmalı? – arshajii

+2

'input' öğesinin her zaman bir dize döndüreceğini unutmayın. Aradığınız şey, bu dizenin basamak içerdiğini algılamanın bir yoludur. Ayrımı anladığınızdan emin olun. – acjay

cevap

13

kullanabilirsiniz str.isdigit ve str.isalpha:

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

yardım str.isdigit tarih:

>>> 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. 

yardım str.isalpha tarih:

>>> 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() öğelerini sırasıyla harflerden, sayılardan veya sayı ve harflerden oluşan bir kombinasyondan oluşup oluşmadığını kontrol etmek için kullanabilirsiniz.

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 daha ayrıntılı olarak size dizeleri arayabilirler yöntemleri söyleyecektir.

+4

giriş her zaman bir dize olacak – computmaxer

+0

Evet, haklısın. – jh314

0

Tur örneğinde input() kullandığınızı gördüğünüzde, girişin daima bir dize vereceğini bilmelisiniz. Ve doğru türde, EG: Int veya Float'a dökmeniz gerekir.

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") 
İlgili konular