Nesmyslné syntaktické chyby – Python – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Nesmyslné syntaktické chyby – Python – Fórum – Programujte.comNesmyslné syntaktické chyby – Python – Fórum – Programujte.com

 

Martin
~ Anonymní uživatel
1602 příspěvků
25. 4. 2012   #1
-
0
-

Ahoj, mám jeden problém se kterým se potýkám celkem dlouho, ale teď se to už nedá vydržet takhle se kódit prostě nedá. O co jde - mám aplikace ve kterých pracuju hodně s vlastníma modulama, pokud v nějakém něco měním, tak python asi u 6/10 kompilací zahlásí úplně nesmyslnou syntaktickou chybu, většinou to je na konci nějakého řádku, nebo na první pozici ve slově def, v menší míře úplně někde jinde v kódu. Čím delší mám modul a čím víc ho upravím tak tím víc se tyhle chyby vyskytnou. Většinou stačí přidat někde prázdný řádek, ale skoro pokaždé to zahlásí chybu zase úplně jinde a musím přidávat znova další řádky. Vždy to je jen v modulu ve kterém momentálně pracuji, v hlavním zdrojáku s programem který vše spouští to nedělá. V poslední době to došlo tak daleko, že sice projde kompilace, ale při běhu zahlásí, že nemá definovanou nějakou proměnnou i když ji prostě definouvanou má a před X modifikacema kódu to fungovalo a nijak jsem tu část kódu neměnil. Tohle prostě naprosto nechápu.

Python používám ve verzi 2.4.1, u všech zdrojáků mám kódování cp1250 a všude používám wxPython 2.8

Setkal jse te s tímto už někdo? díky moc za rady, Martin.

Nahlásit jako SPAM
IP: 89.24.91.–
Asinkan0
Newbie
25. 4. 2012   #2
-
0
-

#1 Martin
Já se s tim teda nesetkal, ale pokud sem nedáš kus kódu a hlášky, co ti to hází, tak ti těžko někdo řekne něco konkrétního. PS: V čem to programuješ (myslim prostředí)?

Nahlásit jako SPAM
IP: 90.179.136.–
Martin
~ Anonymní uživatel
1602 příspěvků
25. 4. 2012   #3
-
0
-

#2 Asinkan
Kus kódu není potřeba, nejde o to že by byl špatný, syntaxe je správná ale prostě python tam nachází úplně nesmyslné chyby a jak říkám stačí přidat prázdnej řádek a funguje to. Tak například ukázka takové chyby:

Traceback (most recent call last):
  File "D:\Python24\Project\PARAZIT\release_103\Parazit.py", line 13, in -toplevel-
    from menupanel import *
  File "D:\Python24\Project\PARAZIT\release_103\menupanel.py", line 7, in -toplevel-
    from runtimedlg import *
  File "D:\Python24\Project\PARAZIT\release_103\runtimedlg.py", line 5, in -toplevel-
    from styledtext import *
  File "D:\Python24\Project\PARAZIT\release_103\styledtext.py", line 7, in -toplevel-
    from barvicbloku import *
  File "D:\Python24\Project\PARAZIT\release_103\barvicbloku.py", line 485
    x1 = self.posledniBlok[1][0];%           y1 = self.posledniBlok[1][1];
                                 ^
SyntaxError: invalid syntax

TAM KDE JE % python napíše čtvereček, je jedno jestli tam je středník nebo ne, dělá to i kompletně bez středníků

na takovou chybu mi stačilo přidat prázdnej řádek skoro kdekoliv v kódu a už to fungovalo, někdy ale můžu takhle přidat 10 řádků a pokaždé to vychodí chybu jinde, i když prostě vím že ten kód je syntakticky správně

jinak prostředí je standartní IDE co bylo k pythonu(to co je udělaný v tkinteru) ale zkoušel jsem třeba Wing IDE a dělalo to to stejný

Nahlásit jako SPAM
IP: 89.24.91.–
Asinkan0
Newbie
25. 4. 2012   #4
-
0
-

#3 Martin
Já teda nevym, proč tam píšeš to modulo. % znamená modulo. Pokud tedy v kódu máš kus napsaný jako

x1 = self.posledniBlok[1][0];%           y1 = self.posledniBlok[1][1];

Pak to ani fungovat nemůže.

Nepleteš si to s MATLABovskou syntaxí, kde je % komentář?

Nahlásit jako SPAM
IP: 90.179.136.–
Martin
~ Anonymní uživatel
1602 příspěvků
25. 4. 2012   #5
-
0
-

#4 Asinkan
tam není modulo, jak píšu v příspěvku, python mi tam vypíše čtvereček, tady na fóru ten znak bere jinak a udělá tam blbosti, proto jsem to nahradil znakem % jinak v kódu tam je normálně enter a další řádek

Nahlásit jako SPAM
IP: 89.24.91.–
Martin
~ Anonymní uživatel
1602 příspěvků
25. 4. 2012   #6
-
0
-

stejný zdroják, stejná chyba ale jinej řádek (V PYTHONU TAM JE ČTVEREČEK NA MÍSTĚ KAM UKAZUJE ŠIPKA, teď jsem ho smazal aby vás to nemátlo)

Traceback (most recent call last):
  File "D:\Python24\Project\PARAZIT\release_103\Parazit.py", line 13, in -toplevel-
    from menupanel import *
  File "D:\Python24\Project\PARAZIT\release_103\menupanel.py", line 7, in -toplevel-
    from runtimedlg import *
  File "D:\Python24\Project\PARAZIT\release_103\runtimedlg.py", line 5, in -toplevel-
    from styledtext import *
  File "D:\Python24\Project\PARAZIT\release_103\styledtext.py", line 7, in -toplevel-
    from barvicbloku import *
  File "D:\Python24\Project\PARAZIT\release_103\barvicbloku.py", line 244
    koment1 = False;            pos += 1;
                    ^
SyntaxError: invalid syntax

jeví se mi to tak že to špatně dekóduje ale nechápu proč to tak dělá.


Nahlásit jako SPAM
IP: 89.24.91.–
Asinkan0
Newbie
25. 4. 2012   #7
-
0
-

#6 Martin
Tak to už mě napadá jen to, že to tam někam omylem dává tabulátor.  To tvý prostředí může místo mezer dávat omylem tabulátory, při stisknutí tabulátoru. Taky si zkontroluj, jestli ti při entru automaticky odsadí jako mně, pak čím to odsazuje-mezerama, nebo tabulátorem? Mě tohle na začátku zlobilo. Ale to psalo chybu s odsazením, né se syntaxí. Jinak bez kódu toho víc nevymyslíme.

Nahlásit jako SPAM
IP: 90.179.136.–
Tom
~ Anonymní uživatel
434 příspěvků
25. 4. 2012   #8
-
0
-

A nedela ti to treba po zkopirovani casti kodu odnekud jinud (treba z webu)? Bych tipoval, ze se ti tam zkopiruje i nejaky netisknutelny znak, ktery se python snazi nejak interpretovat a nejde mu to (logicky). Hod sem kdyztak ten soubor, ve kterem to je, at se muzeme podivat jestli tam neni neco navic (ikdyz to nemusi byt v IDE videt).

Nahlásit jako SPAM
IP: 88.83.187.–
KIIV
~ Moderátor
+43
God of flame
25. 4. 2012   #9
-
0
-

nebo me se na cesky klavesnici stava ze nestiham poustet pravej alt a kdyz k nemu zmacknu mezernik, tak to sice vypada jako mezera ale neni... takze mozna jen nejaky smeti.. zkus mrknout v hex editoru co je tam doopravdy

nebo jestli to tam neceka jiny typ odradkovani (treba mas linuxovy a ceka to woknouzovy - tj. \n vs. \r\n) a tak

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Martin
~ Anonymní uživatel
1602 příspěvků
25. 4. 2012   #10
-
0
-

Ve zdrojacich by melo byt vsechno ok, nic z webu tam kopirovano neni, vse sem psal sam a pisu jenom anglickou klavesnici, nakonec jsem to vyresil prechodem na Python 2.7, kterej zatim zda se funguje, tak uvidim...

Nahlásit jako SPAM
IP: 89.24.91.–
27. 4. 2012   #11
-
0
-

mas spatne kodovani souboru a/nebo spatne nastavene prostredi,

zkus PyCharm od jetbrains, otevri v nem projekt a ctrl+alt+L (cmd+alt+L), jedna se reformat zdrojoveho kodu, zadne upravy to nedela, jen ti nahradi tabulatory mezerami a dobre to 'zaradkuje' tvuj kod

Nahlásit jako SPAM
IP: 85.119.89.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 23 hostů

Podobná vlákna

Nesmyslné zvětšování obrázku — založil Matěj Andrle

Chyby.. — založil Koudy

Chyby v programoch C — založil pietro62

 

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