| | |
| Stránka: 1 z 1
| [ Príspevkov: 9 ] | |
Autor | Správa |
---|
Registrovaný: 23.12.10 Prihlásený: 10.09.22 Príspevky: 1056 Témy: 157 Bydlisko: KK/PP/BA | Napísal F3RY: 05.10.2013 23:39 | |
|
Zdravim, potreboval by som nacitat retazec, z neho povyberat cisla a ulozit to do pola. K mojmu rieseniu: Cisla som hladal pomocou ASCII znakov. Ak vstup bude koncit cislom, program spadne, inak zbehne dobre. Chyba bude v druhom while cykle. Vedel by niekto poradit? Kód: def nacitaj(pole): mnozina_ascii = {48,49,50,51,52,53,54,55,56,57} nove_pole = [] cislo = '' i = 0 while (i < len (pole)): if (ord(pole[i]) in mnozina_ascii): while (ord(pole[i]) in mnozina_ascii): cislo = cislo + pole[i] i = i + 1 nove_pole.append(int(cislo)) cislo = '' i = i + 1 return nove_pole
Ak vstup konci cislom, vypise tuto chybu: Citácia: Traceback (most recent call last): File "<pyshell#32>", line 1, in <module> nacitaj ('sa54') File "C:/Users/ferdo/Desktop/Python/p1.py", line 8, in nacitaj while ((ord(pole[i]) in mnozina_ascii)): IndexError: string index out of range Myslim, ze sa pokusa testovat neexistujuci prvok pola, ale akakolvek podmienka bud nefunguje, alebo hlasi inu chybu.
_________________ HP ProBook 4530s Intel® Core™ i5-2430M (2.4GHz, 3MB, 2 jadrá)*4GB 1333MHz DDR3*ATI Mobility Radeon HD 6490 1GB + Intel HD Graphics 3000*640GB SATA 5400RPM *Windows 7 Home Premium 64 bitová verzia Lenovo IdeaPad Z50-70 Intel Core i5 4210 Haswell* NVIDIA GeForce GT 840M 4GB + Intel HD Graphics 4000*SSHD 1TB 5400 otáčok + 8GB cache*RAM 4GB* Full HD (1920 × 1080)*Windows 10 pro
Boh je reálny, pokial nebol deklarovaný ako integer |
|
Registrovaný: 20.03.08 Prihlásený: 08.03.17 Príspevky: 596 Témy: 149 Bydlisko: Houston, Texas | Napísal Unlink: 06.10.2013 14:16 | |
|
namiesto toho prvého i = i + 1 daj break Kód: def nacitaj(pole): mnozina_ascii = {48,49,50,51,52,53,54,55,56,57} nove_pole = [] cislo = '' i = 0 while (i < len (pole)): if (ord(pole[i]) in mnozina_ascii): while (ord(pole[i]) in mnozina_ascii): cislo = cislo + pole[i] break nove_pole.append(int(cislo)) cislo = '' i = i + 1 return nove_pole ps. načo vlastne tak komplikovano? python síce neviem, ale tak napadá ma o dosť kratšie riešenie Kód: def nacitaj(pole): nove_pole = [] i = 0 while (i < len (pole)): if (pole[i] >= '0' and pole[i] <= '9'): nove_pole.append(int(pole[i])) i = i + 1 return nove_pole
|
|
Registrovaný: 23.12.10 Prihlásený: 10.09.22 Príspevky: 1056 Témy: 157 Bydlisko: KK/PP/BA | Napísal autor témy F3RY: 06.10.2013 15:09 | |
|
Dakujem za odpoved, ale ani jedno riesenie nerobi to, co by som potreboval. Ak by mal zo vstupu citat jednociferne cisla, bolo by to OK, ale co ak je tam cislo napr. 276? Preto tam mam ten druhy while cyklus.
_________________ HP ProBook 4530s Intel® Core™ i5-2430M (2.4GHz, 3MB, 2 jadrá)*4GB 1333MHz DDR3*ATI Mobility Radeon HD 6490 1GB + Intel HD Graphics 3000*640GB SATA 5400RPM *Windows 7 Home Premium 64 bitová verzia Lenovo IdeaPad Z50-70 Intel Core i5 4210 Haswell* NVIDIA GeForce GT 840M 4GB + Intel HD Graphics 4000*SSHD 1TB 5400 otáčok + 8GB cache*RAM 4GB* Full HD (1920 × 1080)*Windows 10 pro
Boh je reálny, pokial nebol deklarovaný ako integer |
|
Registrovaný: 20.03.08 Prihlásený: 08.03.17 Príspevky: 596 Témy: 149 Bydlisko: Houston, Texas | Napísal Unlink: 06.10.2013 15:29 | |
|
aha, ja som myslel že ti stačia tie čislice vypísať no tak skús regulárne výrazy Kód: http://stackoverflow.com/questions/4289331/python-extract-numbers-from-a-string alebo ak chceš ten svoj kód tak za Kód: cislo = cislo + pole[i] i = i + 1 pridaj podmienku že či už niesi na konci Kód: if (i == len(pole)): break
|
|
Registrovaný: 23.12.10 Prihlásený: 10.09.22 Príspevky: 1056 Témy: 157 Bydlisko: KK/PP/BA | Napísal autor témy F3RY: 06.10.2013 16:27 | |
|
Uz to pekne funguje s tym break prikazom, dakujem za pomoc
_________________ HP ProBook 4530s Intel® Core™ i5-2430M (2.4GHz, 3MB, 2 jadrá)*4GB 1333MHz DDR3*ATI Mobility Radeon HD 6490 1GB + Intel HD Graphics 3000*640GB SATA 5400RPM *Windows 7 Home Premium 64 bitová verzia Lenovo IdeaPad Z50-70 Intel Core i5 4210 Haswell* NVIDIA GeForce GT 840M 4GB + Intel HD Graphics 4000*SSHD 1TB 5400 otáčok + 8GB cache*RAM 4GB* Full HD (1920 × 1080)*Windows 10 pro
Boh je reálny, pokial nebol deklarovaný ako integer |
|
Registrovaný: 23.12.10 Prihlásený: 10.09.22 Príspevky: 1056 Témy: 157 Bydlisko: KK/PP/BA | Napísal autor témy F3RY: 30.10.2013 7:35 | |
|
Zdram, nechcem spamovat, preto som vlozil tento problem do svojej starsej temy. Potrebujem zistit, ci sa meno suboru nachadza v databaze, databaza je vseobecny strom (ale to asi nieje podstatne), ide o to, ze to prehladavam rekurziou, a aj ked to najde, pokracuje v hladani dalej, cize vrati FALSE, existuje nejeky prikaz, na okamzite ukoncenie metody/funkcie? Pripadne, ako prerobit tento kod, aby okamzite vratilo true? Kód: def __in__(self, file_name): input = False; if (self.meno != file_name): for file in self.child: file.__in__(file_name); else: return True; return input;
_________________ HP ProBook 4530s Intel® Core™ i5-2430M (2.4GHz, 3MB, 2 jadrá)*4GB 1333MHz DDR3*ATI Mobility Radeon HD 6490 1GB + Intel HD Graphics 3000*640GB SATA 5400RPM *Windows 7 Home Premium 64 bitová verzia Lenovo IdeaPad Z50-70 Intel Core i5 4210 Haswell* NVIDIA GeForce GT 840M 4GB + Intel HD Graphics 4000*SSHD 1TB 5400 otáčok + 8GB cache*RAM 4GB* Full HD (1920 × 1080)*Windows 10 pro
Boh je reálny, pokial nebol deklarovaný ako integer |
|
Registrovaný: 20.03.08 Prihlásený: 08.03.17 Príspevky: 596 Témy: 149 Bydlisko: Houston, Texas | Napísal Unlink: 30.10.2013 7:51 | |
|
Kód: def __in__(self, file_name): input = False; if (self.meno != file_name): for file in self.child: if file.__in__(file_name): return True; else: return True; return input; treba zistovať čo to vrátilo aj pri tej rekurzii
|
|
Registrovaný: 13.11.07 Prihlásený: 20.08.16 Príspevky: 1702 Témy: 0 | Napísal chrono: 30.10.2013 10:28 | |
|
Tá premenná input tam nie je zbytočná? (pretože nevidím, že by sa tam používala) Kód: def __in__(self, file_name): if self.meno == file_name: return True
for file in self.child: if file.__in__(file_name): return True;
return False
|
|
Registrovaný: 23.12.10 Prihlásený: 10.09.22 Príspevky: 1056 Témy: 157 Bydlisko: KK/PP/BA | Napísal autor témy F3RY: 31.10.2013 0:47 | |
|
Vdaka chalani
_________________ HP ProBook 4530s Intel® Core™ i5-2430M (2.4GHz, 3MB, 2 jadrá)*4GB 1333MHz DDR3*ATI Mobility Radeon HD 6490 1GB + Intel HD Graphics 3000*640GB SATA 5400RPM *Windows 7 Home Premium 64 bitová verzia Lenovo IdeaPad Z50-70 Intel Core i5 4210 Haswell* NVIDIA GeForce GT 840M 4GB + Intel HD Graphics 4000*SSHD 1TB 5400 otáčok + 8GB cache*RAM 4GB* Full HD (1920 × 1080)*Windows 10 pro
Boh je reálny, pokial nebol deklarovaný ako integer |
|
| Stránka: 1 z 1
| [ Príspevkov: 9 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| Assembler,nacitanie retazca v Assembler, C, C++, Pascal, Java | 0 | 394 | 16.04.2013 19:01 crawn | | funkcia na doplnenie retazca do retazca v PHP, ASP | 3 | 413 | 06.07.2009 19:21 stenley | | 8080 spracovanie retazca v Assembler, C, C++, Pascal, Java | 1 | 648 | 07.01.2009 14:52 stopa27 | | znak do retazca v Assembler, C, C++, Pascal, Java | 3 | 361 | 15.11.2011 11:03 marian_r | | Výťah časti reťazca v PHP, ASP | 6 | 441 | 10.05.2009 19:52 Denco1 | | kontrola retazca vo formulari v JavaScript, VBScript, Ajax | 8 | 907 | 05.09.2007 14:23 juho | | nahradenie reťazca inym reťazcom v PHP, ASP | 3 | 541 | 02.12.2009 23:48 Supicek | | Regulárne výrazy - negácia reťazca v PHP, ASP | 7 | 910 | 22.10.2007 20:39 juho | | C - zistovanie pismena z retazca v Assembler, C, C++, Pascal, Java | 7 | 565 | 05.12.2011 22:45 namorblade3 | | kontrola zadaneho retazca vo formulari v PHP, ASP | 5 | 566 | 29.08.2007 19:15 juho | | vybratie urcitej casti retazca od zvoleneho znaku v PHP, ASP | 1 | 459 | 20.07.2009 15:21 Ďuri | | python v Perl, Python, Ruby, CGI | 1 | 736 | 19.12.2011 23:09 Ďuri | | Python v Perl, Python, Ruby, CGI | 12 | 883 | 02.07.2021 8:41 void | | Help python v Perl, Python, Ruby, CGI | 6 | 1796 | 20.04.2009 8:18 bji | | Python-funkcia v Perl, Python, Ruby, CGI | 12 | 693 | 12.11.2014 0:21 Misosvk | | python LinearDiscriminantAnalysis v Perl, Python, Ruby, CGI | 0 | 456 | 22.08.2016 13:23 marian_r |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|