Python - ciągi
Ciągi znaków należą do najpopularniejszych typów w Pythonie. Możemy je tworzyć po prostu umieszczając znaki w cudzysłowach. Python traktuje pojedyncze cudzysłowy tak samo, jak podwójne cudzysłowy. Tworzenie ciągów jest tak proste, jak przypisanie wartości do zmiennej. Na przykład -
var1 = 'Hello World!'
var2 = "Python Programming"
Dostęp do wartości w ciągach
Python nie obsługuje typów znaków; są one traktowane jako ciągi o długości jeden, a zatem również traktowane jako podciąg.
Aby uzyskać dostęp do podciągów, użyj nawiasów kwadratowych do cięcia wzdłuż indeksu lub indeksów, aby uzyskać podciąg. Na przykład -
#!/usr/bin/python
var1 = 'Hello World!'
var2 = "Python Programming"
print "var1[0]: ", var1[0]
print "var2[1:5]: ", var2[1:5]
Wykonanie powyższego kodu daje następujący wynik -
var1[0]: H
var2[1:5]: ytho
Aktualizowanie ciągów
Możesz „zaktualizować” istniejący ciąg poprzez (ponowne) przypisanie zmiennej do innego ciągu. Nowa wartość może być powiązana z jej poprzednią wartością lub zupełnie innym ciągiem. Na przykład -
#!/usr/bin/python
var1 = 'Hello World!'
print "Updated String :- ", var1[:6] + 'Python'
Wykonanie powyższego kodu daje następujący wynik -
Updated String :- Hello Python
Znaki ucieczki
Poniższa tabela zawiera listę znaków zmiany znaczenia lub znaków niedrukowalnych, które można przedstawić za pomocą notacji z ukośnikiem odwrotnym.
Znak ucieczki jest interpretowany; w ciągach pojedynczych i podwójnych cudzysłowów.
Notacja z ukośnikiem odwrotnym | Znak szesnastkowy | Opis |
---|---|---|
\za | 0x07 | Dzwonek lub alert |
\b | 0x08 | Backspace |
\ cx | Control + x | |
\ Cx | Control + x | |
\mi | 0x1b | Ucieczka |
\fa | 0x0c | Formfeed |
\ M- \ Cx | Meta-Control-x | |
\ n | 0x0a | Nowa linia |
\ nnn | Notacja ósemkowa, gdzie n mieści się w zakresie 0,7 | |
\ r | 0x0d | Powrót karetki |
\ s | 0x20 | Przestrzeń |
\ t | 0x09 | Patka |
\ v | 0x0b | Zakładka pionowa |
\ x | Postać x | |
\ xnn | Zapis szesnastkowy, gdzie n mieści się w zakresie 0,9, af lub AF |
Operatory specjalne łańcuchów
Załóż zmienną łańcuchową a zawiera „Hello” i zmienną b zawiera „Python”, a następnie -
Operator | Opis | Przykład |
---|---|---|
+ | Konkatenacja - dodaje wartości po obu stronach operatora | a + b da HelloPython |
* | Powtórzenie - tworzy nowe ciągi, łącząc wiele kopii tego samego ciągu | a * 2 da -HelloHello |
[] | Slice - podaje znak z podanego indeksu | a [1] da e |
[:] | Fragment zakresu - podaje znaki z podanego zakresu | a [1: 4] da łokieć |
w | Członkostwo - zwraca wartość true, jeśli znak istnieje w podanym ciągu | H w a da 1 |
nie w | Członkostwo - zwraca wartość true, jeśli znak nie istnieje w podanym ciągu | M nie da 1 |
r / R | Surowy ciąg - pomija rzeczywiste znaczenie znaków ucieczki. Składnia nieprzetworzonych łańcuchów jest dokładnie taka sama, jak w przypadku zwykłych ciągów, z wyjątkiem surowego operatora łańcucha, litery „r”, która poprzedza cudzysłowy. Litera „r” może być małą (r) lub wielką (R) i musi zostać umieszczona bezpośrednio przed pierwszym cudzysłowem. | print r '\ n' drukuje \ n i print R '\ n'prints \ n |
% | Format - wykonuje formatowanie ciągów | Zobacz w następnej sekcji |
Operator formatowania łańcucha
Jedną z najfajniejszych funkcji Pythona jest operator formatu ciągu znaków%. Ten operator jest unikalny dla łańcuchów i stanowi pakiet funkcji z rodziny printf () języka C. Oto prosty przykład -
#!/usr/bin/python
print "My name is %s and weight is %d kg!" % ('Zara', 21)
Wykonanie powyższego kodu daje następujący wynik -
My name is Zara and weight is 21 kg!
Oto lista pełnego zestawu symboli, których można używać wraz z% -
Symbol formatu | Konwersja |
---|---|
%do | postać |
% s | konwersja ciągów przez str () przed formatowaniem |
%ja | liczba całkowita dziesiętna ze znakiem |
%re | liczba całkowita dziesiętna ze znakiem |
% u | liczba całkowita dziesiętna bez znaku |
% o | ósemkowa liczba całkowita |
% x | liczba szesnastkowa całkowita (małe litery) |
% X | liczba szesnastkowa całkowita (wielkie litery) |
%mi | notacja wykładnicza (z małą literą „e”) |
%MI | notacja wykładnicza (z WIELKĄ LITERĄ „E”) |
%fa | zmiennoprzecinkowa liczba rzeczywista |
%sol | krótszy z% f i% e |
%SOL | krótszy z% f i% E |
Inne obsługiwane symbole i funkcje są wymienione w poniższej tabeli -
Symbol | Funkcjonalność |
---|---|
* | argument określa szerokość lub precyzję |
- | lewe uzasadnienie |
+ | wyświetlić znak |
<sp> | pozostaw puste miejsce przed liczbą dodatnią |
# | dodaj wiodące zero ósemkowe („0”) lub wiodące szesnastkowe „0x” lub „0X”, w zależności od tego, czy użyto „x” czy „X”. |
0 | wypełnij od lewej zerami (zamiast spacji) |
% | „%%” pozostawia pojedynczy literał „%” |
(var) | mapowanie zmiennej (argumenty słownikowe) |
mn | m to minimalna całkowita szerokość, an to liczba cyfr wyświetlanych po przecinku (jeśli ma to zastosowanie). |
Potrójne cytaty
Potrójne cudzysłowy w Pythonie przychodzą na ratunek, umożliwiając ciągom tekstowym rozciąganie wielu wierszy, w tym dosłowne znaki NEWLINE, TAB i wszelkie inne znaki specjalne.
Składnia potrójnych cudzysłowów składa się z trzech następujących po sobie single or double cytaty.
#!/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
Wykonanie powyższego kodu daje następujący wynik. Zwróć uwagę, jak każdy pojedynczy znak specjalny został przekonwertowany do postaci drukowanej, aż do ostatniego znaku NEWLINE na końcu ciągu między znakiem „w górę”. i zamykające potrójne cudzysłowy. Należy również zauważyć, że znaki NEWLINE występują albo z wyraźnym powrotem karetki na końcu wiersza, albo z jego kodem ucieczki (\ 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.
Nieprzetworzone łańcuchy w ogóle nie traktują ukośnika odwrotnego jako znaku specjalnego. Każdy znak, który umieścisz w nieprzetworzonym ciągu, pozostaje taki, jaki został napisany -
#!/usr/bin/python
print 'C:\\nowhere'
Wykonanie powyższego kodu daje następujący wynik -
C:\nowhere
Skorzystajmy teraz z surowego łańcucha. Włożylibyśmy wyrazr'expression' w następujący sposób -
#!/usr/bin/python
print r'C:\\nowhere'
Wykonanie powyższego kodu daje następujący wynik -
C:\\nowhere
Ciąg Unicode
Normalne ciągi znaków w Pythonie są przechowywane wewnętrznie jako 8-bitowe ASCII, podczas gdy ciągi znaków Unicode są przechowywane jako 16-bitowe Unicode. Pozwala to na bardziej zróżnicowany zestaw znaków, w tym znaki specjalne z większości języków na świecie. Ograniczę moje traktowanie ciągów Unicode do następujących -
#!/usr/bin/python
print u'Hello, world!'
Wykonanie powyższego kodu daje następujący wynik -
Hello, world!
Jak widać, łańcuchy Unicode używają przedrostka u, tak jak ciągi nieprzetworzone używają przedrostka r.
Wbudowane metody łańcuchowe
Python zawiera następujące wbudowane metody do manipulowania ciągami znaków -
Sr.No. | Metody z opisem |
---|---|
1 | skapitalizować() Zamienia pierwszą literę ciągu na wielką literę |
2 | środek (szerokość, znak wypełnienia) Zwraca łańcuch wypełniony spacjami z oryginalnym ciągiem wyśrodkowanym do łącznej szerokości kolumn. |
3 | count (str, beg = 0, end = len (string)) Oblicza, ile razy str występuje w ciągu lub w podłańcuchu ciągu, jeśli podano początkowy indeks początkowy i końcowy indeks końcowy. |
4 | dekodować (kodowanie = „UTF-8”, błędy = „ścisłe”) Dekoduje ciąg przy użyciu kodeka zarejestrowanego do kodowania. encoding domyślnie na domyślne kodowanie ciągów. |
5 | encode (kodowanie = „UTF-8”, błędy = „ścisłe”) Zwraca zakodowaną wersję ciągu znaków; w przypadku błędu, domyślnie zgłasza błąd ValueError, chyba że dla błędu podano „ignoruj” lub „zamień”. |
6 | endwith (sufiks, początek = 0, koniec = len (ciąg)) Określa, czy łańcuch lub podłańcuch łańcucha (jeśli podano początek indeksu początek i koniec indeksu koniec) kończy się sufiksem; zwraca prawdę, jeśli tak, i fałsz w przeciwnym razie. |
7 | expandtabs (tabsize = 8) Rozwija tabulatory w łańcuchu do wielu spacji; domyślnie 8 spacji na kartę, jeśli nie podano rozmiaru tabulacji. |
8 | find (str, beg = 0 end = len (string)) Określić, czy str występuje w łańcuchu lub w podłańcuchu łańcucha, jeśli podano indeks początkowy początek i koniec indeksu, zwraca indeks, jeśli zostanie znaleziony, a -1 w przeciwnym razie. |
9 | index (str, beg = 0, end = len (string)) To samo, co find (), ale zgłasza wyjątek, jeśli nie znaleziono ciągu. |
10 | isalnum () Zwraca wartość true, jeśli łańcuch ma co najmniej 1 znak, a wszystkie znaki są alfanumeryczne, aw przeciwnym razie - fałsz. |
11 | isalpha () Zwraca wartość true, jeśli łańcuch ma co najmniej 1 znak, a wszystkie znaki są alfabetyczne, aw przeciwnym razie - fałsz. |
12 | isdigit () Zwraca wartość true, jeśli ciąg zawiera tylko cyfry, lub false, jeśli jest inaczej. |
13 | islower () Zwraca wartość true, jeśli łańcuch ma co najmniej 1 znak wielkości liter, a wszystkie znaki wielkości liter są zapisane małymi literami, aw przeciwnym razie - fałsz. |
14 | isnumeric () Zwraca wartość true, jeśli ciąg znaków Unicode zawiera tylko znaki numeryczne, lub false, jeśli jest inaczej. |
15 | isspace () Zwraca wartość true, jeśli ciąg zawiera tylko białe znaki, lub false, jeśli jest inaczej. |
16 | istitle () Zwraca wartość „prawda”, jeśli ciąg znaków zawiera poprawnie „tytuł”, a fałsz, jeśli jest inaczej. |
17 | isupper () Zwraca wartość true, jeśli łańcuch ma co najmniej jeden znak wielkości liter, a wszystkie znaki wielkości liter są duże, aw przeciwnym razie - fałsz. |
18 | dołącz (kolejność) Łączy (łączy) ciągi reprezentujące elementy w sekwencji sekwencyjnej w ciąg z ciągiem separującym. |
19 | len (ciąg) Zwraca długość ciągu |
20 | ljust (width [, fillchar]) Zwraca ciąg uzupełniony spacjami z oryginalnym ciągiem wyrównanym do lewej do łącznej szerokości kolumn. |
21 | niższy() Konwertuje wszystkie wielkie litery w ciągu na małe litery. |
22 | lstrip () Usuwa wszystkie wiodące spacje w ciągu. |
23 | maketrans () Zwraca tabelę tłumaczeń do użycia w funkcji tłumaczenia. |
24 | max (str) Zwraca maksymalny znak alfabetyczny z ciągu str. |
25 | min (str) Zwraca min znak alfabetyczny z ciągu str. |
26 | zastąp (stary, nowy [, maks.]) Zastępuje wszystkie wystąpienia starego w łańcuchu nowymi lub co najwyżej max wystąpieniami, jeśli podano max. |
27 | rfind (str, beg = 0, end = len (string)) To samo, co find (), ale przeszukuje wstecz w ciągu. |
28 | rindex (str, beg = 0, end = len (string)) To samo co index (), ale przeszukuje wstecz w ciągu. |
29 | rjust (width, [, fillchar]) Zwraca ciąg uzupełniony spacjami z oryginalnym ciągiem wyrównanym do prawej do łącznej szerokości kolumn. |
30 | rstrip () Usuwa wszystkie końcowe spacje ciągu. |
31 | split (str = "", num = string.count (str)) Dzieli łańcuch według separatora (spacja, jeśli nie podano) i zwraca listę podciągów; podziel na co najwyżej num podciągów, jeśli podano. |
32 | splitlines (num = string.count ('\ n')) Dzieli ciąg na wszystkich (lub w liczbie) NEWLINE i zwraca listę każdego wiersza z usuniętymi NEWLINEs. |
33 | beginwith (str, beg = 0, end = len (string)) Określa, czy łańcuch lub podłańcuch łańcucha (jeśli podano początek indeksu początek i koniec indeksu koniec) zaczyna się od podłańcucha str; zwraca prawdę, jeśli tak, i fałsz w przeciwnym razie. |
34 | strip ([znaki]) Wykonuje na łańcuchu zarówno lstrip (), jak i rstrip (). |
35 | swapcase () Odwraca wielkość liter dla wszystkich liter w ciągu. |
36 | tytuł() Zwraca wersję ciągu oznaczoną „tytułem”, czyli wszystkie słowa zaczynają się od wielkich liter, a pozostałe są małymi literami. |
37 | przetłumacz (tabela, deletechars = "") Tłumaczy ciąg zgodnie z tabelą translacji str (256 znaków), usuwając te z łańcucha del. |
38 | górny() Konwertuje małe litery w ciągu na duże. |
39 | zfill (szerokość) Zwraca oryginalny ciąg z odstępami zerowymi do całkowitej liczby znaków szerokości; przeznaczona dla liczb, zfill () zachowuje każdy podany znak (pomniejszony o jedno zero). |
40 | isdecimal () Zwraca wartość true, jeśli ciąg znaków Unicode zawiera tylko znaki dziesiętne, lub false, jeśli jest inaczej. |