Geek tričko zdarma Geek tričko zdarma
Tričko zdarma! Stačí před dobitím bodů použít kód TRIKO15. Více informací zde
Avatar
Lukáš
Redaktor
Avatar
Lukáš:25.2.2018 23:43

Ahoj, nemohu nastavit správné kodování pro python soubor, používám VS Code a kodování ve VS Code mám UTF-8. Mohli by jste mi někdo poradit prosím? :-)

Kod:
# -- coding: utf-8 --
print("Kalkulač­ka\n")
first_num = int(input("Zadejte první číslo: "))
second_num = int(input("Zadejte druhé číslo: "))
print("Jejich součet je:", first_num + second_num)
print("Jejich rozdíl je:", first_num - second_num)
print("Jejich součin je:", first_num * second_num)
print("Jejich podíl je:", first_num / second_num)
input("\nStiskněte libovolnou klávesu...")

Error:
[Running] python "c:\Users\boho\Des­ktop\LastTime­.py"
Traceback (most recent call last):
File "c:\Users\boho\Des­ktop\LastTime­.py", line 2, in <module>
print("Kalkula\u010dka\n­")
File "C:\Program Files\Python364\lib\en­codings\cp1252­.py", line 19, in encode
return codecs.charmap_en­code(input,sel­f.errors,enco­ding_table)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\u010d' in position 7: character maps to <undefined>

[Done] exited with code=1 in 0.122 seconds

Editováno 25.2.2018 23:44
 
Odpovědět 25.2.2018 23:43
Avatar
Erik Šťastný:26.2.2018 10:30

Python 3.5.4

Kalkulačka

Zadejte první číslo: 20
Zadejte druhé číslo: 20
Jejich součet je: 40
Jejich rozdíl je: 0
Jejich součin je: 400
Jejich podíl je: 1.0

Stiskněte libovolnou klávesu...

Těžko se to reprodukuje, když to zkopíruju bere mi to automaticky jako UTF-8
nicméně podle tohodle defining-the-encoding nevypadá, že to co máš na prvním řádku je validní zápis :)

Otázka taky je v jakém kódování soubor opravdu fyzicky je, doporučuju notepad++ např :)

Editováno 26.2.2018 10:31
 
Nahoru Odpovědět 26.2.2018 10:30
Avatar
Lukáš
Redaktor
Avatar
Odpovídá na Erik Šťastný
Lukáš:26.2.2018 16:00

No chtěl jsem nějaký editor, aby mi zvýraznil syntaxi a i upozorňoval na syntax errory, tak jsem si myslel, že VS code bude ideální.
Jinak soubor je fyzicky v utf-8 kodování, teď jsem to otevřel v PSPadu a tam to ukazuje utf-8.

 
Nahoru Odpovědět 26.2.2018 16:00
Avatar
Odpovídá na Lukáš
Erik Šťastný:26.2.2018 16:06

Divné, používám Python denně všecny soubory mám UTF-8 a nikde to neuvádím v hlavičce a verze 3.5.4 i 3.6.3 funguje bez problému.

Co když to spustíš mimo VS Code?

Editováno 26.2.2018 16:07
 
Nahoru Odpovědět 26.2.2018 16:06
Avatar
Lukáš
Redaktor
Avatar
Odpovídá na Erik Šťastný
Lukáš:26.2.2018 16:07

A používáš také VS Code?

 
Nahoru Odpovědět 26.2.2018 16:07
Avatar
Odpovídá na Lukáš
Erik Šťastný:26.2.2018 16:09

Nene, mám podezření, že VS Code se snaží nějak podrstrčit Pythonu, že jde o kódování cp1252, když se podíváš do stack trace.

Hádám, že když to spustíš mimo VS Code, tak to bude normálně fungovat ne?

Editováno 26.2.2018 16:09
 
Nahoru Odpovědět 26.2.2018 16:09
Avatar
Lukáš
Redaktor
Avatar
Odpovídá na Erik Šťastný
Lukáš:26.2.2018 16:37

Ano máš pravdu, když to spustím mimo VS Code, tak se to spustí normálně a žádný problém nenastane.
Ted nevím, co myslíš tím, abych se podíval do stack trace.

 
Nahoru Odpovědět 26.2.2018 16:37
Avatar
Odpovídá na Lukáš
Erik Šťastný:26.2.2018 16:40

Promiň myslel jsem ten error...

[Running] python "c:\Users\boho\Des­ktop\LastTime­.py"
Traceback (most recent call last):
File "c:\Users\boho\Des­ktop\LastTime­.py", line 2, in <module>
print("Kalkula\u010dka\n­")
File "C:\Program Files\Python364\lib\en­codings\ cp1252.py", line 19, in encode
return codecs.charmap_en­code(input,sel­f.errors,enco­ding_table)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\u010d' in position 7: character maps to <undefined>

Každopádně co s tím? nějaké nastavení VS Code s kódováním souborů?

Editováno 26.2.2018 16:41
 
Nahoru Odpovědět 26.2.2018 16:40
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
Lukáš
Redaktor
Avatar
Odpovídá na Erik Šťastný
Lukáš:26.2.2018 16:48

To jsem si myslel také, nicméně mám nastaveno

// The default character set encoding to use when reading and writing files. This setting can be configured per language too.
"files.encoding": "utf8"

A kodování viz. obrázek také na utf8

 
Nahoru Odpovědět 26.2.2018 16:48
Avatar
Odpovídá na Lukáš
Erik Šťastný:26.2.2018 16:50

Divné, to ti bohužel neporadím :/ Používám PyCharm

 
Nahoru Odpovědět 26.2.2018 16:50
Avatar
Lukáš
Redaktor
Avatar
Odpovídá na Erik Šťastný
Lukáš:26.2.2018 16:55

A je to vhodné pro začátečníka? Právě mi přišlo to VS Code jako takové user-friendly. Ale když nefunguje, z neznámého důvodu, tak asi budu muset najít něco jiného.

 
Nahoru Odpovědět 26.2.2018 16:55
Avatar
Odpovídá na Lukáš
Erik Šťastný:26.2.2018 16:59

Třeba ti tu ještě někdo poradí :)

Asi proč ne, osobně v tom moc nevidím rozdíl, textovej editor, kterej ti umožní program debuggovat, nevím co víc posuzovat no, osobně taky tak 80% jeho funkcí nepoužívám a nějak mě to netrápí.

Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
 
Nahoru Odpovědět 26.2.2018 16:59
Avatar
Odpovídá na Lukáš
Jiří Gavenda:26.2.2018 18:11

S Pythonem taky začínám a používám PyCharm. Community verze je plně zdarma, takže proč to nezkusit. A stejně jako Elisse většinu funkcí nepoužívám, určitě ještě víc než 80 %.

Nahoru Odpovědět 26.2.2018 18:11
"Kdybychom byli bez chyb, nezpůsobilo by nám takovou radost odhalovat chyby druhých. " - Francois de la Roc...
Avatar
Lukáš
Redaktor
Avatar
Odpovídá na Jiří Gavenda
Lukáš:26.2.2018 20:05

Dobrá, tak já se teda podívám na ten PyCharm, díky za radu.

 
Nahoru Odpovědět 26.2.2018 20:05
Avatar
Lukáš
Redaktor
Avatar
Odpovídá na Erik Šťastný
Lukáš:26.2.2018 20:05

Tobě také velké díky, za snahu pomoci, dávám teda téma jako vyřešené.

 
Nahoru Odpovědět 26.2.2018 20:05
Avatar
Petr Vavřinec:24. května 13:42

Zdravím. Řeším asi podobný problém, ale s Notepad++... Kódování souboru je v Notepad++ označeno jako UTF-8 bez BOM (ale je jedno, když provedu konverzi na s BOM, chová se to stejně). Spustím to do konzoli, kterou poskytuje Notepad++ (???) a ačkoli to napíše, že prostředí je utf-8, ten řetězec prostě není :-(
Když ale ten samý soubor otevřu v IDLE (zobrazí se správně) a spustím ho s výstupem do konzole, kterou používá IDLE (okno Shell), tak se to zobrazí správně.
Zrovna tak, když to spustím přímo v příkazovém řádku (Win10 -> cmd) tak se to zobrazí správně.
Tuší někdo, jak donutit Notepad++ buď aby spouštěl jako výstup jinou konzoli, nebo udělal něco jiného, aby se to zobrazovalo správně?

 
Nahoru Odpovědět 24. května 13:42
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 16 zpráv z 16.