<jupyter_start><jupyter_text>String-ek Pythonban egy string-et vagy szimpla idézőjelek között, vagy dupla idézőjelek között lehet megadni: A kétfajta megadási mód között nincs különbség. A különböző idézőjeleket lehet keverni. Ha a string-ben van idézőjel, ami nem ugyanolyan, mint ahogy a string-et megadtuk, akkor az kiíródik. Figyeljük meg az alábbi két string-ben az idézőjelek fajtáját: Két vagy több string-et össze lehet adni, aminek az eredménye egy string lesz: Egy string-et meg lehet szorozni egy egész számmal, aminek az eredménye egy string lesz az eredeti string számszorosával: **Vigyázat**: más nyelvekben általában egy külön függvény van erre definiálva. A string-ek konkrét karakterét ki lehet szedni *indexeléssel*. Pythonban nincs karakter típus, a karakter is egy string, aminek a hossza 1. Az első karakter indexe 0: Negatív szám is használható indexelésre, ekkor a string hátuljáról kell számolni az indexeket a -1-től kezdve: Hátulról miért -1-től számoljuk, amikor elölről 0-től? Az ok egyszerű: -0 = 0, ezért a -0-dik index is az első karaktert fogja kiírni. Hibát kapunk, ha túl nagy indexű karaktert akarunk kiszedni: Az `IndexError` egy másfajta hibaüzenet (a `NameError` volt a másik), ami akkor jön elő, ha olyan elemre vagyunk kíváncsiak, ami a string-ben (vagy később a listákban) nem létezik. Ezt jelenti a `string index out of range` üzenet. Egy string hosszát lekérhetjük a beépített `len()` függvénnyel: Lehetőség van egy string szeletelése (*slice*), azaz a string egy részének kiszedésére a kettőspont (`:`) operátor segítségével: **Figyelem**: ha ilyen módon adjuk meg az indexelést, a kettőspont utáni indexnek megfelelő pozíción lévő karakter már nem íródik ki! Azaz a `v[0:3]` csak a 0,1,2 indexen lévő karaktereket fogja kiírni! A szeleteknek van alapértelmezett értéke. Ha a string elejéről akarunk kiírni néhány karaktert, a 0 elhagyható a `:` előtt: Ha a negyedik indexű pozíciótól a string végéig akarjuk azt kiírni, akkor az utolsó karakter indexe elhagyható: Hasonló igaz a string hátuljáról is. Ha az utolsó néhány karatert akarjuk kiírni, a -1 elhagyható a `:` után: A Python le tudja kezelni, ha a szeletelés során túl nagy indexet adunk meg: Hogyan működik az indexelés? Pythonban minden index 0-val kezdődik és a string, lista, stb. hosszáig tart. Az alábbi példában a "Hello" string hossza 5 (idézőjelek nélkül), a string látható a táblázat első sorában. A közvetlenül alatta lévő sor a string elejétől mutatja, hogy melyik index melyik karakterre mutat. Az utolsó sor pedig ugyanez, csak a string végétől az elejéig mutatja az indexek értékét.| H  | e  | l  | l  | o  ||----|----|----|----|----|| 0  | 1  | 2  | 3  | 4  || -5 | -4 | -3 | -2 | -1 |  Feladatok  **1. feladat**: Adott egy `count` változó, amiben azt tároljuk, hogy hányszor szeretnénk ismételni egy `word` nevű, string típusú változót. A `res` változóban tároljuk el a `count`-szor megismételt `word`-öt, majd írjuk is ki!<jupyter_code>count = 2
word = "palacsinta"

# megoldás:<jupyter_output><empty_output><jupyter_text>**2. feladat**: Írd ki az előző feladatban szereplő `word` változónak az első két karakterének és az utolsó három karakterének az összegét! (Eredményül tehát a `panta` string-et kell kapni.)<jupyter_code>word = "palacsinta"

# megoldás:<jupyter_output><empty_output><jupyter_text>***3. feladat**: Cseréld le a `word`-ben kapott string-ben az első karakternek megegyező karaktereket `*`-ra! Például: a `hahaha` string eredményének a `ha*a*a` kell kapnunk. (Hint: a `word.replace(old, new)` metódus a `word` nevű string típusú változóban az `old` karaktert minden előfordulását kicseréli a `new` karakterre. Pl. `"alma".replace(a, '*')` az `*lm*` string-et eredményezi)<jupyter_code>word = "bubble"

# megoldás:<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.08434690639873083, 'fraction_numerical': 0.00819672131147541, 'mean_word_length': 4.938775510204081, 'pattern_counts': {'":': 0, '<': 13, '<?xml version=': 0, '>': 13, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '3', 'dir': 'jupyter-structured-clean-dedup', 'id': '517978', 'license': 'Apache-2.0', 'n_tokens_mistral': 1599, 'n_tokens_neox': 1690, 'n_words': 518, 'path': 'ures/02-Stringek.ipynb', 'repo_name': 'ohanyecz/python', 'size': '3782'}