Anonymní profil Michal – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil Michal – Programujte.comAnonymní profil Michal – Programujte.com

 

Příspěvky odeslané z IP adresy 83.240.77.–

Python › KeyError (klíč s diakritikou)
24. 1. 2012   #152816

#4 yetty
Ahoj, tady Michal tak jsem si založil (obnovil) účet abych ti mohl poděkovat.

  Nalezl jsem chybu a to jen díky tobě, zachránil si mě, děkuji.

Něnapsal jsem, že využívám knihovnu Tkinter a seznam vzorů mám uložen v komponentě listbox. Popravdě by mě nenapadlo, že vestavěná knihovna bude působit chybu v programu :-) Listbox si data asi reprezentuje nějak jinak, protože přez něj jsem ve slovníku nic nenašel. když jsem vytvořil kopii seznamu kopie_seznamu = [] a plnil obě věci zaráz, pak při kliknucí pracoval jen s pozicí a vyhledával podle kopie vše fungovalo

př: chyby

    pom = listbox1.curselection()
    vzor = pom[1]  # zde se naházel řetězec vzor   

   vysledek = slovnik[vzor] # chyba nenalezne

spravne:

    pom = self.listbox1.curselection()
    pom = int(pom[0]) #pom[0] obsahuje řetezec s číslem položky
    vzor = kopie_vzoru[pom] #pom je index vabraného -> kopie_vzoru má na stejném místě vzor ve správném kódování :-) a prak vše funguje

Bez tebe bych, nevěděl kde hledat a tak mnohokrát děkuji

Michal
Python › KeyError (klíč s diakritikou)
23. 1. 2012   #152753

#2 yetty

Mnohokrát děkuji, to zní velmi pravděpodobně :-). Něvěděl jsem to a už jsem ti opravdu myslel, že si ze mě Python dělá srandu.

Pracuji v linuxu a příkaz file mi o souborech vypíše následující:

michal@hpg62:~/Dokumenty/Vzory/zadani$ file GUI/slova
GUI/slova: UTF-8 Unicode text
michal@hpg62:~/Dokumenty/Vzory/zadani$ file seznamVzoru.dat
seznamVzoru.dat: UTF-8 Unicode text, with very long lines

Podle seznamVzoru se naplni slovnik, a podle slova se v něm pak vyhledava

Myslel jsem že to znamená to stejne (v posdatě), ale "nedačí" se mi pomoci recode ziskat stejny formát (teda nevím jak, znám jen Latin2..u8)

Díky za pomoc, tohle je doufám poslední s čím budu otravovat

Michal
Python › KeyError (klíč s diakritikou)
23. 1. 2012   #152730

Dobrý den,

  Přiznám se, že už jsem se svou chybou bezradný, protože mi nejde do hlavy jak je to možné. Mám slovník, do kterého načtu slova. Pak program projíždí všechny načtené možnosti slov a přiřaruje jim slova ze slovníku. pokud jsou slova bez diakritiky vše funguje, ale když se objeví háčky a čárky, slovník hlásí chybu, že nic nenalezl.

Kód (ve skratce):

#!/usr/bin/env python
# -*- tzdf coding: UTF8

def funkce(self):

  print(self.slovo.vzor)   #vypise capartě
  print("x"+self.slovo.vzor+"x")    #raději jestli kolem slova neni neviditelny "binec"
  p = self.vsechny_vzory["capartě"]   #zde se slovo vyhleda
  if p:
     print("capartě nalezen")  #program úspešně vypise že capartě nalezl (ale to jsem ho tam dodal ručně jako debag)

  ze_slovniku = self.vsechny_vzory[self.slovo.vzor] # zde už program spadne

# self.slovo.vzor je řetězec

# self.vsechny_vzory je slovni {} a capartě tam opravdu je

Výpis programu:

capartě
xcapartěx
capartě nalezen
Exception in Tkinter callback
Traceback (most recent call last):
  File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 1413, in __call__
    return self.func(*args)
  File "./appl.py", line 719, in listbox1dbclick
    self.rozgenerovani()
  File "./appl.py", line 754, in rozgenerovani
    vzor = self.vsechny_vzory.seznam_vzoru[vyhledej]
KeyError: u'capart\u011b'

Díky moc, pokud někdo máte jakékoliv tušení proč se tak děje (kdybych do slovniku uložil caparte a hledal caparte vse funguje)

Michal

TiMi
Inzerce › čeští vývojáři webových her…
21. 2. 2011   #139174

Ahoj,
rád bych se zeptal, zdali neznáte nějakou českou vývojovou firmu, která by vytvářela webové hry. Stylu Travian (tím, myslím se serverem pro spousty hráčů). Mám celkem zajímavý návrh (tím nemyslím, pouze myšlenku, ale z 80% hotový rozbor) a říkal jsem si, že by se jim mohl líbit. (Rád bych byl členem něčeho tak úžasného)
O volných chvílích hledám na internetu, ale asi se strýčka googla ptám špatně. nic nenajde. Takže jestli mi někdo pomůže budu rád.
Díky

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý