Diskuze: Funkce find() a index() v Pythoně

Člen

Zobrazeno 7 zpráv z 7.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
Obě metody, find i index, vrátí správnou pozici, pokud je hledaný prvek nalezen v řetězci. Rozdíl mezi nimi spočívá v chování, když prvek není nalezen.
Jak píše Pavel:
find vrátí -1, což je záporná hodnota, kterou můžeš snadno otestovat v podmínce.
index vyvolá výjimku ValueError, což může způsobit přerušení běhu programu, pokud není hledaný prvek nalezen.
Jinak takovéto úlohy kde postupně procházíš kolekci a potřebuješ index nalezeného prvku se řeší pomocí prostého for s iteratorem a příkazem break. Po vyskočení z cyklu máš v iteratoru hodnotu indexu. Před použitím cyklu nastavuješ proměnnou pozice na -1 a při nalezení pozice = iterator.
Jasně, děkuji!
Teď chci zadat text k zakódování bbb ddd
Ten text má mezeru mezi b
a d
.
Otázkou je - proč program ne dělá stop
? Program nenajde pro
tento prostor znak Morse, že?
Je to proto, že v podmínkách pro tento případ nic není? A program jde
dál?
Když for cyklus zpracovává mezeru, proměnná pozice bude -1 neboť mezeru v řetězci abeceda nenajde. Podmínka uvnitř cyklu se neprovede, iterace končí a přechází se na další znak v původní zprávě.
Zobrazeno 7 zpráv z 7.