Mladý muž, který doma píše na svém notebooku
Kredit obrázku: g-stockstudio/iStock/Getty Images
Na rozdíl od C++ a Java neobsahují proměnné Pythonu explicitní informace o typu. Pokud používáte funkci, která vyžaduje řetězec, můžete do ní předat proměnné jiných typů bez vyvolání výjimky, i když váš kód může vyvolat výjimku, když se pokusí zpracovat proměnnou. Jediné datové typy, které možná budete muset převést na řetězce, jsou složené datové struktury, jako jsou sady a seznamy. Python obsahuje pohodlné funkce a operátory pro iteraci položek v datové struktuře a připojování znaků k řetězcové proměnné.
Silné, dynamicky psané jazyky
C++ a Java vyžadují slovo rezervy typu, které má předcházet všem alokacím proměnných, protože kompilátor nebo runtime prostředí musí vědět, jak s daty zacházet. Tyto staticky typované jazyky používají přetypování k převodu mezi typy, pokud je to možné. Protože Python je dynamicky typovaný jazyk, interpret odvodí typ za běhu, takže jednoduše přiřadíte hodnoty proměnným podle potřeby. Proměnné dříve používané jako jiný typ můžete přiřadit libovolný datový typ a pythonský garbage collector odstraní starou proměnnou z paměti.
Video dne
Převod datových struktur na řetězce
Pokud váš program shromažďuje textové informace ve složené struktuře, jako je seznam, n-tice nebo množina, můžete datovou strukturu procházet smyčkou a připojit prvky k řetězcové proměnné. Před iterací přes datovou strukturu nemusíte deklarovat řetězcovou proměnnou, ale může to zjednodušit váš kód. Například následující kód ukazuje nejzákladnější metodu převodu seznamu na řetězec:
ultimateQuestion = "" # deklarovat prázdný řetězec "ultimateQuestion"
tokens = ["Co je ", 6, "krát", 9, "?"] # seznam smíšených typů s mezerami
pro t v tokenech: ultimateQuestion += str (t)
tisknout (poslední otázka)
Metoda str použitá ve smyčce for vrhá na řetězce celá čísla a nemá žádný vliv na existující řetězce. Pokud tento kód spustíte v interpretu Pythonu, vypíše se "Kolik je 6 krát 9?"
Vestavěné metody řetězců
Jako většina vysokoúrovňových jazyků zahrnuje Python mnoho metod, které patří k vestavěnému řetězcovému typu. V Pythonu můžete tyto metody volat z řetězcového literálu, takže například pro zřetězení prvků seznamu můžete předat proměnnou seznamu metodě spojení řetězcového literálu jako v následujícím příkladu:
tokens = ['Ahoj', 'Svět'] #string tokeny bez mezer
pyString = ' '.join (tokeny)
tisknout (pyString)
Tento skript volá join z řetězcového literálu ', což je jednoznakový řetězec pouze znaku mezery. Zřetězí „Hello“ a „World“ do „Hello World“ vložením volajícího objektu – znaku mezery – mezi každý prvek seznamu.
Rozlišení proměnného rozsahu Pythonu
Stejně jako v jiných vyšších jazycích musíte při deklarování a přiřazování řetězcových proměnných věnovat pozornost rozsahu proměnné. Pokud deklarujete řetězcovou proměnnou uvnitř funkce nebo smyčky, nemůžete ji použít nikde jinde v programu. Například interpret Pythonu zničí proměnnou „verticalList“ po návratu ze smyčky:
pro g v potravinách: verticalList += g + '\n' # řetězec deklarovaný uvnitř cyklu for
tisknout (vertikální seznam)
Tento skript vyvolá výjimku, protože "verticalList" není definován mimo rozsah cyklu for.