Python Data Type - String

  1. Maak strings in Python
  2. Toegang tot elementen van strings
  3. Python-stringbewerkingen
  4. Ingebouwde functies van toepassing op snaren
  5. Python String-opmaak
  6. De stringmethode format()

In dit gedeelte behandelen we het gegevenstype Python String.

Een tekenreeks is een reeks tekens, vertegenwoordigd door binaire gegevens in de computer. En in Python is een string een verzameling unicode tekens.

info

Python Strings zijn onveranderlijk.

Maak strings in Python

Een tekenreeks kan worden gemaakt met enkele of dubbele aanhalingstekens. Een string met meerdere regels kan ook worden gemaakt met behulp van drievoudige aanhalingstekens.

x = "String of characters"
x = """Multiline
string"""

Toegang tot elementen van strings

Snijoperator [] wordt gebruikt voor toegang tot tekens van tekenreeksen. De index begint vanaf 0 als andere Python-gegevenstypen.

>>> x = 'Python Programming'
>>> print('x[0] =', x[0])
'P'
>>> print('x[4:15] =', x[4:15])
'on Programm'
>>> x[4] = 'l'
TypeError: 'str' object does not support item assignment

Waarschuwing

De index moet een geheel getal zijn, anders TypeError gebeurt dit.

Negatieve indexering

Het is toegestaan ​​om negatieve indexen te gebruiken om toegang te krijgen tot tekens in de string. Index -1 verwijst bijvoorbeeld naar het laatste teken. Evenzo -2 verwijst index naar het voorlaatste teken.

>>> s = "Python"
>>> print(s[-1])
'n'
>>> print(s[-2])
'o'
>>> print(s[-3])
'h'

Tekens uit een string verwijderen

Omdat tekenreeksen onveranderlijk zijn, kunnen de tekens uit een tekenreeks daarom niet worden verwijderd. Maar je kan een nieuwe string aan dezelfde naam toewijzen. Dit wordt aangetoond in de onderstaande code:

>>> s = 'Python'
>>> s = 'Program'
>>> s
'Program'

De hele string kan worden verwijderd met behulp van del trefwoord:

>>> del s

Python-stringbewerkingen

Er zijn een aantal bewerkingen die op strings kunnen worden uitgevoerd; sommigen van hen zijn als volgt:

Twee of meer strings samenvoegen

Twee of meer strings kunnen worden samengevoegd met behulp van de + operator.

>>> s1 = 'Python '
>>> s2 = 'Programming'
>>> print(s1 + s2)
'Python Programming'

Als u twee tekenreeksen samen schrijft, worden de tekenreeksen samengevoegd zoals de + operator:

>>> print('Python ' 'Programming')
'Python Programming'

Haakjes kunnen ook worden gebruikt om twee reeksen samen te voegen wanneer de reeksen in meerdere lijnen zijn.

>>> s = ('Python '
     'Programming')
>>> s
'Pyhton Programming'

Iterate Through Strings

Je kan een lijst doorlopen met behulp van for lus:

s = 'Python'
for i in s:
    print(i)
P
y
t
h
o
n

String Lidmaatschapscontrole

Het in trefwoord wordt gebruikt om het bestaan ​​van een substring in een string te controleren.

>>> s = 'Python'
>>> print('a' in s)
False
>>> print('o' in s)
True

Ingebouwde functies van toepassing op snaren

De functies die op andere typen reeksen worden toegepast, kunnen ook op tekenreeksen worden toegepast. De meest gebruikte functies zijn len() het vinden van het aantal tekens in een string en enumerate() dat een object teruggeeft dat de index en de waarde van elementen in de string als een paar bevat.

Python String-opmaak

Escape-reeks

Escape-reeksen worden gebruikt wanneer u de speciale symbolen (die speciale betekenissen in Python hebben) op de uitvoerstream wilt afdrukken. Als u bijvoorbeeld wilt afdrukken:

James asked, "Do you know Andrew's place?"

Hier kan je geen enkele of dubbele aanhalingstekens gebruiken, omdat de tekst beide aanhalingstekens bevat. Als u deze tekenreeksen tussen enkele of dubbele aanhalingstekens probeert te plaatsen, hebt u dat SyntaxError.

>>> print("James asked, "Do you know Andrew's place?"")
SyntaxError: invalid syntax
>>> print('James asked, "Do you know Andrew's place?"')   
SyntaxError: invalid syntax

De oplossing voor dit probleem is dat u driedubbele aanhalingstekens of escape-reeksen gebruikt. In Python begint een escape-reeks met een backslash. Een backslash is een instructie voor de tolk.

Als u enkele aanhalingstekens gebruikt in de afdrukinstructie, moeten alle aanhalingstekens uit de tekst ontsnappen. En op dezelfde manier moeten dubbele aanhalingstekens uit de tekst ontsnappen als u dubbele aanhalingstekens gebruikt om een ​​tekenreeks weer te geven.

#using triple quotation marks
print('''James asked, "Do you know Andrew's place?"''')

#escaping single quotes
print('James asked, "Do you know Andrew\'s place?"')

#escaping double quotes
print("James asked, \"Do you know Andrew's place?\"")

Overweeg de volgende tabel waarin ontsnappingsreeksen van Python worden beschreven:

Escape-reeks Beschrijving
\\ ontsnapt backslash
\' ontsnapt aan enkele aanhalingstekens
\" ontsnapt aan dubbele aanhalingstekens
\a een ASCII-melding of -bel
\b genereert een backspace
\f genereert Formfeed
\n genereert een nieuwe regel.
\r vervoer terug
\t genereert een horizontaal tabblad
\v genereert een verticaal tabblad
\ooo octaal karakter ooo
\xHH hexadecimaal karakter HH
>>> print("C:\\User\\Python36-32\\Lib")
C:\User\Python36-32\Lib
    
>>> print("First Line\nSecond Line")
First Line
Second Line

Raw String r om Escape-reeks te negeren

Je kan de escape-reeks in een string negeren door er een onbewerkte string van te maken die wordt aangegeven door r of R vóór de string.

In een onbewerkte string worden escape-reeksen genegeerd. Zie het volgende voorbeeld:

#without r
>>> print("C:\\User\\Python36-32\\Lib")
C:\User\Python36-32\Lib

#with r  
>>> print(r"C:\\User\\Python36-32\\Lib")
C:\\User\\Python36-32\\Lib

Je zou hier kunnen zien dat de escape-reeks wordt genegeerd.

De stringmethode format()

De format() methode is een krachtig hulpmiddel om tekenreeksen op te maken. In de opgemaakte tekenreeksen hebt u tijdelijke aanduidingen {} die zijn vervangen door de format() methode.

De argumenten positioneel en trefwoord worden gebruikt om de volgorde van de vervanging aan te geven.

#default placeholder
>>> s1 = "{}, {} and {}".format('Bread', 'Butter', 'Chocolate')
>>> print(s1)
'Bread, Butter and Chocolate'

#positional arguments
>>> s2 = "{1}, {2} and {0}".format('Bread', 'Butter', 'Chocolate')    
>>> print(s2)
'Butter, Chocolate and Bread'

#keyword arguments
>>> s3 = "{a}, {x} and {c}".format(x = 'Bread', c = 'Butter', a = 'Chocolate')    
>>> print(s3)
'Chocolate, Bread and Butter'