Programmering

Arbeta med strängar i Python

Arbeta med strängar i Python

Strängen är en av de mest populära datatyperna i python. Vi kan använda strängdatatypen för att lagra textdata. I python betraktas alla tecken under enstaka eller dubbla citat som strängar. Dessa tecken kan vara vilken som helst av Unicode-tecknen som stöder i python. I den här handledningen lär vi oss nästan allt om strängdatatypen i python.

För att följa denna handledning rekommenderas att den senaste pythonversionen är installerad i ditt system. Om du har en äldre version av python installerad i ditt system kan du följa vår guide för uppdatering av python på Linux. 

Skapa strängar i Python

För att skapa en sträng i python måste vi sätta karaktärernas array-underquoter. Python behandlar både enkla och dubbla citat som samma, så vi kan använda någon av dem medan vi skapar en sträng. Se exemplen nedan där vi skapar en sträng, lagrar dem i variabler och sedan skriver ut dem.

# skapar en sträng
greeting = "Hello World"
# skriver ut strängen
skriva ut (hälsning)

När du kör ovanstående kod får du utdata Hej världen.

skapa strängar i python

I den här koden har vi skapat en sträng Hej världenoch lagrade den i en variabel med namnet hälsning. Sedan använder vi Python-utskriftsfunktionen för att visa strängen som är lagrad i variabeln. Du får följande utdata när du kör koden. Vi kan också skapa en sträng med flera linjer genom att använda trippelcitat i nedanstående exempelkod.

var = "" "Lorem ipsum dolor sit amet,
consectetur adipiscing elit,
sed do eiusmod tempor incididunt
ut labore et dolore magna aliqua."" "
tryck (var)

Här är resultatet.

flertrådssträng i python

I Python är strängar arranger av byte som representerar Unicode-tecken. Men det har ingen inbyggd datatyp för enstaka tecken som i C eller C++. Alla strängar som har en längd på en anses vara ett tecken.

Strängarnas längd 

I många situationer kan vi behöva beräkna lite stränglängd. Det finns en inbyggd funktion som kan beräkna längden på en sträng. Funktionen vi kommer att använda är len () fungera.

För att se ett praktiskt exempel på len () funktion, kör följande kod i din Python IDE.

var = "Detta är en sträng"
tryck ("Strängens längd är:", len (var))

Produktion:

strängens längd med len () -metoden

Vi kan också använda python for loop, som jag diskuterade i denna handledning, för att beräkna en stränglängd. 

Exempel:

var = "Detta är en sträng"
räkna = 0
för jag i var:
räkna = räkna + 1
print ("Strängens längd är:", count)

Produktion:

strängens längd manuellt med hjälp av för loop

Strängsammankoppling

Strängsammankoppling är sammanslagning eller sammanfogning av två strängar. Vi kan enkelt gå med i två strängar genom att använda + -operatören. Låt oss se ett exempel på att sammanfoga två strängar i python.

# skapa två strängar
string1 = "Hej"
string2 = "Värld"
# slå samman de två strängarna
hälsning = sträng1 + sträng2
skriva ut (hälsning)

I koden ovan har vi skapat två strängar, nämligen "Hello" och "World", och lagrar dem i två variabler som heter sträng1 och sträng2. Sedan använde vi + -operatören för att gå med i de två strängarna och lagra dem i en variabel med namnet hälsning och visade den med hjälp av skriva ut() fungera.

Produktion:

sammanfogar två strängar

Upprepning av sträng

Vi kan upprepa en sträng flera gånger i python med * -operatören. För att till exempel skriva ut strängen "Fosslinux" två gånger måste vi skriva följande kod.

skriva ut ("Fosslinux" * 2)

Produktion:

repetition av strängar

Formatera strängar

Det är enkelt att göra strängformatering i Python. Det finns tre sätt:

1. Gammal formateringsstil

Den gamla formaten för formatering av strängar görs med operatorn%. Vi måste använda speciella symboler som "% s", "% d", "% f", "%.f ”. med strängen och ange sedan informationen som vi vill formatera på den platsen. Låt oss se vilka data som accepteras av ovanstående symboler är.

Se till exempel koden nedan. Du kan kopiera och köra koden i din favorit python IDE.

string1 = "Det är en formaterad sträng med heltal% d"% (1)
string2 = "Det är en formaterad sträng med sträng% s"% ("Fosslinux")
string3 = "Det är en formaterad sträng med flytdata% f"% (1.01)
skriva ut (sträng1)
skriva ut (sträng2)
skriva ut (sträng3)

Produktion:

den gamla stilen för strängformatering i python

Som vi kan se i utdata har vi formaterat strängarna med heltals-, float- och strängdata. Denna strängformateringsmetod är det äldsta sättet, men det används mindre nuförtiden.

2. Med formatet ()

Detta är en ny strängformateringsteknik som introducerades i Python 3. Formaten () -funktionerna tar data som ett argument och ersätter dem i strängen där platshållaren är närvarande. 

Exempel:

string1 = "Det är en formaterad sträng med heltal ".format (1)
string2 = "Det är en formaterad sträng med sträng ".format ("Fosslinux")
string3 = "Det är en formaterad sträng med flytdata ".format (1.01)
skriva ut (sträng1)
skriva ut (sträng2)
skriva ut (sträng3)
print (" är en bra webbplats för lärande och ".format ("FossLinux", "Linux", "Python"))

Vi får den formaterade strängen som utdata när du kör ovanstående kod, som visas i bilden nedan.

strängformatering med format () -funktionen

3. f-strängar

Den senaste tekniken för strängformatering är stränginterpolering eller f-strängar, introducerad i pythons version 3.6. Vi kan ange ett variabelnamn direkt i en f-sträng, och Python-tolk kommer att ersätta variabelnamnet med det datavärde som motsvarar det. F-strängarna börjar med bokstaven f och vi kan injicera data i deras motsvarande positioner direkt. Denna teknik för strängformatering har blivit ganska populär de senaste dagarna. För att se en demonstration av hur den fungerar, kopiera nedanstående kod och kör den i din python IDE.

string1 = f "Det är en formaterad sträng med heltal 1"
string2 = f "Det är en formaterad sträng med sträng 'fosslinux'"
string3 = f "Det är en formaterad sträng med flytdata 0.01 "
skriva ut (sträng1)
skriva ut (sträng2)
skriva ut (sträng3)
a = "Fosslinux"
b = "Linux"
c = "Python"
skriva ut (f "a är en bra webbplats för att lära sig b och c")

Vi använde stränginterpoleringsmetoden för att formatera strängar i ovanstående kod. Strängarna som började med f-karaktären är f-strängar. F-strängen har gjort vårt arbete enkelt och vi kan skriva variablerna direkt i strängarna genom att ge variabler under Platshållare. När du kör ovanstående kod får vi följande utdata.

strängformering med f-strängar

Kontrollera om det finns ett underlag

Ofta kanske vi vill kontrollera en karaktärs existens eller en substring i en sträng. Detta kan göras med hjälp av i och inte i Python-nyckelord. Till exempel, för att kontrollera om Hej finns i strängen Hej världen, vi måste köra följande kod.

x = "hej" i "hej världen"
skriva ut (x)

När du kör ovanstående kod i en python IDE får vi det booleska värdet Sann som en utgång, vilket innebär att understrängen "hej" finns i "hejvärlden".

kolla efter en substring i en sträng

Låt oss se en annan demonstration för att veta hur det fungerar på ett bättre sätt.

string = "FossLinux är en bra webbplats för att lära sig Linux och Python"
skriva ut ("Fosslinux" i sträng)
skriva ut ("FossLinux" i sträng)
tryck ("Foss" i sträng)
tryck ("Pyt" i sträng)
tryck ("hon" i sträng)
skriva ut ("Python" inte i sträng)

Produktion:

kolla efter en delsträng i en sträng med hjälp av i nyckelord

I ovanstående kod har vi använt båda i och den inte i nyckelord för att kontrollera en delsträng i överordnad sträng.

Sträng som en sekvens av tecken

Pythonsträngen är en sekvens av tecken; de liknar nästan alla andra python-ordnade sekvenser som lista, tupel, etc. Vi kan extrahera enskilda tecken från strängarna på många sätt, som att packa upp dem med variabler och indexering som jag kommer att diskutera i nästa ämne. Vi kan packa upp strängarna genom att tilldela dem variabler. För att se hur det fungerar, kopiera bara och kör följande kod i din favorit python IDE.

språk = 'Fosslinux'
# packa upp strängen i variabler
a, b, c, d, e, f, g, h, i = språk
skriva ut (a)
tryck (b)
tryck (c)
tryck (d)
skriva ut (e)
skriva ut (f)
skriva ut (g)
tryck (h)
skriva ut (i)

Produktion:

packa upp tecken med hjälp av variabler

Indexera strängar

Strängindexering är en grundläggande och populär teknik genom vilken vi kan komma åt en strängs karaktär och utföra många strängoperationer mycket enkelt. Vid programmering börjar räkningen med noll (0), så för att få det första tecknet i en sträng måste vi ge noll i indexet. För att se ett praktiskt exempel på indexering, kopiera och kör följande kod i en Python IDE.

string = "Fosslinux"
skriva ut (sträng [0])
tryck (sträng [1])
tryck (sträng [2])
tryck (sträng [3])

I koden ovan skapar vi först en sträng med namnet Fosslinux, och sedan använder vi pythonsträngindexering för att få första, andra, tredje och fjärde tecknet i strängen. Vi får följande utdata i terminalen när vi kör koden.

indexeringssträngar

Python stöder också negativ indexering, vilket är mycket användbart där vi kan börja räkna från höger sida. För att till exempel få det näst sista tecknet i en sträng "Fosslinux" måste vi skriva nedanstående kod.

string = "Fosslinux"
tryck ("Strängens näst sista term är:", sträng [-2])

När vi kör koden får vi den näst sista termen för strängen "Fosslinux", som visas i bilden nedan.

negativ indexering i Python-strängar

Få den sista perioden av en sträng

Ibland kanske vi vill få den sista termen för strängen. Vi har två sätt att göra detta: det första använder negativ indexering och det andra använder len () -funktionen med indexering.

För att få den sista termen för strängen med negativ indexering, titta på koden nedan.

string = "Fosslinux"
print ("Den sista termen för strängen är:", sträng [-1])

Produktion:

sista terminen med negativ indexering

Vi kan också använda len () -funktionen med indexering för att få den sista terminen. För att göra detta måste vi beräkna strängens längd och sedan måste vi hitta tecknet genom att indexera värdet, vilket är en mindre än strängens längd. Se exemplet nedan.

string = "Fosslinux"
längd = len (sträng)
last_index = längd-1
print ("Den sista termen för strängen är:", sträng [last_index])

I koden ovan skapade vi först en sträng och lagrade den i en variabel med namnet sträng. Sedan beräknar vi strängens längd med len () -metoden. Eftersom indexering i python börjar med noll, måste vi subtrahera en från längden. Sedan skickar vi det som ett index till sträng. Således får vi den sista karaktären i strängen. 

Produktion:

sista terminen genom att beräkna längden

Skivsträngar

I Python har vi en fantastisk teknik, en utökad form av indexering som kallas strängskivning. Detta kan användas för att skära en sträng i en substring. För att göra skivningen måste vi ange indexnumret för det första tecknet och det sista tecknet för strängen i strängens index genom att sätta ett semikolon i mitten. För en praktisk demo, se nedanstående exempelkod.

string = "Fosslinux"
tryck (sträng [1: 6])
tryck (sträng [0: 4])

Produktion:

skärande strängar

Hoppar över tecken på skivning

Vi kan också hoppa över tecken medan vi skär en sträng. Under skärning av en sträng har vi följande syntax.

string [start: stop: step]

Start och stopp är standardindexnumren som vi använde i ovanstående syntax hittills. Stegparametern accepterar ett heltal som används för att ge antalet tecken som ska lämnas i varje steg.

Omvänd strängar

Vi kan enkelt vända en sträng med hjälp av skivmetoden. Se till exempel nedanstående kod. Kopiera koden nedan i din Python IDE och kör den.

string = "Fosslinux"
tryck ("Den omvända strängen av", sträng, "är", sträng [:: - 1])

Den här koden kommer att vända strängen “Fosslinux.”När vi kör koden får vi följande utdata.

vändsträng

Escape karaktär i strängar

Escape-karaktärer i programmering är ett utmärkt sätt att lägga till icke-utskrivbara tecken i strängar. För att till exempel lägga till det nya linjetecknet i strängar använder vi flyktecknet "\ n". Se nedanstående kod för en demo.

skriv ut ("\ n \ n \ n Hej \ n \ n Världen")

När vi kör koden får vi följande utdata.

fly karaktärer i strängar

Som vi kan se i koden läggs nya rader till automatiskt istället för “\ n”. Det är där escape-sekvensen spelar in. Det finns många sekvenstecken i python. Jag kommer att lista dem alla här; du kan försöka alla för att se hur de fungerar.

Strängmetoder

Vi har lärt oss många saker om pythonsträngar, men den här delen är mycket mer användbar än någon annan del av den här artikeln. Python levereras med ett stort antal inbyggda funktioner för att arbeta med strängar. Genom att använda dem kan vi enkelt utföra många operationer på strängar. 

Transforming String Cases

Vi har några inbyggda funktioner som kan användas för att omvandla strängfall. Låt oss diskutera dem alla.

sträng.kapitalisera()

Denna metod används för att kapitalisera på målsträngen. När vi använder metoden som sträng.kapitalisera, den kommer att returnera strängen genom att använda den med stora bokstäver, dvs.e., förvandla det första tecknet till versaler och alla andra tecken till små bokstäver. För att se en praktisk demo av dess arbetskopia och köra följande kod i din Python IDE.

string = "fosslinux"
skriva ut (sträng.kapitalisera())
Vi använde kapitalisera() metoden för strängobjektet och kapitalisera det. När vi kör koden får vi följande utdata.
aktiverar en sträng

.övre()

Denna metod används för att omvandla en sträng till versaler, dvs.e., aktiverar alla tecken som finns i strängen. 

Exempel:

string = "Fosslinux"
skriva ut (sträng.övre())

Produktion:

omvandla en sträng till en stor bokstav

sträng.lägre()

Denna metod används för att omvandla en sträng till gemener, dvs.e., ändrar alla tecken som finns i strängen till gemener. 

Exempel:

string = "FOSSLinux"
skriva ut (sträng.lägre())

Produktion:

omvandla en sträng till en stor bokstav

sträng.bytesväska ()

Detta är en utmärkt metod för att byta fallet med tecken i en sträng. Den omvandlar små bokstäver till versaler och vice versa för strängen. För att se hur det fungerar, kopiera bara och kör följande kod.  

string = "FOSSlinux"
skriva ut (sträng.bytesväska ()

Produktion:

byta fall av pythonsträng

sträng.titel()

Återigen är detta en utmärkt metod för strängmanipulering eftersom den omvandlar det första tecknet i varje ord som finns i strängen till versaler. 

Exempel:

string = "Fosslinux är en fantastisk"
skriva ut (sträng.titel())

Produktion:

omvandla sträng till titel

Du kanske har märkt skillnaden mellan kapitalisera() och den titel() metod. De kapitalisera() metoden använder endast det första tecknet i det första ordet i strängen, medan titel() metoden använder det första tecknet i varje ord som finns i strängen.

Karaktärsklassificering

Vi har också metoder för att kontrollera en strängs versaler, oavsett om det är versaler, gemener osv. Låt oss diskutera dem i korthet med exempel.

sträng.isalnum ()

Denna metod används för att kontrollera om en sträng bara innehåller alfanumeriska siffror eller inte, i.e., alla dess tecken måste vara siffror eller alfabet men inga andra tecken, inklusive blanksteg. 

Exempel:

string1 = "Fosslinux123"
string2 = "Fosslinux är en fantastisk"
string3 = "Fosslinux @ # 123"
skriva ut (sträng1.isalnum ()) # innehåller endast alfabet och siffror
skriva ut (sträng2.isalnum ()) # innehåller mellanslag
skriva ut (sträng3.isalnum ()) # innehåller specialtecken

Produktion:

söka efter alfanumeriska nummer i en sträng

sträng.isalpha ()

Denna strängmetod liknar ovanstående metod, men den kontrollerar endast för alfabet, inte siffrorna i strängen, vilket innebär att strängen endast får innehålla alfabet. Kör till exempel följande kod.

string1 = "Fosslinux123"
string2 = "Fosslinux"
skriva ut (sträng1.isalpha ()) # innehåller alfabet och siffror
skriva ut (sträng2.isalpha ()) # innehåller endast alfabetet

Vi får False för den första eftersom den innehåller siffror och vi blir True för nästa eftersom den bara innehåller alfabet. 

Produktion:

söker efter alfabet i strängar

sträng.isdigit ()

Denna metod liknar ovanstående, men istället för alfabet kontrollerar den om strängen bara består av siffror. Det returnerar sant om varje tecken som finns i en sträng är siffror; annars returnerar False.

sträng.isidentifier ()

Detta är också en bra strängmetod för python. Genom att använda den här metoden kan vi kontrollera om en sträng är en giltig pythonidentifierare eller inte. Jag har diskuterat reglerna för att välja den giltiga pythonidentifieraren i grunderna i pythonhandledningen. 

Exempel:

string1 = "Fosslinux123"
string2 = "123Fosslinux"
string3 = "_Fosslinux"
string4 = "Fosslinux @ 1234"
skriva ut (sträng1.isidentifier ()) # True
skriva ut (sträng2.isidentifier ()) # False (startade med siffror)
skriva ut (sträng3.isidentifier ()) # True
skriva ut (sträng4.isidentifier ()) # False (innehåller specialtecken @)

Produktion:

söker efter identifierare i sträng

sträng.islower ()

Denna strängmetod kontrollerar om alla strängtecken är små. Om ja, returnerar det True else returnerar False.

sträng.isupper ()

Denna strängmetod kontrollerar om alla tecken som finns i en sträng är versaler. Om ja, så returnerar det True else returnerar False.

sträng.titel ()

De titel () metoden för strängen kommer att returnera True om det första alfabetet i alla ord som finns i en sträng är versaler och alla andra tecken är små bokstäver.

sträng.kan skrivas ut ()

Det returnerar sant om alla tecken som finns i strängen kan skrivas ut, dvs.e., icke-flyktiga karaktärer; annars returnerar det Falskt. För att se hur det fungerar, kör följande kod.

string1 = "Fosslinux"
string2 = "\ nFosslinux"
skriva ut (sträng1.isprintable ()) # True
skriva ut (sträng2.isprintable ()) # False (Den innehåller det nya radtecknet)

Produktion:

söker efter utskrivbara tecken

sträng.isspace ()

De sträng.isspace () metoden returnerar True om alla strängtecken är vita blanksteg; annars kommer det att återvända Falskt.

Andra viktiga funktioner

sträng.räkna()

Count () -metoden för String-objektet används för att få antalet gånger ett angivet värde inträffar. 

Exempel:

string = "Fosslinux"
skriva ut (sträng.räkna ("s"))

I ovanstående kod använde vi räkna() metod för att få det antal gånger som tecknet “s” visas i strängen “Fosslinux.”

Produktion:

räknar angivna tecken i sträng

sträng.börjar med()

Denna strängmetod kontrollerar om strängen börjar med den understräng som anges i metodens argument. För att se en praktisk demonstration av hur den fungerar, kopiera och kör nedanstående kod i en Python IDE.

string = "Fosslinux"
skriva ut (sträng.startar med ("F"))
skriva ut (sträng.startar med ("Fo"))
skriva ut (sträng.startswith ("Foss"))
skriva ut (sträng.startswith ("Fosss"))

När vi kör ovanstående kod kommer vi att få True för de första tre medan den sista returnerar False, som visas i nedanstående utgångsbild.

strängen börjar med

sträng.slutar med()

Detta liknar ovanstående metod, men skillnaden är att medan den föregående kontrollerar för början av en sträng, kommer den att kontrollera i slutet av strängen.

sträng.hitta()

String-objektets find () -metod är en viktig metod för att hitta ett tecken eller en sträng i en sträng. Den accepterar substringen som ett argument och returnerar substringindexet om det finns i strängen; annars returnerar -1. 

Exempel:

string = "Fosslinux"
skriva ut (sträng.hitta ("lin"))

När du kör ovanstående kod får vi utdata som 4, vilket är startindex för understrängen "lin" i "Fosslinux.”

string find-funktion

sträng.byta ut()

Syntaxen för denna metod ersätts (gammal, ny). Det krävs två argument; den ena är den gamla substringen, och den nya är den substring. Den ersätter allt gammalt underlag med det nya underlaget i hela strängen.

Exempel:

string = "Fosslinux"
skriva ut (sträng.ersätt ("Foss", ""))
Vi får bara Linux skrivs ut på skärmen som Foss blir ersatt med blanksteg när du kör ovanstående kod.  Produktion: 
strängersättningsfunktion

sträng.dela()

Denna metod tar avgränsaren som ett argument, delar upp strängen enligt avgränsaren och returnerar en pythonlista. 

Exempel:

string = "Fosslinux är ett bra ställe att börja lära sig linux och python"
skriva ut (sträng.dela(" "))
När du kör ovanstående kod får vi en lista över strängorden. Eftersom vi använde delningsfunktionen med blanksteg som ett argument, så delas strängen när den får blanksteg.  Produktion: 
splitfunktion för pythonsträng

sträng.remsa()

Denna metod används för att ta bort alla ledande och efterföljande vita utrymmen från strängen.

Slutsats

Det handlar om strängar och dess användning i Python. Genom att gå igenom handledningen får du en uppfattning om hur användbart det fungerar med strängar i python. Du kanske också vill se självstudien om att använda för loop i python, en ultimat loop för iteration i python. Slutligen, innan vi åker, kanske du vill titta på metoden för att vända en sträng i Python, vilket är användbart när du hanterar strängar.

Användbara verktyg för Linux-spelare
Om du gillar att spela spel på Linux är chansen att du kan ha använt appar och verktyg som Wine, Lutris och OBS Studio för att förbättra spelupplevels...
HD Remastered Games för Linux som aldrig tidigare hade en Linux-version
Många spelutvecklare och utgivare kommer med HD-remaster av gamla spel för att förlänga livstiden för franchisen, snälla fans som begär kompatibilitet...
Hur man använder AutoKey för att automatisera Linux-spel
AutoKey är ett verktyg för desktopautomatisering för Linux och X11, programmerat i Python 3, GTK och Qt. Med hjälp av dess skript och MACRO-funktional...