abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
eParkomat, startup z ČR, postoupil mezi finalisty evropského akcelerátoru ChallengeUp!
Robot na pivo mu otevřel dveře k opravdovému byznysu
Internet věcí: Propojený svět? Už se to blíží...
dnes 13:30 | Zajímavý software

Byly uvolněny zdrojové kódy známé rogue-like hry DoomRL. Počátky hry jsou v roce 2002. Je napsána ve FreePascalu a zdrojový kód je nyní k dispozici na GitHubu pod licencí GNU GPL 2.0. Autor pracuje na nové hře Jupiter Hell, která je moderním nástupcem DoomRL a na jejíž vývoj shání peníze prostřednictvím Kickstarteru.

Blaazen | Komentářů: 0
dnes 13:15 | Pozvánky

Přijďte s námi oslavit vydání Fedory 25. Na programu budou přednášky o novinkách, diskuse, neřízený networking atd. Release Party se bude konat 16. prosince v prostorách společnosti Etnetera. Na party budou volně k dispozici také propagační materiály, nová DVD s Fedorou 25 a samozřejmě občerstvení. Přednášky budou probíhat v češtině. Pro více informací se můžete podívat na web MojeFedora.cz. Jen připomínám, že tentokrát jsme zavedli

… více »
frantisekz | Komentářů: 0
včera 16:38 | Komunita

Byly zveřejněny videozáznamy přednášek a workshopů z letošní konference OpenAlt konané 5. a 6. listopadu v Brně. K videozáznamům lze přistupovat ze stránky na SuperLectures nebo přes program konference, detaily o vybrané přednášce nebo workshopu a dále kliknutím na ikonku filmového pásu. Celkově bylo zpracováno 65 hodin z 89 přednášek a workshopů.

Ladislav Hagara | Komentářů: 0
včera 11:30 | Komunita

Bylo oznámeno, že bude proveden bezpečnostní audit zdrojových kódů open source softwaru pro implementaci virtuálních privátních sítí OpenVPN. Audit provede Matthew D. Green (blog), uznávaný kryptolog a profesor na Univerzitě Johnse Hopkinse. Auditována bude verze 2.4 (aktuálně RC 1, stabilní verze je 2.3.14). Audit bude financován společností Private Internet Access [reddit].

Ladislav Hagara | Komentářů: 4
včera 06:00 | Komunita

Na YouTube byl publikován Blender Institute Reel 2016, ani ne dvouminutový sestřih z filmů, které vznikly za posledních 10 let díky Blender Institutu. V institutu aktuálně pracují na novém filmu Agent 327. Dění kolem filmu lze sledovat na Blender Cloudu. Videoukázka Agenta 327 z června letošního roku na YouTube.

Ladislav Hagara | Komentářů: 0
včera 01:02 | Zajímavý článek

Minulý týden byly vydány verze 1.2.3 a 1.1.7 webového poštovního klienta Roundcube. V oznámení o vydání bylo zmíněno řešení bezpečnostního problému nalezeného společností RIPS a souvisejícího s voláním funkce mail() v PHP. Tento týden byly zveřejněny podrobnosti. Útočník mohl pomocí speciálně připraveného emailu spustit na serveru libovolný příkaz. Stejně, jak je popsáno v článku Exploit PHP’s mail() to get remote code execution z roku 2014.

Ladislav Hagara | Komentářů: 1
8.12. 16:00 | Nová verze

Byla vydána verze 0.98 svobodného nelineárního video editoru Pitivi. Z novinek lze zmínit například přizpůsobitelné klávesové zkratky. Videoukázka práce s nejnovější verzí Pitivi na YouTube.

Ladislav Hagara | Komentářů: 1
8.12. 15:00 | Zajímavý software

Stop motion je technika animace, při níž je reálný objekt mezi jednotlivými snímky ručně upravován a posouván o malé úseky, tak aby po spojení vyvolala animace dojem spojitosti. Jaký software lze pro stop motion použít na Linuxu? Článek na OMG! Ubuntu! představuje Heron Animation. Ten bohužel podporuje pouze webové kamery. Podpora digitálních zrcadlovek je začleněna například v programu qStopMotion.

Ladislav Hagara | Komentářů: 5
7.12. 21:21 | Nová verze Ladislav Hagara | Komentářů: 0
7.12. 11:44 | Zajímavý projekt

Na Indiegogo byla spuštěna kampaň na podporu herní mini konzole a multimediálního centra RetroEngine Sigma od Doyodo. Předobjednat ji lze již od 49 dolarů. Požadovaná částka 20 000 dolarů byla překonána již 6 krát. Majitelé mini konzole si budou moci zahrát hry pro Atari VCS 2600, Sega Genesis nebo NES. Předinstalováno bude multimediální centrum Kodi.

Ladislav Hagara | Komentářů: 2
Kolik máte dat ve svém domovském adresáři na svém primárním osobním počítači?
 (32%)
 (24%)
 (29%)
 (7%)
 (5%)
 (3%)
Celkem 808 hlasů
 Komentářů: 50, poslední 29.11. 15:50
Rozcestník
Reklama

Dotaz: kde je chyba python.

13.2.2013 15:33 Kamil | skóre: 7
kde je chyba python.
Přečteno: 394×
Mam takyto kod.
import string

string_array = ['Jozko', 'mal', 'mal', 'ranajky', 'polievku', 'zvysila','Jozko', 'mal','mal', 'sa', 'mu', 'od', 'vcera','polievku','zvysila']


for i in range(len(string_array)):
     if string_array.count(string_array[i]) > 1:
         added_word_counter = 0
         while True:
             added_word_counter += 1
             searched_string = string_array[i]
             for j in range(added_word_counter):
                searched_string += ' ' + string_array[i + j + 1]
             if string.count(searched_string) > 1:
               	print '>>>>' + searched_string + ': ' + str(string.count(searched_string))
             else:
               	break
a malo by to vypisat :
>>>>Jozko mal mal 
>>>>>polevku zvysila
ale vypisuje mi tam nejaku chybu...vie nniekto poradit?

Řešení dotazu:


Odpovědi

13.2.2013 15:47 chrono
Rozbalit Rozbalit vše Re: kde je chyba python.
Čo to má vlastne robiť? Má to hľadať opakujúce sa časti a tie vypísať?
13.2.2013 16:05 Kamil | skóre: 7
Rozbalit Rozbalit vše Re: kde je chyba python.
hej presne to to ma robit najst a vypisat.
13.2.2013 15:55 NN
Rozbalit Rozbalit vše Re: kde je chyba python.
if string.count
Nevola se nahodou metoda na objekt ne na modul?
13.2.2013 16:15 kuka
Rozbalit Rozbalit vše Re: kde je chyba python.
ale vypisuje mi tam nejaku chybu

A procpak nenapises jakou?
13.2.2013 17:22 Kamil | skóre: 7
Rozbalit Rozbalit vše Re: kde je chyba python.
tu je chuba ktoru vypisuje: TypeError: count() takes at least 1 argument (0 given)
13.2.2013 17:56 Sten
Rozbalit Rozbalit vše Re: kde je chyba python.
Ta celá chyba je:
Traceback (most recent call last):
  File "test.py", line 14, in <module>
    if string.count(searched_string) > 1:
  File "/usr/lib/python2.7/string.py", line 348, in count
    return s.count(*args)
TypeError: count() takes at least 1 argument (0 given)
Pak se stačí podívat do dokumentace, co vlastně metoda count očekává.
13.2.2013 16:33 mike
Rozbalit Rozbalit vše Re: kde je chyba python.
cnts = {}
for word in string_array:
    cnts[word] = cnt.setdefault(word,0) + 1
Jendа avatar 13.2.2013 16:53 Jendа | skóre: 73 | blog: Výlevníček | JO70FB
Rozbalit Rozbalit vše Re: kde je chyba python.
ale vypisuje mi tam nejaku chybu...vie nniekto poradit?
Napadla mě nějaká rada.
rADOn avatar 13.2.2013 17:30 rADOn | skóre: 44 | blog: bloK | Praha
Rozbalit Rozbalit vše Re: kde je chyba python.
Pro priste: Kdyz ti to vypisuje "nejakou" chybu tak to "nejak" sprav. Pokud chces poradit, budes muset byt vyrecnejsi. Napsat tu chybu by pomohlo, ale hlavne budes muset popsat o co se vlastne snazis.

Predem ale muzu rici ze tam mas jeste jeden problem, totiz ze tohle neni vubec zadny python. To je nejaky pascal nebo basic nebo podobna hruza znasilnena do neceho co vzdalene pripomina syntaxi pythonu, aniz by to melo s programovanim v pythonu cokoliv spolecneho.

Nechci se te dotknout ale pomoci ti – viditelne jsi zabil znacny cas uplne zbytecne, vymyslenim konstrukci ktere v pythonu nejsou vubec potreba. Najdi si nejdriv nejaky zakladni tutorial pythonu – pokud uz v necem programovat umis tak to probehnes rychle a usetris si ve vysledku spoustu casu. Napriklad, pokud chces v pythonu spojit ona slova od i do j do retezce, tak nebudes psat nekolikaradkovy cyklus, ale napises neco jako
" ".join(string_array[i:j])
Podobnych konstrukci kterymi si jen hazis klacky pod nohy tam mas vice, ale bez znalosti zadani tezko radit.

"2^24 comments ought to be enough for anyone" -- CmdrTaco
13.2.2013 17:37 Kamil | skóre: 7
Rozbalit Rozbalit vše Re: kde je chyba python.
tak ide o to ze chcem nacitat subor s textom a potrebujem porovnat kazdy riadok s kazdym a vyhladat spolocne retazne cize uz dve slova, ktore sa opakuju v dvoch riadkoch by to vypisalo.
rADOn avatar 13.2.2013 17:59 rADOn | skóre: 44 | blog: bloK | Praha
Rozbalit Rozbalit vše Re: kde je chyba python.
Tak to bych z toho vazne nevydedukoval :-)

Porovnavanim vseho na vsechno se daleko nedostanes, budes si muset drzet index ve slovniku. Neni to uplne trivialni uloha a tim spis plati co jsem rikal prve - nejdriv se nauc lepe python. Neni to nic slozityho. Pokud neumis prochazet pole bez range() nema moc smysl resit to dal.

Jen tak pro zajimavost, jakej jazyk jsi delal predtim?

"2^24 comments ought to be enough for anyone" -- CmdrTaco
13.2.2013 18:21 l4m4
Rozbalit Rozbalit vše Re: kde je chyba python.
Nepiš prosím, že musíš porovnávat každý řádek s každým, protože to je, jak to chceš dělat, a bude se to nejspíš řešit inteligentněji.

Je cílem vyhledat všechny sekvence slov o délce alespoň dva (překrývající se/nepřekrývající se, rozdělené mezi řádky/uvnitř řádků/uvnitř každého jednotlivého řádku/... ???) vyskytující se alespoň dvakrát a vypsat je? Zřejmě se má vypsat vždy nejdelší možná sekvence, ale to není vůbec jednoznačné.
A B A B C A B C D A B C D E
Má se vypsat pouze A B, protože je tam nejvícekrát, pouze A B C D, protože je nejdelší, něco jiného ...?
A B C B C D C D A D A B
Tady by se mělo vypsat co? Jsou tam čtyři sekvence, které se všechny vyskytují právě dvakrát, a překrývají se.

Takový problém je prostě zapotřebí specifikovat přesně.
13.2.2013 19:34 Kamil | skóre: 7
Rozbalit Rozbalit vše Re: kde je chyba python.
takze presnejsie je potrebne vyhladat ako pises sekvencie slov o dlzke najmenej dve slova, avsak ked je sekvencia dlhsia, tak ju treba vypisat co najdlhsiu moznu

Tvoja otazka: A B A B C A B C D A B C D E Má se vypsat pouze A B, protože je tam nejvícekrát, pouze A B C D, protože je nejdelší, něco jiného ...? A B C B C D C D A D A B

Moja odpoved:

tu sa ma vypisat iba najdlhsia, prekryvanie sa neberie do uvahy.
13.2.2013 20:59 l4m4
Rozbalit Rozbalit vše Re: kde je chyba python.
#!/usr/bin/python
import sys, re

def only_multiple_occurences(d):
    return dict((k, v) for k, v in d.iteritems() if len(v) > 1)

def add_to_dict_list(d, k, x):
    if k in d:
        d[k].append(x)
    else:
        d[k] = [x]

# Get words.
words = list(re.findall(r'\w+', sys.stdin.read()))
nwords = len(words)

# Find all bigrams with mutliple occurences and gather their positions.
n = 2
allngrams = [None, words, {}]
ngrams = allngrams[n]
for i in range(nwords+1-n):
    add_to_dict_list(ngrams, tuple(words[i:i+2]), i)
allngrams[n] = only_multiple_occurences(ngrams)

# Find all longer n-grams, searching only at positions of already found shorter
# n-grams.
while allngrams[n]:
    prevngrams = allngrams[n]
    n += 1
    allngrams.append({})
    ngrams = allngrams[n]
    for prevngram, positions in prevngrams.iteritems():
        for i in positions:
            if i + n <= nwords:
                add_to_dict_list(ngrams, prevngram + (words[i+n-1],), i)
    allngrams[n] = only_multiple_occurences(ngrams)

# Print the n-grams, starting from the longest while excluding all n-grams that
# are part of any longer n-gram.
n -= 1
excluded = {}
while n >= 2:
    nextexcluded = set()
    for ngram, positions in allngrams[n].iteritems():
        if ngram not in excluded:
            print ' '.join(ngram) + ' (%ux)' % len(positions)
        nextexcluded.add(tuple(ngram[1:]))
        nextexcluded.add(tuple(ngram[:-1]))
    excluded = nextexcluded
    n -= 1
13.2.2013 21:58 mike
Rozbalit Rozbalit vše Re: kde je chyba python.
Je to zbytecne komplikovane a kanon na vrabce. Staci
1. Behem prvniho pruchodu pres string_array zjistit pocet vyskutu vsech slov a neuvazovat ty, ktere se vyskutuji min nez 2 krat 
2. Behem druheho pruchodu pres string_array najit nejdelsi retezec, jehoz vsechna slova, jsou v seznamu (slovniku) vytvorenem v 1.kroku
3. Konec
13.2.2013 22:05 l4m4
Rozbalit Rozbalit vše Re: kde je chyba python.
Talk is cheap. Show me the code.
13.2.2013 22:45 mike
Rozbalit Rozbalit vše Re: kde je chyba python.
string_array = ['Jozko', 'mal', 'mal', 'ranajky', 'polievku', 'zvysila','Jozko', 'mal','mal', 'sa', 'mu', 'od', 'vcera','polievku','zvysila']

#Prvni pruchod - pocitani vyskytu
cnts = {}
for word in string_array:
    cnts[word] = cnts.setdefault(word,0) + 1

valids = [v for v in cnts.keys() if cnts[v] > 1]

#Druhy pruchod - hledani nejdelsiho vyhovujiciho retezce
max = {'beg': 0, 'end': 0}
cur = {'beg': 0, 'end': 0}
for pos in range(len(string_array)):
    if string_array[pos] in valids:
        cur['end'] += 1

        if not string_array[cur['beg']] in valids:
            cur['beg'] = pos
    else:
        if (cur['end'] - cur['beg']) > (max['end'] - max['beg']):
            max['end'] = cur['end']
            max['beg'] = cur['beg']
        cur['beg'] = pos
        cur['end'] = pos

print string_array[max['beg']:max['end']+1]
13.2.2013 23:21 Kamil | skóre: 7
Rozbalit Rozbalit vše Re: kde je chyba python.
Dakujem velmi pekne :)
14.2.2013 08:21 mike
Rozbalit Rozbalit vše Re: kde je chyba python.
ten kod ma hromadu chyb a nedodelek, psal jsem to rychle, tak to jeste pouprav.
14.2.2013 07:56 l4m4
Rozbalit Rozbalit vše Re: kde je chyba python.
Vy jste fakt oba totální magoři, jeden větší expert než druhý.

Jeden napíše, že jednoduchém příkladu má program vypsat
Jozko mal mal 
polevku zvysila
potom nedokáže v deseti příspěvcích popsat, co to přesně má dělat obecně, a na otázky po upřesnění odpovídá nejasnými kecy, které lze interpretovat deseti způsoby, a nakonec označí za řešení nesmyslný program jiného experta, který nevypíše, co má, ani na tom zasraném jednoduchém úvodním příkladu, natož na těch A B C..., které jsem psal já.

Pokud Kamile napíšeš (resp. nenapíšeš, toho jsi nebyl schopen, a muselo se to z tebe složitě dostávat), že má program najít nějaké nejdelší opakující se podsekvence a tenhle program považuješ za řešení, tak se nech vyšetřit. A hlavně se prosím nikdy nepokoušej o programování.
14.2.2013 16:56 Kamil | skóre: 7
Rozbalit Rozbalit vše Re: kde je chyba python.
ako spravne riesenie som oznacil aj tvoje riesenie. tvoje aj pouzijem, cez slovniky som to chcel robit aj ja len som nevedel ako.Tvoje riesenie aj pouzijem. Mikeovo som oznacil preto lebo co som to narychlo vyskusal tak to vypisalo priblizne co malo bola tam chyba ale ako tak to islo...mozno to bude niekomu stacit.

Nemusis sa tu hned rozculovat. Ale dakujem aj tebe za to riesenie :)
5.3.2013 22:46 Kamil | skóre: 7
Rozbalit Rozbalit vše Re: kde je chyba python.
ako by trebalo pozmenit kod aby to nevyhladavalo sposobom ze cely subor nacita do zoznamu a vyhladava najdlhsie opakovanie retazce v nom ale aby sa to bralo iba po riadkoch. Cize najdlhsi retazec co sa bude opakovat moze byt ked sa budu zhodovat dve riadky.

Cize:

Teraz to robi asi tatko:

A B C A B C A B C A B C

vysledok je ze tam je 2 krat retazec A B C A B C

a ja by som z toho potreboval dostat ze tam je 4 krat A B C

5.3.2013 22:49 Kamil | skóre: 7
Rozbalit Rozbalit vše Re: kde je chyba python.
kod sa mysli ten, ktory tu dal l4m4 vyssie v komentaroch.(oznaceni ako riesenie)
5.3.2013 22:55 Kamil | skóre: 7
Rozbalit Rozbalit vše Re: kde je chyba python.
z tohto sa to berie vtedy som nedal formatovanie :)
A B C 
A B C 
A B C
A B C

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267   www.czech-server.cz
© 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.