Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> Python

Python Strings Beheersen: Aanmaken, Benaderen en Manipuleren

Strings Aanmaken

Strings zijn onder de meest populaire typen in Python. We kunnen ze eenvoudig aanmaken door karakters tussen aanhalingstekens te plaatsen. Python behandelt enkele quotes hetzelfde als dubbele quotes. Strings aanmaken is zo simpel als een waarde toewijzen aan een variabele. Bijvoorbeeld:

var1 = 'Hello World!'
var2 = "Python Programmeren"

Waarden in Strings Benaderen

Python ondersteunt geen karaktertype; deze worden behandeld als strings van lengte één, dus ook als substring.

Om substrings te benaderen, gebruik je de vierkante haken voor slicing samen met de index of indices om je substring te verkrijgen. Bijvoorbeeld:

#!/usr/bin/python
var1 = 'Hello World!'
var2 = "Python Programmeren"
print "var1[0]: ", var1[0]
print "var2[1:5]: ", var2[1:5]

Wanneer de bovenstaande code wordt uitgevoerd, produceert dit het volgende resultaat:

var1[0]: H
var2[1:5]: ytho

Strings Updaten

Je kunt een bestaande string "updaten" door (her)toewijzing van een variabele aan een andere string. De nieuwe waarde kan gerelateerd zijn aan de vorige waarde of een volledig andere string. Bijvoorbeeld:

#!/usr/bin/python
var1 = 'Hello World!'
print "Bijgewerkte String :- ", var1[:6] + 'Python'

Wanneer de bovenstaande code wordt uitgevoerd, produceert dit het volgende resultaat:

Bijgewerkte String :- Hello Python

Escape Karakters

De volgende tabel toont een lijst van escape- of niet-printbare karakters die vertegenwoordigd kunnen worden met backslash-notatie.

Een escape-karakter wordt geïnterpreteerd; in zowel enkele als dubbele quotes.

Backslash-notatie Hexadecimaal karakter Beschrijving
\a0x07Bel of alert
\b0x08Backspace
\cx Control-x
\C-x Control-x
\e0x1bEscape
\f0x0cFormfeed
\M-\C-x Meta-Control-x
\n0x0aNieuwe regel (Newline)
\nnn Octale notatie, waar n in bereik 0-7
\r0x0dCarriage return
\s0x20Spatie
\t0x09Tab
\v0x0bVerticale tab
\x Karakter x
\xnn Hexadecimale notatie, waar n in bereik 0-9, a-f, of A-F

String Speciale Operatoren

Neem aan dat string-variabele a 'Hello' bevat en variabele b 'Python', dan:

Operator Beschrijving Voorbeeld
+Concatenatie – Voegt waarden aan beide kanten van de operator toe.a + b geeft HelloPython
*Herhaling – Maakt nieuwe strings, concateneert meerdere kopieën van dezelfde string.a*2 geeft HelloHello
[]Slice – Geeft het karakter vanaf de gegeven index.a[1] geeft e
[ : ]Range Slice – Geeft de karakters uit het gegeven bereik.a[1:4] geeft ell
inLidmaatschap – Retourneert true als een karakter in de string bestaat.H in a geeft 1
not inLidmaatschap – Retourneert true als een karakter niet in de string bestaat.M not in a geeft 1
r/RRaw String – Onderdrukt de werkelijke betekenis van escape-karakters. Syntaxis is hetzelfde als normale strings, met uitzondering van de raw string operator, de letter "r," die de aanhalingstekens voorafgaat. De "r" kan lowercase (r) of uppercase (R) zijn en moet direct voor het eerste aanhalingsteken staan.print r'\n' print \n en print R'\n' print \n
%Format – Voert string-formattering uit.Zie volgende sectie

String Formatting Operator

Een van Python's coolste features is de string-format-operator %. Deze operator is uniek voor strings en compenseert het gebrek aan functies uit C's printf()-familie. Hier is een simpel voorbeeld:

#!/usr/bin/python
print "Mijn naam is %s en gewicht is %d kg!" % ('Zara', 21)

Wanneer de bovenstaande code wordt uitgevoerd, produceert dit het volgende resultaat:

Mijn naam is Zara en gewicht is 21 kg!

Hier is de volledige lijst met symbolen die samen met % gebruikt kunnen worden:

Format Symbool Conversie
%ckarakter
%sstring conversie via str() voor formattering
%igesigneerd decimaal integer
%dgesigneerd decimaal integer
%uongezigneerd decimaal integer
%ooctaal integer
%xhexadecimaal integer (lowercase letters)
%Xhexadecimaal integer (UPPERCASE letters)
%eexponentiële notatie (met lowercase 'e')
%Eexponentiële notatie (met UPPERCASE 'E')
%ffloating-point reëel getal
%gde kortere van %f en %e
%Gde kortere van %f en %E

Andere ondersteunde symbolen en functionaliteit:

Symbool Functionaliteit
*argument specificeert breedte of precisie
-links uitlijning
+teken weergeven
<sp>lege ruimte voor positief getal
#voeg octale leidende nul ('0') of hexadecimale leidende '0x'/'0X' toe
0vul links op met nullen (ipv spaties)
%'%%' laat je met een enkele letterlijke '%'
(var)mapping variabele (dictionary argumenten)
m.n.m is minimum totale breedte, n is aantal cijfers na decimaal punt

Tripple Quotes

Python's tripple quotes lossen het probleem op door strings over meerdere regels te laten lopen, inclusief letterlijke NEWLINEs, TABs, en andere speciale karakters.

De syntaxis voor tripple quotes bestaat uit drie opeenvolgende enkele of dubbele quotes.

#!/usr/bin/python
para_str = """dit is een lange string die bestaat uit verschillende regels
en niet-printbare karakters zoals TAB ( \t ) en ze zullen zo getoond worden.
NEWLINEs binnen de string, of expliciet gegeven zoals binnen de haakjes [ \n ],
of gewoon een NEWLINE binnen de variabele-toewijzing zullen ook verschijnen."""
print para_str

Wanneer de bovenstaande code wordt uitgevoerd, produceert dit het volgende resultaat. Let op hoe elk speciaal karakter geconverteerd is naar de afgedrukte vorm, tot de laatste NEWLINE aan het einde van de string tussen "up." en de sluitende tripple quotes. Ook let op dat NEWLINEs voorkomen met expliciete carriage return aan het einde van een regel of de escape-code (\n):

dit is een lange string die bestaat uit verschillende regels
en niet-printbare karakters zoals TAB ( ) en ze zullen zo getoond worden.
NEWLINEs binnen de string, of expliciet gegeven zoals binnen de haakjes [ ], of gewoon een NEWLINE binnen de variabele-toewijzing zullen ook verschijnen.

Raw strings behandelen de backslash helemaal niet als speciaal karakter. Elk karakter dat je in een raw string zet, blijft zoals je het schreef:

#!/usr/bin/python
print 'C:\\nowhere'

Wanneer de bovenstaande code wordt uitgevoerd, produceert dit het volgende resultaat:

C:\nowhere

Nu laten we raw string gebruiken. We zetten de expressie in r'expression' als volgt:

#!/usr/bin/python
print r'C:\\nowhere'

Wanneer de bovenstaande code wordt uitgevoerd, produceert dit het volgende resultaat:

C:\\nowhere

Unicode String

Normale strings in Python worden intern opgeslagen als 8-bit ASCII, terwijl Unicode-strings opgeslagen worden als 16-bit Unicode. Dit stelt een meer gevarieerde set karakters toe, inclusief speciale karakters uit de meeste talen ter wereld. Ik beperk mijn behandeling van Unicode-strings tot het volgende:

#!/usr/bin/python
print u'Hello, world!'

Wanneer de bovenstaande code wordt uitgevoerd, produceert dit het volgende resultaat:

Hello, world!

Zoals je ziet, gebruiken Unicode-strings het prefix u, net als raw strings het prefix r gebruiken.

Ingebouwde String Methodes

Python bevat de volgende ingebouwde methodes om strings te manipuleren:

Nr. Methodes met Beschrijving
1capitalize()

Kapitaliseert eerste letter van string.

2center(width, fillchar)

Retourneert een met spaties gevulde string met de originele string gecentreerd tot een totaal van width kolommen.

3count(str, beg=0, end=len(string))

Telt hoe vaak str in string of substring voorkomt als start-index beg en eind-index end gegeven zijn.

4decode(encoding='UTF-8', errors='strict')

Decodeert de string met de codec geregistreerd voor encoding. encoding defaults naar standaard string encoding.

5encode(encoding='UTF-8', errors='strict')

Retourneert gecodeerde string-versie; bij fout standaard ValueError tenzij errors 'ignore' of 'replace' is.

6endswith(suffix, beg=0, end=len(string))

Bepaalt of string of substring (met gegeven start/end index) eindigt met suffix; true als zo, anders false.

7expandtabs(tabsize=8)

Vergroot tabs in string naar meerdere spaties; standaard 8 spaties per tab als tabsize niet gegeven.

8find(str, beg=0, end=len(string))

Bepaalt of str in string of substring voorkomt (met gegeven indices); retourneert index als gevonden, -1 anders.

9index(str, beg=0, end=len(string))

Zelfde als find(), maar gooit exception als str niet gevonden.

10isalnum()

True als string minstens 1 karakter heeft en alle karakters alfanumeriek zijn, anders false.

11isalpha()

True als string minstens 1 karakter heeft en alle karakters alfabetisch zijn, anders false.

12isdigit()

True als string alleen cijfers bevat, anders false.

13islower()

True als string minstens 1 gecaseerd karakter heeft en alle gecaseerde karakters lowercase zijn, anders false.

14isnumeric()

True als een unicode-string alleen numerieke karakters bevat, anders false.

15isspace()

True als string alleen whitespace-karakters bevat, anders false.

16istitle()

True als string correct "getiteld" is, anders false.

17isupper()

True als string minstens één gecaseerd karakter heeft en alle gecaseerde karakters uppercase zijn, anders false.

18join(seq)

Voegt (concateneert) de string-representaties van elementen in sequence seq tot een string, met separator-string.

19len(string)

Retourneert de lengte van de string.

20ljust(width[, fillchar])

Retourneert een met spaties gevulde string met de originele string links uitgelijnd tot width kolommen.

21lower()

Converteert alle hoofdletters in string naar kleine letters.

22lstrip()

Verwijdert alle leading whitespace in string.

23maketrans()

Retourneert een vertaaltabel voor gebruik in translate-functie.

24max(str)

Retourneert het maximaal alfabetische karakter uit string str.

25min(str)

Retourneert het minimaal alfabetische karakter uit string str.

26replace(old, new[, max])

Vervangt alle voorkomens van old in string met new of maximaal max voorkomens als max gegeven.

27rfind(str, beg=0, end=len(string))

Zelfde als find(), maar zoekt achteruit in string.

28rindex(str, beg=0, end=len(string))

Zelfde als index(), maar zoekt achteruit in string.

29rjust(width[, fillchar])

Retourneert een met spaties gevulde string met de originele string rechts uitgelijnd tot width kolommen.

30rstrip()

Verwijdert alle trailing whitespace van string.

31split(str="", num=string.count(str))

Splitst string volgens delimiter str (spatie als niet gegeven) en retourneert lijst van substrings; max num substrings als gegeven.

32splitlines(num=string.count('\n'))

Splitst string op alle (of num) NEWLINEs en retourneert lijst van elke regel zonder NEWLINEs.

33startswith(str, beg=0, end=len(string))

Bepaalt of string of substring (met gegeven indices) begint met substring str; true als zo, anders false.

34strip([chars])

Voert zowel lstrip() als rstrip() uit op string.

35swapcase()

Keert case om voor alle letters in string.

36title()

Retourneert "getitelde" versie van string: alle woorden beginnen met hoofdletter, rest lowercase.

37translate(table, deletechars="")

Vertaalt string volgens vertaaltabel str(256 chars), verwijdert die in del-string.

38upper()

Converteert kleine letters in string naar hoofdletters.

39zfill(width)

Retourneert originele string links opgevuld met nullen tot totaal width karakters; bedoeld voor getallen, zfill() behoudt eventueel teken (min één nul).

40isdecimal()

True als een unicode-string alleen decimale karakters bevat, anders false.

Python

  1. C# Strings: Fundamentals, Operaties & Geavanceerde Technieken
  2. Python Operators onder de knie krijgen: Een uitgebreide gids
  3. Python-dictionaries beheersen: aanmaken, manipuleren en geavanceerde technieken
  4. Python-stringoperaties beheersen: Replace, Join, Split, Reverse en case-conversie
  5. Python's strip()-methode beheersen: Uitgebreide handleiding & praktische voorbeelden
  6. Python's str.count() beheersen: Karakters & substrings tellen met voorbeelden
  7. Python `format()` strings beheersen met duidelijke voorbeelden
  8. Python len(): Praktische handleiding voor het meten van objectlengtes
  9. Python's String.find()-methode beheersen: Syntaxis, voorbeelden & alternatieven
  10. Python's enumerate() meesteren: lussen met indices voor lijsten, tuples, strings en dictionaries
  11. Java Strings beheersen: aanmaken, methodes en best practices