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.
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.
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:
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ä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:
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:
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.
- % s: Det accepterar strängar eller andra data med strängrepresentation som siffror.
- % d:Den används för att ge heltalens data i en sträng.
- % f:Den används för flytande nummer.
- %.f: Den används för flytpunktsnummer med fast precision.
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:
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.
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.
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".
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:
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:
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.
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.
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:
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:
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:
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.
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.
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.
- \ ': Det används för att ge ett enda citat i en sträng. Som på vissa ställen kan vi inte ge enstaka offert direkt.
- \\: Denna karaktär används för att representera backslash, eftersom vi på många ställen inte kan använda \ direkt.
- \ n: Denna karaktär representerar det nya linjetecknet som lägger till en ny rad.
- \ r: representerar en vagnretur.
- \ t: representerar en flik.
- \ b: representerar en bakåtstegstecken.
- \ f: Denna escape-sekvens används för att representera en formfeed.
- \ ooo: Denna karaktär används för att representera oktalt värde.
- \ xhh: Detta tecken används för att representera Hexadecimalt värde.
- \ a: Denna karaktär används för att varna.
- \ s: Denna karaktär används för att ge ett utrymme.
- \ v: representerar en vertikal flik.
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"Vi använde kapitalisera() metoden för strängobjektet och kapitalisera det. När vi kör koden får vi följande utdata.
skriva ut (sträng.kapitalisera())
.ö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:
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:
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:
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:
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:
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:
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:
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:
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:
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ä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.”
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"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:
skriva ut (sträng.ersätt ("Foss", ""))
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"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:
skriva ut (sträng.dela(" "))
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.