Boolean je důležitý koncept v programování. V tomto článku se s EU.LuckyTemplates naučíme, jak používat Boolean ke zpracování řetězců v Pythonu !

Řetězec v Pythonu je posloupnost znaků. S řetězci můžete provádět mnoho různých akcí pomocí sady dostupných metod. Řetězcové booleovské typy jsou podmnožinou těchto metod, které se používají ke kontrole, zda daný řetězec odpovídá pravidlům či nikoliv.
Nyní se naučíme, jak používat některé booleovské metody v Pythonu 3 k efektivnějšímu zpracování řetězců.
Jak ověřit řetězce pomocí Boolean v Pythonu
Jak zkontrolovat řetězec obsahuje pouze alfanumerické znaky
Zda daný řetězec obsahuje pouze alfanumerické znaky, můžete zkontrolovat pomocí metody isalnum() .
Tato metoda vrátí hodnotu True , pokud jsou všechny znaky alfanumerické, včetně (AZ), (az) a (0-9). Pokud některý znak v řetězci není výše uvedeným znakem, tato metoda vrátí hodnotu False .
Například:
str1 = "WelcomeToMUO"
# This method will return "True" as all the characters are alphanumeric
checkstr1 = str1.isalnum()
print(checkstr1)
str2 = "Welcome To MUO"
# This method will return "False" as the string have 2 whitespaces which are not alphanumeric
checkstr2 = str2.isalnum()
print(checkstr2)
str3 = "#WelcomeToMUO"
# This method will return "False" as the string have a special character "#" which is not alphanumeric
checkstr3 = str3.isalnum()
print(checkstr3)
str4 = "274962472"
# This method will return "True" as all the characters are alphanumeric
checkstr4 = str4.isalnum()
print(checkstr4)
str5 = "Welcome2MUO"
# This method will return "True" as all the characters are alphanumeric
checkstr5 = str5.isalnum()
print(checkstr5)
Výsledek:
True
False
False
True
True
Jak zkontrolovat, že každý řetězec obsahuje pouze doslovné znaky
Zda daný řetězec obsahuje pouze písmena či nikoli, můžete zkontrolovat pomocí metody isalpha() . Tato metoda vrátí True, pokud jsou všechny znaky písmeny z AZ a az. Pokud některé znaky v řetězci nejsou doslovné, tato metoda vrátí hodnotu False .
Například:
str1 = "WelcomeToMUO"
# This method will return "True" as all the characters are alphabetic
checkstr1 = str1.isalpha()
print(checkstr1)
str2 = "Welcome To MUO"
# This method will return "False" as the string have 2 whitespaces which are not alphabetic
checkstr2 = str2.isalpha()
print(checkstr2)
str3 = "#WelcomeToMUO"
# This method will return "False" as the string have a special character "#" which is not alphabetic
checkstr3 = str3.isalpha()
print(checkstr3)
str4 = "274962472"
# This method will return "False" as all the characters are not alphabetic
checkstr4 = str4.isalpha()
print(checkstr4)
str5 = "Welcome2MUO"
# This method will return "False" as the string has a digit "2" which is not alphabetic
checkstr5 = str5.isalpha()
print(checkstr5)
Výsledek:
True
False
False
False
False
Jak zkontrolovat, zda všechny znaky v řetězci jsou desetinná místa, číslice nebo čísla
Pomocí metod isdecimal(), isdigit() a isnumeric() můžete zkontrolovat, zda daný řetězec obsahuje pouze desetinné, numerické nebo numerické znaky. Všechny tři metody jsou podobné, ale mají následující klíčové rozdíly:
- isdecimal() : Desetinné znaky lze použít k vytvoření čísel se základem 10, například: U+0660, ARABSKO-INDICKÁ ČÍSLICE NULA. Formálně je desetinný znak znak ve tvaru Unicode General Category „Nd“.
- isdigit() : Číslice obsahují desetinné znaky a vyžadují speciální zacházení, jako jsou horní indexy kvůli kompatibilitě. To zahrnuje číslice, které nelze použít k vytvoření čísel se základem 10, jako jsou čísla Kharosthi. Formálně je číslice znak s hodnotou atributu Numeric_Type=Digit nebo Numeric_Type=Decimal.
- isnumeric() : Číselné znaky zahrnují alfanumerické znaky a všechny znaky s atributem číselné hodnoty Unicode, například: U+2155, VULGAR FRACTION ONE FIFTH. Formálně jsou číselné znaky znaky s hodnotou atributu Numeric_Type = Digit, Numeric_Type = Decimal nebo Numeric_Type = Numeric.
Podle definice lze vztah mezi těmito třemi metodami prezentovat takto:
isdecimal() ⊆ isdigit() ⊆ isnumeric()
To znamená, že pokud je řetězec desítkové číslo, může to být také čísla a číslice.
Například:
# Digits
str1 = "8734947"
print("str1:")
print("str1.isdecimal() : ",str1.isdecimal())
print("str1.isdigit() : ",str1.isdigit())
print("str1.isnumeric() : ",str1.isnumeric())
# Fractional Value
str2 = "½"
print("str2:")
print("str2.isdecimal() : ",str2.isdecimal())
print("str2.isdigit() : ",str2.isdigit())
print("str2.isnumeric() : ",str2.isnumeric())
# Superscript Values
str3 = "⁰¹²³⁴⁵⁶⁷⁸⁹"
print("str3:")
print("str3.isdecimal() : ",str3.isdecimal())
print("str3.isdigit() : ",str3.isdigit())
print("str3.isnumeric() : ",str3.isnumeric())
Výsledek:
str1:
str1.isdecimal() : True
str1.isdigit() : True
str1.isnumeric() : True
str2:
str2.isdecimal() : False
str2.isdigit() : False
str2.isnumeric() : True
str3:
str3.isdecimal() : False
str3.isdigit() : True
str3.isnumeric() : True
Jak zkontrolovat, zda je řetězec platným identifikátorem
Zda je daný řetězec platným identifikátorem, můžete zkontrolovat pomocí metody isidentifier(). Tato metoda vrátí True , pokud je řetězec platným identifikátorem. V opačném případě vrátí False .
Každý řetězec je považován za platný identifikátor, pokud splňuje následující podmínky:
- Obsahuje pouze alfanumerické znaky nebo podtržítka.
- Nezačíná číselným znakem.
- Neobsahuje mezery.
Například:
str1 = "var1"
# This method will return "True" as the given string is a valid identifier
checkstr1 = str1.isidentifier()
print(checkstr1)
str2 = "var 1"
# This method will return "False" as the string contains a whitespace
checkstr2 = str2.isidentifier()
print(checkstr2)
str3 = "var1#"
# This method will return "False" as the string have a special character "#"
checkstr3 = str3.isidentifier()
print(checkstr3)
str4 = "_var1_"
# This method will return "True" as the given string is a valid identifier
checkstr4 = str4.isidentifier()
print(checkstr4)
str5 = "1var"
# This method will return "False" as the string starts with a digit "1"
checkstr5 = str5.isidentifier()
print(checkstr5)
Výsledek:
True
False
False
True
False
Řetězce jsou mimořádně užitečné při přenosu informací z programu k uživateli. Použití booleovské validace není jediný způsob, jak zacházet s řetězci Pythonu, ale je extrémně efektivní a pro začátečníky docela snadné.