Vérification de l'espace dans une chaîne de caractères (python)
Pourquoi je reçois toujours YES!!!
? J'ai besoin de retourner NO!!!
si la chaîne contient un blanc (saut de ligne, appuyez sur, l'espace),
user = "B B"
if user.isspace():
print("NO!!!")
else:
print("YES!!!")
user = B B
sera SyntaxError, la syntaxe non valideLe
isspace
fonction renvoie uniquement True
pour les chaînes qui ne contiennent que de l'espace.Alors comment puis-je vérifier si il y a un espace dans une chaîne de caractères?
OriginalL'auteur Digi_B | 2014-11-18
Vous devez vous connecter pour publier un commentaire.
Je suis dans le train, désolé de ne pas expliquer.. ne peut pas taper beaucoup..
il fonctionne pour moi, de voir la mise à jour
Essayez
'B'.split() == 'B '.split()
Si'B '
doit être considérée comme un espace, cette solution est fausse.modifié la réponse. Maintenant, il fonctionne pour les deux cas.
Ne fonctionne pas pour un
\t
ou\n
ou de tout blanc d'autres que l'ASCII 0x20 (barre d'espace). L'OP a déclaré n'importe quel espace, y compris par une tabulation ou un retour à la ligneOriginalL'auteur doniyor
Vous utilisez
isspace
qui ditstr.isspace()
Veuillez noter:
isspace
ne retourne pas vrai pourNone
ou''
. L'équivalent deIsNullOrWhiteSpace
.NET seraitnot s or s.isspace()
OriginalL'auteur Nilesh
Ici est une super méthode qui illustre la souplesse des interprétations de la liste. C'est une méthode d'assistance qui vérifie si une chaîne contient des espaces.
Code:
Exemple:
Cela peut, bien sûr, être étendu afin de vérifier si une chaîne contient un élément dans n'importe quel ensemble (plutôt que de simplement les espaces). La solution précédente est un pur, à court de solution, mais certains prétendent que c'est dur à lire et à moins Pythonic que quelque chose comme:
True in ...
est égal àany(...)
.Pour développer sur ArtOfWarfare du commentaire, la solution la plus élégante serait peut-être utiliser un générateur d'expression avec
any()
, par exemple:return any(c in s for c in string.whitespace)
. Un rapide test sur ma boîte montre queany()
tourne légèrement plus vite en vertu de Disponible 3.6 que la compréhension de liste (vous le kilométrage peut varier, selon le format standard de la chaîne que vous attendez).OriginalL'auteur Duke
Depuis que vous êtes à la recherche pour plus que juste un simple
' '
où vous pourriez utiliser' ' in tgt
vous pouvez utiliser tout:Imprime:
OriginalL'auteur dawg
vous avez besoin de faire une boucle sur elle pour vérifier tous les éléments, mais le code ci-dessus ne fonctionnera pas comme prévu.
utiliser une fonction d'assistance:
démo:
utilisation
in
pour vérifiersi vous souhaitez utiliser
isspace
:Au lieu de retourner True ou False, vous pouvez retourner chaîne Souhaitée:
yep , je fais de l'aide pour le rendre OP afin de mieux les comprendre
OriginalL'auteur Hackaholic
Vous pouvez utiliser
str.split
pour vérifier si une chaîne contient des espaces:De sorte que vous pouvez vérifier que
Si vous essayez seulement de vérifier l'ensemble des mots dans la chaîne (c'est à dire, vous n'êtes pas inquiet à propos de espaces environnants qui pourraient être éliminés par
x.strip()
), la conditionx == s[0]
n'est plus nécessaire. La case devient une seule instruction:Maintenant vous pouvez le faire
OriginalL'auteur Mad Physicist
OriginalL'auteur Vietnhi Phuvan