Est-il une meilleure façon de trouver si la chaîne contient des chiffres?

Je travaille avec des chaînes de caractères qui contiennent à la fois des chiffres et des caractères alphanumériques, ou tout simplement des chiffres, mais pas seulement alphas. Afin de tester les mauvais résultats, j'ai besoin de vérifier si les chaînes de caractères contenant au moins un chiffre, l'impression d'un message d'erreur s'il ne le fait pas. J'ai été en utilisant le code suivant:

s = '0798237 sh 523-123-asdjlh'

def contains_digits(s):
    for char in list(s):
        if char.isdigit():
            return True
            break
    return False

if contains_digits(s) == True:
    print s
else:
    print 'Error'

Est-il plus pythonic ou de façon plus simple de le faire, ou cela suffit-il? Aussi, je ne peux pas juste vérifier pour voir si la chaîne est alphanumérique, parce que la chaîne peut contenir des symboles différents ('-', espaces, etc.)

Par la voie, contains_digits == True est redondante. Vous pouvez déposer le == True partie et il va fonctionner de la même manière.

OriginalL'auteur aensm | 2012-06-27