NOVINKA - Online rekvalifikační kurz Python programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze – Lekce 14 - Textové řetězce v Pythonu podruhé - Práce se znaky

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Avatar
Jan Svoboda
Člen
Avatar
Jan Svoboda:16.2.2021 17:16

šikovné a zajímavé

 
Odpovědět
16.2.2021 17:16
Avatar
Petr Nadvornik:22.2.2021 16:07

Díky za lekci. :)
Procházím lekcí, příklady si zkouším v ipython - kolsoli, dojdu k formátování. Napíšu:

retezec_1 = "Pzthon"

, hmm, tak si alespoň vyzkouším metodu replace( ).
Nahrazení celého slova je z příkladu jasné, ale jak nahradit jeden znak ?

retezec_1 = retezec_1.replace([1]("y"))

-error

retezec_1 = retezec_1.replace("Pzthon", [1]("y"))

- error

A pak ejhle, vždyť je to tak snadné:

In [67]: retezec_1 = "Pzthon"

In [68]: retezec_1 = retezec_1.replace("z","y")

In [69]: print(retezec_1)
Python

In [70]: retezec = "{0} is the best!".format(retezec_1)

In [71]: print(retezec)
Python is the best!

Proč vymýšlím blbosti, když v jednoduchosti je krása?

Odpovědět
22.2.2021 16:07
"WHY I LOVE LINUX $ unzip; strip; touch; finger; grep; mount; fsck; more; yes; fsck; fsck; unmount; sleep "
Avatar
Milan
Člen
Avatar
Milan:29.6.2022 16:41

find()
Vrátí index "Nejlevější" pozice ... jinak v poradku :)

 
Odpovědět
29.6.2022 16:41
Avatar
Petr Svoboda
Člen
Avatar
Petr Svoboda:20.8.2022 17:46

To bude asi překlep

print(retezec.count("a", 1, 4)) # to samé jako retezec[1:4].count("m")

Mělo by být count("a")

 
Odpovědět
20.8.2022 17:46
Avatar
Petr Váchal
Člen
Avatar
Petr Váchal:23.10.2022 12:42

Vše moc pěkně sepsané.
Jeddnu hvězdičku jsem ubral kvůli tomu, že není zmínka o novější verzi formátování přes syntaxi:
f"retezec". V současnosti nic jednoduššího není. Je to škoda, že to zde není uvedeno. Velká škoda.

Odpovědět
23.10.2022 12:42
Tolik bezradnosti, a furt se žije. Ej!
Avatar
Jan Novotný
Člen
Avatar
Jan Novotný:2.2.2023 12:58

Vím, že formátování pomocí f-stringu bylo už v kurzu zmíněno, ale myslím že v tomto souhrnu by se hodilo zopakovat.

Popravdě si nedokážu představit situaci, kdy bych použil nějakou ze zmíněných metod místo f-stringu, pokud bych tedy pracoval s dostatečně moderní verzí Pythonu.

 
Odpovědět
2.2.2023 12:58
Avatar
MBlack
Člen
Avatar
MBlack:4.4.2023 17:47

Na jedné stránce učíte jak formátovat na druhé zas jinak.
" Pro jednodušší výpis do konzole zde používáme formátovaný výpis
pomocí interpolace (nebo též F-String) ve tvaru
print(f"text {proměnná}"). Tato šikovná utilita je v pythonu od
verze 3.6. V opačném
případě bychom museli použít přetypování na
string print("text" + str(proměnná)), což je méně pohodlné

Zdroj: https://www.itnetwork.cz/…vat/107795/1 "

 
Odpovědět
4.4.2023 17:47
Avatar
Odpovídá na Petr Svoboda
Marie Pazoutova:30.5.2023 22:51

jj, taky jsem si všimla chyby.

A ještě v ukázce o trochu výše je nepřesnost.

V BOXIKU:
>>> retezec = "Honolulu"
>>> retezec[0]
H
>>> retezec[1:4]
ono
>>> retezec[::2]
hnll

SPRÁVNĚ (poslední řádek):
Hnll

 
Odpovědět
30.5.2023 22:51
Avatar
Michal Salvet:30.6.2023 10:29

Citace "Přesněji řečeno tak, že se vezmou postupně jednotlivé znaky porovnávaných řetězců a porovnají se pomocí funkce ord()."
Tohle se mi nezda, pokud by to platilo tak tohle porovnani

print("e" <= "df")

by bylo True (e<f) ale je False. Dohledaval jsem jak to je a melo by byt ze pokud prvni znaky jsou rozdilne tak se porovnava uz jen delka retezce a pokud jsou rozdilne porovnaji se jen prvni znaky. Nevim jestli je to uplne pravda ale v clanku by se to melo lepe vysvetlit.

 
Odpovědět
30.6.2023 10:29
Avatar
DarkCoder
Člen
Avatar
Odpovídá na Michal Salvet
DarkCoder:30.6.2023 10:51

Porovnávají se znaky na stejných indexech a pak se řeší délky řetězců

Pokud chceme vypsat výsledek výrazu:

print("e" <= "df")

Pak výsledek je samozřejmě FALSE, neboť znak 'e' stojí v ASCII dále než znak 'd'. A jelikož ve výrazu testujeme na to že stojí blíže počátku nebo je na stejné pozici, je výsledek nepravdivý.

Odpovědět
30.6.2023 10:51
"I ta nejlepší poučka postrádá na významu, není-li patřičně předána." - DarkCoder
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 40.