Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: MilanČ 04. 07. 2012, 15:02:31
-
A opět jsem tady. Zdravím všechny!
V pythonu jsem se dostal k seznamům. Ty česky nějakým způsobem umí? V konzole to nejde a v souboru také ne, i když mám jako první řádek
# -*- coding: utf-8 -*-. Když chci vypsat pouze jednu položku v seznamu, tak se to provede správně. Od dvou výše ale ne. Např.:
>>> x[1] 'druh\xc3\xbd'
>>> print x[1] druhý
>>> print x[0:1] ['prvn\xc3\xad']
Mám už i knížku, tam se ale právě krásně zobrazuje x[0:2] ['první', 'druhý'].
Díky MilanČ
-
A když přesměruješ výstup do souboru, tak je v souboru také C\xxxxe\xxxxxtina?
-
Tak takhle daleko jsem ještě nedošel ;). Plánuji, že zhruba do tří týdnů bych do souboru vypisovat mohl.
MilanČ
-
vies sem pastnut cely skript?
-
# -*- coding: utf-8 -*-
x=["první", "druhý", "třetí", "čtvrtý"] # Žádný velký projekt! Jsem začátečník. Používám gedit v debianu. Všude mám nastaveno utf-8
print x
-
skus:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
x = ['prvý', 'druhý', 'tretí', 'štvrtý', 'ľščťžýáí']
print ', '.join(x)
-
alebo:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
x = ['prvý', 'druhý', 'tretí', 'štvrtý', 'ľščťžýáí']
for i in x:
print i,
-
No, to funguje!? Vypsalo mi to první, druhý, ....
Asi mám v tom /usr/bin... něco jinak nastaveno, že? Přiznám se, že by se mi lépe psalo jen print x, kdyby to šlo.
Díky MilanČ
-
I druhý způsob mi funguje, s malou obměnou: první druhý ...
Asi to ale není standard, že? Každopádně aspoň něco, díky.
MilanČ
-
priamo print x nejde pri unicode. netusim preco:) az tak sa v pythone zatial nevrtam. ale ono v podstate ti to moze byt jedno pre tento pripad, si myslim. podla mna neni uplne idealne to takto pouzivat v aplikacii. daj si napr print x[4] a to uz bude ok aj napriamo
-
Ok, díky.
MilanČ
-
Máte knihu o Python3, ale používáte Python2, což je vidět na funkci print. Proto jim to funguje a Vám ne. Zkuste změnit shebang z "#!/usr/bin/env python" na "#!/usr/bin/env python3" a pokud jej máte nainstalovaný, bude vše OK.
Pro pochopení, co se vlastně děje v Pythonu2:
Voláním print x voláte vlastně repr(x), která vrátí string:
"['prvn\xc3\\xad', 'druh\\xc3\\xbd', 't\\xc5\\x99et\\xc3\\xad', '\\xc4\\x8dtvrt\\xc3\\xbd']"
Při jeho tisku se ze dvou lomítek udělá jedno a vytiskne se:
['prvn\xc3\xad', 'druh\xc3\xbd', 't\xc5\x99et\xc3\xad', '\xc4\x8dtvrt\xc3\xbd']
Kdežto výrazy:
print x[0]
print " ".join(x)
for s in x: print s
ty všechny pracují přímo s elementy seznamu a pak je to tiskne správně.
-
V Debianu je standardně nainstalována verze 2.6. Knížku mám od "Daryl Harms, Kenneth Mcdonald" "Začínáme programovat v jazyce Python", z roku 2003, kde se jedná o verzi 2.2.
V knížce jsou zřejmě trochu chybičky, zprvu se vypisuje ['dvě', 'tři'] a o pár stránek dál už jen ['dve', 'tri']. Trojkovou verzi určitě jednou zkusím, asi jako všichni :)
Každopádně díky.
MilanČ
-
Osobně bych se na 2.x už vykašlal a začal rovnou s 3. Začínat s 2.x má, podle mě, smysl pouze z kompatibilních důvodů, pokud plánujete pracovat s už napsanými skripty.