Vítejte u třetí přednášky v rychlokurzu.
V této přednášce se naučíme zacházet s řetězci v Pythonu. Připravte si popcorn a pevně se posaďte.
Strings
Nejprve si promluvme o uvozovkách a odstraníme zmatek, který mohou v Pythonu způsobit.
Jak bylo uvedeno dříve, za funkcí v Pythonu můžeme použít jednoduché i dvojité uvozovky. To má specifickou užitečnost. Předpokládejme, že chcete něco takového vytisknout.
print('This is Shahbaz's computer')
Nyní ve výše uvedeném výrazu bude vše za druhou uvozovkou jako v „Shahbaz's“ interpretem pythonu neidentifikováno, protože Python vezme druhou uvozovku jako konec řetězce. V takovém případě chcete použít dvojité uvozovky k deklaraci řetězce takto:
print("This is Shahbaz's computer")
To lze také použít obráceně a můžeme použít jednoduché uvozovky, pokud jsou uvnitř řetězce dvojité uvozovky. např
print('This "computer" belongs to Shahbaz')
Pokud nyní chcete vytisknout řetězec, který zahrnuje více řádků, museli byste k uzavření řetězce použít trojité uvozovky. Tyto uvozovky mohou být také jednoduché nebo dvojité v závislosti na obsahu řetězce. Například:
Nyní řekněme, že chcete vytisknout konkrétní znak z řetězce. jak bys to udělal?
Interpret Pythonu indexuje znaky v řetězci takto:
Jak můžete vidět v terminálu, bylo vytištěno pouze „h“. Je to proto, že jsme vybrali pouze třetí znak v našem řetězci pro tisk na terminálu tak, že za proměnnou napíšeme 3 v hranatých závorkách. Interpret Pythonu také indexuje znaky záporně, aby se zjednodušily velké řetězce. To znamená, že '-1' bude poslední číslo v řetězci a tak dále. Všimněte si, že mezery nejsou indexovány, což znamená, že výše uvedený řetězec bude mít pouze 21 indexovaných mezer.
Můžete také vybrat řadu znaků z řetězce. např
HashDork = ('Python Course by Shahbaz')
print(HashDork[0:3])
Tento program vytiskne 'Pyt' na terminálu. Index 3 je z toho vyloučen.
HashDork = ('Python Course by Shahbaz')
print(HashDork[2:])
Stejným způsobem, pokud nedodáme koncový index, python vytiskne celý řetězec za prvním indexem. Výstupem tohoto programu bude 'thon Course by Shahbaz'. Toto platí naopak. tj. pokud vynecháme první index, vytiskne se celý řetězec od začátku až po poslední definovaný index.
Program, který má v závorkách indexování pouze dvojtečku, poskytne na terminálu celý řetězec.
Cvičení
Zde je zajímavé cvičení
napište program, který definuje interval indexu [1:-1]. Co myslíte, bude výstup. Zkus to sám.
Formátované řetězce
Formátované řetězce jsou užitečné zejména v situacích, kdy dynamicky generujete nějaký text pomocí svých proměnných. Dovol mi ukázat ti.
Řekněme, že máme dvě proměnné, jméno a příjmení.
first_name = 'Shahbaz'
last_name = 'Bhatti'
Nyní chceme na terminál vytisknout „Shahbaz [Bhatti] is a coder“. Jak bychom to udělali? Zavedeme třetí proměnnou takto:
message = 'first_name + ' [' + last_name + '] is a coder'
Nyní, když vytiskneme a spustíme tento program, dostaneme na terminálu 'Shahbaz [Bhatti] is a coder'.
I když tento přístup perfektně funguje, není ideální, protože jak se náš text stává složitějším, je obtížnější vizualizovat výstup. Zde používáme formátované řetězce, usnadňují nám vizualizaci výstupu.
Pojďme změnit třetí proměnnou 'message' a zavést formátovaný řetězec. Chcete-li definovat formátované řetězce, vložte před řetězce znak „f“ a poté použijte složené závorky k dynamickému vkládání hodnot do řetězců. Náš program bude vypadat nějak takto:
first_name = 'Shahbaz'
last_name = 'Bhatti'
message = f'{first_name} [{last_name}] is a coder'
Chcete-li definovat formátované řetězce, zadejte před řetězce písmeno F a poté použijte složené závorky k dynamickému vkládání hodnot do řetězců.
Skvělé věci, které můžete dělat s Python Strings
Ukážu vám několik opravdu skvělých věcí, které můžete dělat s řetězci Python.
1. Počet znaků v řetězci
Začněme tedy definováním proměnné:
message = 'Shahbaz Bhatti is a Coder '
Nyní, pokud chci určit počet znaků ve výše uvedeném řetězci, je v Pythonu vestavěná funkce „len“. Stačí vytisknout proměnnou s touto funkcí takto
print(len(message))
To je zvláště užitečné, když přijímáte vstup od uživatele. Například jste si všimli, že když vyplníte formulář online, každé vstupní pole má často limit. Například můžete mít pro své jméno 50 znaků, takže pomocí této funkce „len“ můžeme vynutit omezení počtu znaků ve vstupním poli.
2. Převod znaků v řetězci na velká nebo malá písmena
K funkcím souvisejícím s řetězci můžeme přistupovat prostřednictvím operátoru tečka. Můžete zadat název své proměnné a vložením tečky před ni zobrazíte seznam všech takových funkcí.
Přesněji řečeno, tyto funkce nazýváte metodami, toto je termín v objektově orientovaném programování, na který se chceme podívat v budoucnu, ale nyní chci, abyste si odnesli, že když funkce patří k něčemu jinému nebo je specifické pro nějaký druh objektu, označujeme tuto funkci jako metodu. V tomto případě použijeme pro převod řetězce na velká písmena metodu „upper“.
Protože je tato funkce specifická pro řetězec, nazýváme ji metodou. Naproti tomu „len“ a „print“ jsou univerzální funkce, nepatří k řetězcům, číslům nebo jiným druhům objektů. To je základní rozdíl mezi funkcí a metodou.
Teď si to vytiskneme.
message = 'Shahbaz Bhatti is a coder'
print(message.upper())
A můžeme vidět, že jsme dostali náš řetězec velkými písmeny. Podobně máme metodu „lower“ pro převod řetězce na malá písmena. Můžete také použít metodu „title“ k psaní velkých písmen každého slova řetězce.
Všimněte si, že metoda nemění ani neupravuje náš původní řetězec. Ve skutečnosti vytvoří nový řetězec a vrátí jej.
3. Najděte posloupnost znaků v řetězci
Zkusme jinou metodu, jak najít index konkrétního znaku v řetězci.
Typ:
message.find('b')
za stejnou proměnnou a vytiskněte ji. Vypíše index prvního výskytu písmene 'b' v řetězci, který je v tomto případě 4.
Všimněte si, že tato metoda rozlišuje velká a malá písmena a vrátí -1, pokud znak není v řetězci nalezen. Lze jej také použít pro posloupnost znaků.
Například následující program:
message = 'Shahbaz Bhatti is a coder'
print(message.find('coder'))
vrátí hodnotu „20“, protože sekvence „kodér“ začíná od indexu 20.
4. Nahrazení znaku v řetězci
K nahrazení znaku nebo sekvence znaků v řetězci můžete použít metodu „nahradit“. Podívejme se na to v akci.
message = 'Shahbaz Bhatti is a coder'
print(message.replace('coder', 'programmer'))
Tento program nahradí slovo „kodér“ slovem „programátor“ a vytiskne jej na terminálu.
5. Zkontrolujte existenci znaku v řetězci
Nyní existují případy, kdy chcete zkontrolovat existenci znaku nebo sekvence znaku ve vašem řetězci. V těchto situacích můžete použít formát výrazu takto:
message = 'Shahbaz Bhatti is a coder'
tisknout ('python' ve zprávě)
Nyní to vrátí booleovskou funkci. tj. „Pravda“ nebo „Nepravda“. Takhle;
Upozorňujeme, že všechny tyto metody a funkce rozlišují velká a malá písmena.
Zabalit!
Strun je mnohem více, co se naučíme postupně, jak budeme postupovat vpřed. Dále se naučíme provádět aritmetické operace v Pythonu.
Napsat komentář