Pythons strengtype (str) er standard med praktiske metoder til at manipulere store og små bogstaver. Du kan konvertere mellem store og små bogstaver og bestemme kasus.
Her findes følgende oplysninger.
- Konvertering mellem store og små bogstaver
- Grundlæggende brug
- Håndtering af tegn i fuld størrelse og halvstor størrelse
str.upper()
Konverter alle bogstaver til store bogstaverstr.lower()
Konverter alle bogstaver til små bogstaverstr.capitalize()
Konverter det første bogstav til store bogstaver og resten til små bogstaver.str.title()
Konverter det første bogstav i et ord til store bogstaver og resten til små bogstaver.str.swapcase()
Konverter store bogstaver til små bogstaver og små bogstaver til store bogstaver.
- Bestem store og små bogstaver
str.isupper()
: Bestem, om alle bogstaver er store bogstaverstr.islower()
: Bestem, om alle tegn er små bogstaver.str.istitle()
: Bestem, om der er tale om en titelcase.
- Sammenligner strenge på en måde, der ikke tager hensyn til store og små bogstaver
- Konvertering mellem store og små bogstaver
- Grundlæggende brug
- Håndtering af tegn i fuld størrelse og halvstor størrelse
- str.upper(): konverterer alle bogstaver til store bogstaver
- str.lower(): konverterer alle tegn til små bogstaver
- str.capitalize(): konverterer det første bogstav til store bogstaver og resten til små bogstaver
- str.title(): konverterer det første bogstav i et ord til store bogstaver og resten til små bogstaver
- str.swapcase(): konverterer store bogstaver til små bogstaver, små bogstaver til store bogstaver
- Bestem store og små bogstaver
- Sammenligner strenge på en måde, der ikke tager hensyn til store og små bogstaver
Konvertering mellem store og små bogstaver
Grundlæggende brug
Først vil jeg forklare den grundlæggende brug. Vi vil bruge upper() metoden til at sætte alle bogstaver med stort som et eksempel, men det samme gælder for andre metoder.
For nemheds skyld skriver vi “konvertering”, men i Python kan objekter af typen streng (str) ikke opdateres, så selve den oprindelige streng (s_org i eksemplet) ændres ikke.
s_org = 'pYThon proGramminG laNguAge' print(s_org.upper()) # PYTHON PROGRAMMING LANGUAGE print(s_org) # pYThon proGramminG laNguAge
Hvis du ønsker at bruge den konverterede streng senere, kan du gemme den i en ny variabel på følgende måde.
s_new = s_org.upper() print(s_new) # PYTHON PROGRAMMING LANGUAGE
Det er også muligt at overskrive den oprindelige variabel.
s_org = s_org.upper() print(s_org) # PYTHON PROGRAMMING LANGUAGE
Håndtering af tegn i fuld størrelse og halvstor størrelse
Hvis et tegn er case-sensitiv, f.eks. alfabetet, vil det blive konverteret til både single-byte- og double-byte-tegn.
Karakterer, der ikke er stregfølsomme, f.eks. tal og kinesiske tegn, forbliver uændret. Eksemplet er for upper(), men det samme gælder for andre metoder.
s_org = 'Pyhon Python 123' print(s_org.upper()) # PYHON PYTHON 123
str.upper(): konverterer alle bogstaver til store bogstaver
s_org = 'pYThon proGramminG laNguAge' print(s_org.upper()) # PYTHON PROGRAMMING LANGUAGE
str.lower(): konverterer alle tegn til små bogstaver
s_org = 'pYThon proGramminG laNguAge' print(s_org.lower()) # python programming language
str.capitalize(): konverterer det første bogstav til store bogstaver og resten til små bogstaver
s_org = 'pYThon proGramminG laNguAge' print(s_org.capitalize()) # Python programming language
str.title(): konverterer det første bogstav i et ord til store bogstaver og resten til små bogstaver
Omdannelse til en såkaldt titelsag.
s_org = 'pYThon proGramminG laNguAge' print(s_org.title()) # Python Programming Language
str.swapcase(): konverterer store bogstaver til små bogstaver, små bogstaver til store bogstaver
Byt store og små bogstaver.
s_org = 'pYThon proGramminG laNguAge' print(s_org.swapcase()) # PytHON PROgRAMMINg LAnGUaGE
Bestem store og små bogstaver
I de følgende eksempler kaldes metoderne direkte fra strenglitteraler som f.eks. “python”, men det samme gælder, når de er gemt i variabler som i de foregående eksempler.
str.isupper(): afgør, om alle bogstaver er store bogstaver
isupper() returnerer sandt, hvis den indeholder mindst ét tegn, der er hhv. stor- og småskriftsfølsomt, og alle er store bogstaver, og falsk ellers.
print('PYTHON'.isupper()) # True print('Python'.isupper()) # False
Hvis der er forskel på store og små bogstaver i tegnet, vurderes selv dobbeltbyte-tegn.
print('PYTHON'.isupper()) # True
Hvis der indgår et enkelt tegn, der er skraldefølsomt, ignoreres det tegn, der ikke er skraldefølsomt, men hvis der ikke indgår noget tegn, der ikke er skraldefølsomt (alle tegn er skraldefølsomme), er afgørelsen falsk.
print('PYTHON 123'.isupper()) # True print('123'.isupper()) # False
str.islower(): afgør, om alle tegn er små bogstaver
islower() returnerer sandt, hvis den indeholder mindst ét tegn, der er små bogstaver, og alle er små bogstaver, og falsk ellers.
print('python'.islower()) # True print('Python'.islower()) # False
Hvis der er forskel på store og små bogstaver i tegnet, vurderes selv dobbeltbyte-tegn.
print('python'.islower()) # True
Hvis der indgår et enkelt tegn, der er skraldefølsomt, ignoreres det tegn, der ikke er skraldefølsomt, men hvis der ikke indgår noget tegn, der ikke er skraldefølsomt (alle tegn er skraldefølsomme), er afgørelsen falsk.
print('python 123'.islower()) # True print('123'.islower()) # False
str.istitle(): Bestem, om der er tale om en titelcase.
istitle() returnerer sandt, hvis strengen er en titelcase (det første bogstav i ordet er stort bogstav, resten er små bogstaver), ellers falsk.
print('Python Programming Language'.istitle()) # True print('PYTHON Programming Language'.istitle()) # False
Hvis den indeholder tegn, der ikke tager hensyn til store og små bogstaver, vil den være falsk, hvis de tegn, der ikke tager hensyn til store og små bogstaver, indledes af et lille bogstav.
print('★Python Programming Language'.istitle()) # True print('Python★ Programming Language'.istitle()) # True print('Py★thon Programming Language'.istitle()) # False
Bemærk, at der ikke er mange strenge som i eksemplet ovenfor, men det er realistisk at medtage tal i ordinaltal og andre tilfælde.
print('The 1st Team'.istitle()) # False print('The 1St Team'.istitle()) # True
Falsk, hvis der ikke er medtaget tegn, der ikke er skiftet mellem store og små bogstaver (alle tegn er ikke skiftet mellem store og små bogstaver).
print('123'.istitle()) # False
Sammenligner strenge på en måde, der ikke tager hensyn til store og små bogstaver
Ved sammenligning af strenge anses forskellige store og små bogstaver ikke for at være ækvivalente, når der sammenlignes strenge.
s1 = 'python' s2 = 'PYTHON' print(s1 == s2) # False
Hvis du vil foretage en sammenligning, der ikke tager hensyn til store og små bogstaver, kan du bruge upper() eller lower() til at konvertere de to og sammenligne dem.
print(s1.upper() == s2.upper()) # True print(s1.lower() == s2.lower()) # True print(s1.capitalize() == s2.capitalize()) # True print(s1.title() == s2.title()) # True