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-snaren

Python-snaren

In deze tutorial leer je strings maken, formatteren, wijzigen en verwijderen in Python. Ook maakt u kennis met verschillende tekenreeksbewerkingen en -functies.

Video:Python-strings

Wat is String in Python?

Een string is een reeks karakters.

Een karakter is gewoon een symbool. De Engelse taal heeft bijvoorbeeld 26 tekens.

Computers werken niet met karakters, maar met getallen (binair). Ook al zie je misschien tekens op je scherm, intern worden ze opgeslagen en gemanipuleerd als een combinatie van nullen en enen.

Deze conversie van tekens naar een getal wordt codering genoemd en het omgekeerde proces is decodering. ASCII en Unicode zijn enkele van de populaire coderingen die worden gebruikt.

In Python is een string een reeks Unicode-tekens. Unicode is geïntroduceerd om elk teken in alle talen op te nemen en uniformiteit in de codering te brengen. U kunt over Unicode leren van Python Unicode.


Hoe maak je een string in Python?

Tekenreeksen kunnen worden gemaakt door tekens tussen enkele aanhalingstekens of dubbele aanhalingstekens te plaatsen. Zelfs driedubbele aanhalingstekens kunnen in Python worden gebruikt, maar worden over het algemeen gebruikt om tekenreeksen met meerdere regels en docstrings weer te geven.

# defining strings in Python
# all of the following are equivalent
my_string = 'Hello'
print(my_string)

my_string = "Hello"
print(my_string)

my_string = '''Hello'''
print(my_string)

# triple quotes string can extend multiple lines
my_string = """Hello, welcome to
           the world of Python"""
print(my_string)

Wanneer u het programma uitvoert, is de uitvoer:

Hello
Hello
Hello
Hello, welcome to
           the world of Python

Hoe krijg ik toegang tot tekens in een string?

We hebben toegang tot individuele tekens met behulp van indexering en een reeks tekens met behulp van slicing. Index begint vanaf 0. Als je probeert toegang te krijgen tot een teken dat buiten het indexbereik valt, krijg je een IndexError . De index moet een geheel getal zijn. We kunnen geen floats of andere typen gebruiken, dit resulteert in TypeError .

Python staat negatieve indexering toe voor zijn sequenties.

De index van -1 verwijst naar het laatste item, -2 naar het een na laatste item enzovoort. We hebben toegang tot een reeks items in een string met behulp van de slicing-operator : (dubbele punt).

#Accessing string characters in Python
str = 'programiz'
print('str = ', str)

#first character
print('str[0] = ', str[0])

#last character
print('str[-1] = ', str[-1])

#slicing 2nd to 5th character
print('str[1:5] = ', str[1:5])

#slicing 6th to 2nd last character
print('str[5:-2] = ', str[5:-2])

Wanneer we het bovenstaande programma uitvoeren, krijgen we de volgende uitvoer:

str =  programiz
str[0] =  p
str[-1] =  z
str[1:5] =  rogr
str[5:-2] =  am

Als we proberen toegang te krijgen tot een index buiten het bereik of andere getallen dan een geheel getal gebruiken, krijgen we fouten.

# index must be in range
>>> my_string[15]  
...
IndexError: string index out of range

# index must be an integer
>>> my_string[1.5] 
...
TypeError: string indices must be integers

Snijden kan het beste worden gevisualiseerd door de index als tussen de elementen te beschouwen, zoals hieronder weergegeven.

Als we toegang willen krijgen tot een bereik, hebben we de index nodig die het gedeelte van de tekenreeks afsnijdt.


Hoe verander of verwijder je een string?

Snaren zijn onveranderlijk. Dit betekent dat elementen van een string niet kunnen worden gewijzigd nadat ze zijn toegewezen. We kunnen eenvoudig verschillende strings opnieuw toewijzen aan dezelfde naam.

>>> my_string = 'programiz'
>>> my_string[5] = 'a'
...
TypeError: 'str' object does not support item assignment
>>> my_string = 'Python'
>>> my_string
'Python'

We kunnen geen tekens uit een tekenreeks verwijderen of verwijderen. Maar de string volledig verwijderen is mogelijk met behulp van de del zoekwoord.

>>> del my_string[1]
...
TypeError: 'str' object doesn't support item deletion
>>> del my_string
>>> my_string
...
NameError: name 'my_string' is not defined

Python String-bewerkingen

Er zijn veel bewerkingen die met strings kunnen worden uitgevoerd, waardoor het een van de meest gebruikte gegevenstypen in Python is.

Ga voor meer informatie over de gegevenstypen die beschikbaar zijn in Python naar:Python-gegevenstypen

Aaneenschakeling van twee of meer strings

Het samenvoegen van twee of meer strings tot een enkele wordt concatenatie genoemd.

De + operator doet dit in Python. Door simpelweg twee letterlijke tekenreeksen samen te schrijven, worden ze ook samengevoegd.

De * operator kan worden gebruikt om de string een bepaald aantal keren te herhalen.

# Python String Operations
str1 = 'Hello'
str2 ='World!'

# using +
print('str1 + str2 = ', str1 + str2)

# using *
print('str1 * 3 =', str1 * 3)

Wanneer we het bovenstaande programma uitvoeren, krijgen we de volgende uitvoer:

str1 + str2 =  HelloWorld!
str1 * 3 = HelloHelloHello

Door twee letterlijke tekenreeksen samen te schrijven, worden ze ook samengevoegd, zoals + telefoniste.

Als we strings in verschillende regels willen samenvoegen, kunnen we haakjes gebruiken.

>>> # two string literals together
>>> 'Hello ''World!'
'Hello World!'

>>> # using parentheses
>>> s = ('Hello '
...      'World')
>>> s
'Hello World'

Itereren via een string

We kunnen een string doorlopen met een for-lus. Hier is een voorbeeld om het aantal 'l's in een string te tellen.

# Iterating through a string
count = 0
for letter in 'Hello World':
    if(letter == 'l'):
        count += 1
print(count,'letters found')

Wanneer we het bovenstaande programma uitvoeren, krijgen we de volgende uitvoer:

3 letters found

String lidmaatschapstest

We kunnen testen of een substring binnen een string bestaat of niet, met behulp van het trefwoord in .

>>> 'a' in 'program'
True
>>> 'at' not in 'battle'
False

Ingebouwde functies om met Python te werken

Verschillende ingebouwde functies die werken met reeksen, werken ook met strings.

Enkele van de meest gebruikte zijn enumerate() en len() . De enumerate() functie retourneert een enumerate object. Het bevat de index en waarde van alle items in de string als paren. Dit kan handig zijn voor iteratie.

Evenzo, len() geeft de lengte (aantal tekens) van de tekenreeks terug.

str = 'cold'

# enumerate()
list_enumerate = list(enumerate(str))
print('list(enumerate(str) = ', list_enumerate)

#character count
print('len(str) = ', len(str))

Wanneer we het bovenstaande programma uitvoeren, krijgen we de volgende uitvoer:

list(enumerate(str) =  [(0, 'c'), (1, 'o'), (2, 'l'), (3, 'd')]
len(str) =  4

Python String-opmaak

Escape-reeks

Als we een tekst willen afdrukken zoals Hij zei:"Wat is daar?" , we kunnen geen enkele aanhalingstekens of dubbele aanhalingstekens gebruiken. Dit resulteert in een SyntaxError omdat de tekst zelf zowel enkele als dubbele aanhalingstekens bevat.

>>> print("He said, "What's there?"")
...
SyntaxError: invalid syntax
>>> print('He said, "What's there?"')
...
SyntaxError: invalid syntax

Een manier om dit probleem te omzeilen is door drievoudige aanhalingstekens te gebruiken. Als alternatief kunnen we escape-reeksen gebruiken.

Een escape-reeks begint met een backslash en wordt anders geïnterpreteerd. Als we een enkel aanhalingsteken gebruiken om een ​​tekenreeks weer te geven, moeten alle enkele aanhalingstekens in de tekenreeks een escapeteken krijgen. Hetzelfde geldt voor dubbele aanhalingstekens. Hier is hoe het kan worden gedaan om de bovenstaande tekst weer te geven.

# using triple quotes
print('''He said, "What's there?"''')

# escaping single quotes
print('He said, "What\'s there?"')

# escaping double quotes
print("He said, \"What's there?\"")

Wanneer we het bovenstaande programma uitvoeren, krijgen we de volgende uitvoer:

He said, "What's there?"
He said, "What's there?"
He said, "What's there?"

Hier is een lijst met alle escape-reeksen die door Python worden ondersteund.

Escape-reeks Beschrijving
\newline Backslash en nieuwe regel genegeerd
\\ Backslash
\' Enkel aanhalingsteken
\" Dubbele aanhalingstekens
\a ASCII-bel
\b ASCII-backspace
\f ASCII Formfeed
\n ASCII-regelinvoer
\r ASCII koetsretour
\t ASCII Horizontaal tabblad
\v ASCII verticaal tabblad
\ooo Teken met octale waarde ooo
\xHH Teken met hexadecimale waarde HH

Hier zijn enkele voorbeelden

>>> print("C:\\Python32\\Lib")
C:\Python32\Lib

>>> print("This is printed\nin two lines")
This is printed
in two lines

>>> print("This is \x48\x45\x58 representation")
This is HEX representation

Onbewerkte tekenreeks om escape-reeks te negeren

Soms willen we misschien de escape-reeksen binnen een string negeren. Om dit te doen kunnen we r . plaatsen of R voor de snaar. Dit houdt in dat het een onbewerkte tekenreeks is en dat elke escape-reeks erin wordt genegeerd.

>>> print("This is \x61 \ngood example")
This is a
good example
>>> print(r"This is \x61 \ngood example")
This is \x61 \ngood example

De format()-methode voor het opmaken van tekenreeksen

De format() methode die beschikbaar is met het string-object is zeer veelzijdig en krachtig in het formatteren van strings. Opmaakstrings bevatten accolades {} als tijdelijke aanduidingen of vervangende velden die worden vervangen.

We kunnen positionele argumenten of trefwoordargumenten gebruiken om de volgorde te specificeren.

# Python string format() method

# default(implicit) order
default_order = "{}, {} and {}".format('John','Bill','Sean')
print('\n--- Default Order ---')
print(default_order)

# order using positional argument
positional_order = "{1}, {0} and {2}".format('John','Bill','Sean')
print('\n--- Positional Order ---')
print(positional_order)

# order using keyword argument
keyword_order = "{s}, {b} and {j}".format(j='John',b='Bill',s='Sean')
print('\n--- Keyword Order ---')
print(keyword_order)

Wanneer we het bovenstaande programma uitvoeren, krijgen we de volgende uitvoer:

--- Default Order ---
John, Bill and Sean

--- Positional Order ---
Bill, John and Sean

--- Keyword Order ---
Sean, Bill and John

De format() methode kan optionele formaatspecificaties hebben. Ze worden gescheiden van de veldnaam met een dubbele punt. We kunnen bijvoorbeeld links uitvullen < , rechts uitvullen > of centreer ^ een string in de gegeven ruimte.

We kunnen ook gehele getallen opmaken als binair, hexadecimaal, enz. en floats kunnen worden afgerond of weergegeven in het exponentformaat. Er zijn tal van opmaak die u kunt gebruiken. Bezoek hier voor alle tekenreeksopmaak die beschikbaar is met de format() methode.

>>> # formatting integers
>>> "Binary representation of {0} is {0:b}".format(12)
'Binary representation of 12 is 1100'

>>> # formatting floats
>>> "Exponent representation: {0:e}".format(1566.345)
'Exponent representation: 1.566345e+03'

>>> # round off
>>> "One third is: {0:.3f}".format(1/3)
'One third is: 0.333'

>>> # string alignment
>>> "|{:<10}|{:^10}|{:>10}|".format('butter','bread','ham')
'|butter    |  bread   |       ham|'

Opmaak in oude stijl

We kunnen zelfs strings formatteren zoals de oude sprintf() stijl die wordt gebruikt in de programmeertaal C. We gebruiken de % operator om dit te bereiken.

>>> x = 12.3456789
>>> print('The value of x is %3.2f' %x)
The value of x is 12.35
>>> print('The value of x is %3.4f' %x)
The value of x is 12.3457

Algemene Python-stringmethoden

Er zijn tal van methoden beschikbaar met het string-object. De format() methode die we hierboven noemden is er een van. Enkele veelgebruikte methoden zijn lower() , upper() , join() , split() , find() , replace() etc. Hier is een volledige lijst van alle ingebouwde methoden om met strings in Python te werken.

>>> "PrOgRaMiZ".lower()
'programiz'
>>> "PrOgRaMiZ".upper()
'PROGRAMIZ'
>>> "This will split all words into a list".split()
['This', 'will', 'split', 'all', 'words', 'into', 'a', 'list']
>>> ' '.join(['This', 'will', 'join', 'all', 'words', 'into', 'a', 'string'])
'This will join all words into a string'
>>> 'Happy New Year'.find('ew')
7
>>> 'Happy New Year'.replace('Happy','Brilliant')
'Brilliant New Year'

Python

  1. C#-tekenreeks
  2. Python-woordenboek
  3. Java-strings
  4. Java enum Strings
  5. Python-strings:vervangen, samenvoegen, splitsen, omkeren, hoofdletters en kleine letters
  6. Python String strip() Functie met VOORBEELD
  7. Python String count() met VOORBEELDEN
  8. Python String format() Leg uit met VOORBEELDEN
  9. Python-tekenreekslengte | len() methode Voorbeeld
  10. Methode Python String find() met voorbeelden
  11. Enumerate() Functie in Python:Loop, Tuple, String (voorbeeld)