Mikuláš je tu! Získaj 90 % extra kreditov ZADARMO s promo kódom CERTIK90 pri nákupe od 1 199 kreditov. Len do nedele 7. 12. 2025! Zisti viac:
NOVINKA: Najžiadanejšie rekvalifikačné kurzy teraz s 50% zľavou + kurz AI ZADARMO. Nečakaj, táto ponuka dlho nevydrží! Zisti viac:

Diskusia – 14. diel - Textové reťazce v Pythone druhýkrát - Práca so znakmi

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Posledné komentáre sú na spodnej časti poslednej stránky.
Avatar
Jan Svoboda
Člen
Avatar
Jan Svoboda:16.2.2021 17:16

šikovné a zajímavé

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?

Odpovedať
"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 :)

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")

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.

Odpovedať
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.

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 "

Avatar
Odpovedá 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

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.

Avatar
DarkCoder
Člen
Avatar
Odpovedá 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ý.

Odpovedať
"I ta nejlepší poučka postrádá na významu, není-li patřičně předána." - DarkCoder
Posledné komentáre sú na spodnej časti poslednej stránky.
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zobrazené 10 správy z 46.