Ce face str.isalpha(), isalnum(), isascii(), isspace(), isprintable(), isidentifier()
isalpha(): doar litere (inclusiv cu diacritice). isalnum(): doar litere și cifre. isspace(): doar spații albe. Toate trei returnează False pentru textul gol.
isascii(): toate caracterele sunt ASCII (cod sub 128); pentru textul gol returnează True. isprintable(): niciun caracter de control (de exemplu \n sau \t); textul gol este considerat tipăribil. isidentifier(): textul poate fi nume de variabilă în Python (nu verifică însă cuvintele cheie; pentru asta există keyword.iskeyword()).
Pentru bytes există isalpha(), isalnum(), isascii() și isspace(), care iau în calcul doar caracterele ASCII.
Ce returnează
True sau False.
Exemple
Exemplul 1: Tabel de verificări
for t in ["Brașov", "Ana25", "abc", " \t", "nume_1", "a b", ""]:
print(f"{t!r:10} alpha={t.isalpha()!s:5} alnum={t.isalnum()!s:5} ascii={t.isascii()!s:5} space={t.isspace()!s:5} id={t.isidentifier()}")
Rezultat
'Brașov' alpha=True alnum=True ascii=False space=False id=True
'Ana25' alpha=False alnum=True ascii=True space=False id=True
'abc' alpha=True alnum=True ascii=True space=False id=True
' \t' alpha=False alnum=False ascii=True space=True id=False
'nume_1' alpha=False alnum=False ascii=True space=False id=True
'a b' alpha=False alnum=False ascii=True space=False id=False
'' alpha=False alnum=False ascii=True space=False id=False
Exemplul 2: Caractere invizibile și bytes
print("rând\nnou".isprintable(), "normal".isprintable())
import keyword
print("class".isidentifier(), keyword.iskeyword("class"))
print(b"abc".isalpha(), b"ab1".isalnum(), b"\xc8\x99".isascii())
Rezultat
False True
True True
True True False
Greșeli frecvente
- Validezi un nume cu
isalpha()și respingi „Ana Maria” sau „Ana-Maria”: spațiul și cratima nu sunt litere. Elimină-le întâi sau folosește o expresie regulată.
Comenzi înrudite
str.isdigit(), isdecimal() și isnumeric(): Verifică dacă un text conține doar cifre.str.islower(), isupper() și istitle(): Verifică dacă literele unui text sunt toate mici, toate mari, sau în formă de titlu.re.match() și re.fullmatch(): Verifică dacă începutul textului (match) sau tot textul (fullmatch) se potrivește modelului.