Python seznamy česky

MilanČ

Python seznamy česky
« kdy: 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Č


Logik

  • *****
  • 982
    • Zobrazit profil
    • E-mail
Re:Python seznamy česky
« Odpověď #1 kdy: 04. 07. 2012, 15:37:04 »
A když přesměruješ výstup do souboru, tak je v souboru také C\xxxxe\xxxxxtina?

MilanČ

Re:Python seznamy česky
« Odpověď #2 kdy: 04. 07. 2012, 16:00:20 »
Tak takhle daleko jsem ještě nedošel  ;). Plánuji, že zhruba do tří týdnů bych do souboru vypisovat mohl.
MilanČ

pecko

  • ***
  • 105
    • Zobrazit profil
    • E-mail
Re:Python seznamy česky
« Odpověď #3 kdy: 04. 07. 2012, 16:03:06 »
vies sem pastnut cely skript?

MilanČ

Re:Python seznamy česky
« Odpověď #4 kdy: 04. 07. 2012, 16:23:35 »
# -*- 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


pecko

  • ***
  • 105
    • Zobrazit profil
    • E-mail
Re:Python seznamy česky
« Odpověď #5 kdy: 04. 07. 2012, 16:42:56 »
skus:


#!/usr/bin/env python
# -*- coding: utf-8 -*-


x = ['prvý', 'druhý', 'tretí', 'štvrtý', 'ľščťžýáí']
print ', '.join(x)

pecko

  • ***
  • 105
    • Zobrazit profil
    • E-mail
Re:Python seznamy česky
« Odpověď #6 kdy: 04. 07. 2012, 16:56:01 »
alebo:


#!/usr/bin/env python
# -*- coding: utf-8 -*-

x = ['prvý', 'druhý', 'tretí', 'štvrtý', 'ľščťžýáí']
for i in x:
    print i,

MilanČ

Re:Python seznamy česky
« Odpověď #7 kdy: 04. 07. 2012, 16:59:38 »
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Č

MilanČ

Re:Python seznamy česky
« Odpověď #8 kdy: 04. 07. 2012, 17:09:08 »
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Č

pecko

  • ***
  • 105
    • Zobrazit profil
    • E-mail
Re:Python seznamy česky
« Odpověď #9 kdy: 04. 07. 2012, 17:12:44 »
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

MilanČ

Re:Python seznamy česky
« Odpověď #10 kdy: 04. 07. 2012, 17:34:42 »
Ok, díky.
MilanČ

Dramon

Re:Python seznamy česky
« Odpověď #11 kdy: 04. 07. 2012, 17:53:28 »
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ě.


MilanČ

Re:Python seznamy česky
« Odpověď #12 kdy: 06. 07. 2012, 12:13:58 »
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Č

Re:Python seznamy česky
« Odpověď #13 kdy: 06. 07. 2012, 12:47:26 »
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.