Liste over strengmetoder til at manipulere store og små bogstaver i Python

Forretning

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 bogstaver
    • str.lower()Konverter alle bogstaver til små bogstaver
    • str.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 bogstaver
    • str.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

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
Copied title and URL