Vérifier si un caractère dans une chaîne alphanumérique
Je veux vérifier si un caractère dans une chaîne alphanumérique. J'ai écrit le code suivant pour que ça fonctionne:
s = input()
temp = any(i.isalnum() for i in s)
print(temp)
La question que j'ai est le code ci-dessous, comment est-il différent du code ci-dessus:
for i in s:
if any(i.isalnum()):
print(True)
L'itération de boucle est encore en cours dans le premier code, alors pourquoi n'est-il pas de lancer une erreur? Le deuxième code lance:
Traceback (most recent call last):
Fichier "", ligne 18, dans
TypeError: 'bool' objet n'est pas itératif
- Le
any
déclaration a une portée différente dans les deux fonctions. Dans le second cas, vous appliquezany
à un seul élément.
Vous devez vous connecter pour publier un commentaire.
Dans votre deuxième fonction que vous appliquez
any
à un seul élément, et pas à l'ensemble de la liste. Ainsi, vous obtenez un booléen si le caractèrei
est alphanumérique.Dans le second cas, vous ne pouvez pas vraiment utiliser
any
que vous travaillez avec des éléments uniques. Au lieu de cela, vous pourriez écrire:Qui sera plus similaires à votre premier cas.
any()
s'attend à un objet iterable. Cela serait suffisant: