Python - Strings
Strings behoren tot de meest populaire typen in Python. We kunnen ze eenvoudig maken door tekens tussen aanhalingstekens te plaatsen. Python behandelt enkele aanhalingstekens hetzelfde als dubbele aanhalingstekens. Strings maken is net zo eenvoudig als het toewijzen van een waarde aan een variabele. Bijvoorbeeld −
var1 = 'Hello World!' var2 = "Python Programming"
Toegang tot waarden in strings
Python ondersteunt geen tekentype; deze worden behandeld als strings met lengte één, dus ook beschouwd als een substring.
Om toegang te krijgen tot subtekenreeksen, gebruikt u de vierkante haken om samen met de index of indices te snijden om uw subtekenreeks te verkrijgen. Bijvoorbeeld −
Live demo#!/usr/bin/python var1 = 'Hello World!' var2 = "Python Programming" print "var1[0]: ", var1[0] print "var2[1:5]: ", var2[1:5]
Wanneer de bovenstaande code wordt uitgevoerd, levert dit het volgende resultaat op −
var1[0]: H var2[1:5]: ytho
Snaren bijwerken
U kunt een bestaande string "updaten" door een variabele (opnieuw) toe te wijzen aan een andere string. De nieuwe waarde kan gerelateerd zijn aan de vorige waarde of aan een geheel andere string. Bijvoorbeeld −
Live demo#!/usr/bin/python var1 = 'Hello World!' print "Updated String :- ", var1[:6] + 'Python'
Wanneer de bovenstaande code wordt uitgevoerd, levert dit het volgende resultaat op −
Updated String :- Hello Python
Escape-tekens
De volgende tabel is een lijst met escapetekens of niet-afdrukbare tekens die kunnen worden weergegeven met backslash-notatie.
Een escape-personage wordt geïnterpreteerd; in strings met zowel enkele aanhalingstekens als dubbele aanhalingstekens.
Backslash-notatie | Hexadecimaal teken | Beschrijving |
---|---|---|
\a | 0x07 | Bel of alarm |
\b | 0x08 | Backspace |
\cx | Control-x | |
\C-x | Control-x | |
\e | 0x1b | Ontsnappen |
\f | 0x0c | Formfeed |
\M-\C-x | Meta-Control-x | |
\n | 0x0a | Nieuwe regel |
\nnn | Octale notatie, waarbij n in het bereik van 0,7 ligt | |
\r | 0x0d | Koetsretour |
\s | 0x20 | Ruimte |
\t | 0x09 | Tabblad |
\v | 0x0b | Verticaal tabblad |
\x | Karakter x | |
\xnn | Hexadecimale notatie, waarbij n in het bereik van 0,9, a.f of A.F ligt |
Snaar speciale operators
Stel tekenreeksvariabele a bevat 'Hallo' en variabele b houdt 'Python' vast, dan −
Operator | Beschrijving | Voorbeeld |
---|---|---|
+ | Aaneenschakeling - Voegt waarden toe aan weerszijden van de operator | a + b geeft HelloPython |
* | Herhaling - Maakt nieuwe tekenreeksen, waarbij meerdere exemplaren van dezelfde tekenreeks worden samengevoegd | a*2 geeft -HelloHello |
[] | Slice - Geeft het teken uit de opgegeven index | a[1] geeft e |
[ :] | Bereiksegment - Geeft de tekens uit het opgegeven bereik | a[1:4] geeft ell |
in | Lidmaatschap - Retourneert waar als een teken in de gegeven tekenreeks voorkomt | H in a geeft 1 |
niet in | Lidmaatschap - Retourneert waar als een teken niet bestaat in de gegeven string | M niet in een testament geeft 1 |
r/R | Raw String - Onderdrukt de werkelijke betekenis van Escape-tekens. De syntaxis voor onbewerkte tekenreeksen is precies hetzelfde als voor normale tekenreeksen, met uitzondering van de onbewerkte tekenreeksoperator, de letter "r", die voorafgaat aan de aanhalingstekens. De "r" kan een kleine letter (r) of een hoofdletter (R) zijn en moet onmiddellijk voor het eerste aanhalingsteken worden geplaatst. | print r'\n' prints \n en print R'\n'prints \n |
% | Formaat - Voert tekenreeksopmaak uit | Zie in het volgende gedeelte |
Opmaakoperator voor tekenreeksen
Een van de coolste functies van Python is de tekenreeksopmaakoperator %. Deze operator is uniek voor strings en compenseert het pakket met functies uit de printf()-familie van C. Hieronder volgt een eenvoudig voorbeeld −
Live demo#!/usr/bin/python print "My name is %s and weight is %d kg!" % ('Zara', 21)
Wanneer de bovenstaande code wordt uitgevoerd, levert dit het volgende resultaat op −
My name is Zara and weight is 21 kg!
Hier is de lijst met de complete set symbolen die samen met % −
. kunnen worden gebruiktSymbool opmaken | Conversie |
---|---|
%c | karakter |
%s | stringconversie via str() voorafgaand aan opmaak |
%i | getekend decimaal geheel getal |
%d | getekend decimaal geheel getal |
%u | niet-ondertekend decimaal geheel getal |
%o | octaal geheel getal |
%x | hexadecimaal geheel getal (kleine letters) |
%X | hexadecimaal geheel getal (HOGE letters) |
%e | exponentiële notatie (met kleine 'e') |
%E | exponentiële notatie (met HOOFDLETTERS 'E') |
%f | drijvende komma reëel getal |
%g | de kortere van %f en %e |
%G | de kortere van %f en %E |
Andere ondersteunde symbolen en functies staan vermeld in de volgende tabel −
Symbool | Functionaliteit |
---|---|
* | argument specificeert breedte of precisie |
- | linker uitvulling |
+ | toon het teken |
laat een spatie voor een positief getal | |
# | voeg de octale voorloopnul ( '0' ) of hexadecimale voorloop '0x' of '0X' toe, afhankelijk van of 'x' of 'X' werden gebruikt. |
0 | pad van links met nullen (in plaats van spaties) |
% | '%%' laat je achter met een enkele letterlijke '%' |
(var) | toewijzingsvariabele (woordenboekargumenten) |
mn | m is de minimale totale breedte en n is het aantal cijfers dat achter de komma moet worden weergegeven (indien van toepassing) |
Drievoudige aanhalingstekens
De drievoudige aanhalingstekens van Python komen te hulp doordat tekenreeksen meerdere regels kunnen overspannen, inclusief letterlijke NEWLINE's, TAB's en andere speciale tekens.
De syntaxis voor drievoudige aanhalingstekens bestaat uit drie opeenvolgende enkele of dubbele aanhalingstekens.
Live demo#!/usr/bin/python para_str = """this is a long string that is made up of several lines and non-printable characters such as TAB ( \t ) and they will show up that way when displayed. NEWLINEs within the string, whether explicitly given like this within the brackets [ \n ], or just a NEWLINE within the variable assignment will also show up. """ print para_str
Wanneer de bovenstaande code wordt uitgevoerd, levert dit het volgende resultaat op. Merk op hoe elk speciaal teken is geconverteerd naar zijn gedrukte vorm, tot aan de laatste NEWLINE aan het einde van de string tussen de "up". en het sluiten van drievoudige aanhalingstekens. Merk ook op dat NEWLINE's voorkomen met een expliciete regelterugloop aan het einde van een regel of met de escape-code (\n) −
this is a long string that is made up of several lines and non-printable characters such as TAB ( ) and they will show up that way when displayed. NEWLINEs within the string, whether explicitly given like this within the brackets [ ], or just a NEWLINE within the variable assignment will also show up.
Ruwe tekenreeksen behandelen de backslash helemaal niet als een speciaal teken. Elk teken dat je in een onbewerkte tekenreeks plaatst, blijft zoals je het hebt geschreven −
Live demo#!/usr/bin/python print 'C:\\nowhere'
Wanneer de bovenstaande code wordt uitgevoerd, levert dit het volgende resultaat op −
C:\nowhere
Laten we nu gebruik maken van onbewerkte string. We zouden expressie in r'expression' zetten als volgt −
Live demo#!/usr/bin/python print r'C:\\nowhere'
Wanneer de bovenstaande code wordt uitgevoerd, levert dit het volgende resultaat op −
C:\\nowhere
Unicode-tekenreeks
Normale strings in Python worden intern opgeslagen als 8-bits ASCII, terwijl Unicode-strings worden opgeslagen als 16-bits Unicode. Dit zorgt voor een meer gevarieerde reeks tekens, inclusief speciale tekens uit de meeste talen ter wereld. Ik beperk mijn behandeling van Unicode-strings tot het volgende −
Live demo#!/usr/bin/python print u'Hello, world!'
Wanneer de bovenstaande code wordt uitgevoerd, levert dit het volgende resultaat op −
Hello, world!
Zoals je kunt zien, gebruiken Unicode-tekenreeksen het voorvoegsel u, net zoals onbewerkte tekenreeksen het voorvoegsel r gebruiken.
Ingebouwde stringmethodes
Python bevat de volgende ingebouwde methoden om strings te manipuleren −
Sr.nr. | Methoden met beschrijving |
---|---|
1 | hoofdletter() Begint met hoofdletters van tekenreeks |
2 | center(breedte, fillchar) Retourneert een met spatie gevulde tekenreeks met de originele tekenreeks gecentreerd op een totaal van breedtekolommen. |
3 | count(str, beg=0,end=len(string)) Telt hoe vaak str voorkomt in string of in een substring van string als beginindex beg en eindigend indexeinde worden gegeven. |
4 | decoderen(encoding='UTF-8',errors='strict') Decodeert de tekenreeks met behulp van de codec die is geregistreerd voor codering. codering is standaard ingesteld op de standaard tekenreekscodering. |
5 | coderen(encoding='UTF-8',errors='strict') Retourneert gecodeerde tekenreeksversie van tekenreeks; bij fouten is de standaardwaarde om een ValueError op te heffen, tenzij fouten worden gegeven met 'negeren' of 'vervangen'. |
6 | endswith(suffix, beg=0, end=len(string)) Bepaalt of string of een substring van string (als beginindex beg en eindigend indexeinde zijn gegeven) eindigt met achtervoegsel; geeft true terug als dat zo is en anders false. |
7 | uitbreidentabbladen(tabformaat=8) Breidt tabs in string uit tot meerdere spaties; standaard ingesteld op 8 spaties per tabblad als de tabgrootte niet is opgegeven. |
8 | find(str, beg=0 end=len(string)) Bepaal of str voorkomt in string of in een substring van string als startindex beg en end index end worden gegeven index indien gevonden en -1 anders. |
9 | index(str, beg=0, end=len(string)) Hetzelfde als find(), maar genereert een uitzondering als str niet gevonden is. |
10 | isalnum() Retourneert waar als tekenreeks ten minste 1 teken heeft en alle tekens alfanumeriek zijn en anders onwaar. |
11 | isalpha() Retourneert true als string ten minste 1 teken heeft en alle tekens alfabetisch zijn en anders false. |
12 | isdigit() Retourneert true als string alleen cijfers bevat en anders false. |
13 | islower() Retourneert true als string ten minste 1 hoofdletter heeft en alle hoofdletters in kleine letters en anders false. |
14 | isnumeriek() Retourneert waar als een unicode-tekenreeks alleen numerieke tekens bevat en anders onwaar. |
15 | isspace() Retourneert true als string alleen spatietekens bevat en anders false. |
16 | istitel() Retourneert true als string correct is "titlecased" en anders false. |
17 | isupper() Retourneert true als string ten minste één hoofdletter heeft en alle hoofdletters in hoofdletters en anders false. |
18 | meedoen(seq) Voegt (samengevoegd) de tekenreeksrepresentaties van elementen in volgorde seq samen tot een tekenreeks, met scheidingstekenreeks. |
19 | len(string) Geeft de lengte van de tekenreeks terug |
20 | ljust(breedte[, fillchar]) Retourneert een tekenreeks met spatie en de originele tekenreeks links uitgelijnd tot een totaal van breedtekolommen. |
21 | lager() Converteert alle hoofdletters in string naar kleine letters. |
22 | lstrip() Verwijdert alle voorloopspaties in string. |
23 | maketrans() Retourneert een vertaaltabel die moet worden gebruikt in de vertaalfunctie. |
24 | max(str) Retourneert het maximale alfabetische teken van de tekenreeks str. |
25 | min(str) Retourneert het minimale alfabetische teken van de tekenreeks str. |
26 | vervangen(oud, nieuw [, max]) Vervangt alle exemplaren van oud in string door nieuw of maximaal max. als er max is opgegeven. |
27 | rfind(str, beg=0,end=len(string)) Hetzelfde als find(), maar zoek achteruit in string. |
28 | rindex(str, beg=0, end=len(string)) Hetzelfde als index(), maar zoek achteruit in string. |
29 | rjust(breedte,[, fillchar]) Retourneert een met spatie gevulde tekenreeks met de originele tekenreeks rechts uitgelijnd tot een totaal van breedtekolommen. |
30 | rstrip() Verwijdert alle achterliggende witruimte van tekenreeks. |
31 | split(str="", num=string.count(str)) Splitst string volgens scheidingsteken str (spatie indien niet opgegeven) en retourneert een lijst met substrings; opgesplitst in maximaal aantal substrings, indien opgegeven. |
32 | splitlines( num=string.count('\n')) Splitst string bij alle (of aantal) NEWLINE's en geeft een lijst terug van elke regel met verwijderde NEWLINE's. |
33 | startswith(str, beg=0,end=len(string)) Bepaalt of string of een substring van string (als beginindex beg en eindigend indexeinde zijn gegeven) begint met substring str; geeft true terug als dat zo is en anders false. |
34 | strip([tekens]) Voert zowel lstrip() als rstrip() uit op string. |
35 | swapcase() Keert hoofdletters om voor alle letters in string. |
36 | titel() Retourneert een "title-cased" versie van string, dat wil zeggen, alle woorden beginnen met hoofdletters en de rest zijn kleine letters. |
37 | vertalen(tabel, deletechars="") Vertaalt string volgens vertaaltabel str (256 tekens), waarbij die in de del string worden verwijderd. |
38 | bovenste() Converteert kleine letters in string naar hoofdletters. |
39 | zfill (breedte) Retourneert de oorspronkelijke tekenreeks met links opgevuld met nullen tot een totaal van breedtetekens; bedoeld voor getallen, behoudt zfill() elk gegeven teken (min één nul). |
40 | isdecimaal() Retourneert true als een unicode-tekenreeks alleen decimale tekens bevat en anders false. |
Python
- C#-tekenreeks
- Python-operators
- Python-woordenboek
- Java-strings
- Python-strings:vervangen, samenvoegen, splitsen, omkeren, hoofdletters en kleine letters
- Python String strip() Functie met VOORBEELD
- Python String count() met VOORBEELDEN
- Python String format() Leg uit met VOORBEELDEN
- Python-tekenreekslengte | len() methode Voorbeeld
- Methode Python String find() met voorbeelden
- Enumerate() Functie in Python:Loop, Tuple, String (voorbeeld)