Re: [python] Jaký Tkinter? GTK? QT? Coooo Amiga Escape sekvence rulez! Odlehčení a dotaz - Python a pamět? ;)

2015-01-01 Tema obsahu Petr Viktorin
2015-01-01 17:47 GMT+01:00 Martin :
>
> Nejdříve odlehčení. Poslední port Pythonu verze 2.3.3. Ukázka jednoduchého 
> GUI pomocí ESCAPE sekvencí na počítači Amiga (Windows nemá přímou podporu 
> ESCAPE sekvencí!)
>
>
>
> https://www.youtube.com/watch?v=JzN1Fl-T7jw
>
>
>
> A teď můj dotaz, stačí mi zodpovědět chování Pythonu verze 2.X v rámci PC.
>
>
>
> Zkopíruji to co jsem se ptal jinde:
>
>
>
> Takový technický dotaz, co se týče náročnosti na pamět. V rámci Pythonu, tedy 
> v rámci skriptovacího jazyka. Je pamětově méně náročný, když definuji 
> proměnnou za IF/ELIF? Nebo se tahle proměnná načte do paměti i když podmínka 
> IF/ELIF nebude splněna? Na zápis použiji N-tici.
>
> S IF/ELIF:
> if vstup == iso: tabulka = ("A","B"), ("B","C")
> elif vstup == latin2: tabulka = ("D","E"), ("F","G")
>
> Bez IF/ELIF:
> iso = ("A","B"), ("B","C")
> latin2 = ("D","E"), ("F","G")
>
> Můj odhad: asi se to načte do paměti i s konstrukcí IF/ELIF, ale program s 
> konstrukcí IF/ELIF bude o něco méně pamětově náročný, protože nebudu 
> definovat více proměnných ale jen jednu "tabulka" a možná ani to ne, protože 
> pokud si to Python potřebuje zapamatovat vše naráz, tak bude mít v paměti 
> nekolik krát proměnnou "tabulka", dle našeho příkladu 2 krát. Ale dost 
> filozofie, programování je o nečem jiném, jak to tedy funguje?
>
> Rěším to, protože každá tabulka by měla obsahovat něco kolem 1800 znaků.
>
>

Odpovím pro CPython, jiné interpretery jazyka Python se můžou chovat jinak :)

Konstantní literály, tedy konstanty zapsané přímo v kódu, jako třeba
(("A","B"), ("B","C")) výše, jsou součást zkompilovaného modulu, a do
paměti se načtou s ním. Je jedno, jestli se pak použijí nebo
nepoužijí. Proměnné v Pythonu jsou jen jména (pro C-čkaře: ukazatele),
která se přiřazují hodnotám.
Je možnost to dát do zvláštních modulů:

if vstup == 'iso':
from tabulka_iso import tabulka
elif vstup == 'latin2':
from tabulka_latin2 import tabulka

a v tomhle případě by se načetl jen daný modul a data v něm. Nebo
(většinou lepší varianta) se dají data dát do datového souboru a
přečíst pomocí `csv` nebo `json` ze std. knihovny.
___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz


[python] Jaký Tkinter? GTK? QT? Coooo Amiga Escape sekvence rulez! Odlehčení a dotaz - Python a pamět? ;)

2015-01-01 Tema obsahu Martin

Nejdříve odlehčení. Poslední port Pythonu verze 2.3.3. Ukázka jednoduchého 
GUI pomocí ESCAPE sekvencí na počítači Amiga (Windows nemá přímou podporu 
ESCAPE sekvencí!)

 

https://www.youtube.com/watch?v=JzN1Fl-T7jw
(https://www.youtube.com/watch?v=JzN1Fl-T7jw)

 

A teď můj dotaz, stačí mi zodpovědět chování Pythonu verze 2.X v rámci PC.

 

Zkopíruji to co jsem se ptal jinde:

 

Takový technický dotaz, co se týče náročnosti na pamět. V rámci Pythonu, 
tedy v rámci skriptovacího jazyka. Je pamětově méně náročný, když definuji 
proměnnou za IF/ELIF? Nebo se tahle proměnná načte do paměti i když podmínka
IF/ELIF nebude splněna? Na zápis použiji N-tici.

S IF/ELIF:
if vstup == iso: tabulka = ("A","B"), ("B","C")
elif vstup == latin2: tabulka = ("D","E"), ("F","G")

Bez IF/ELIF:
iso = ("A","B"), ("B","C")
latin2 = ("D","E"), ("F","G")

Můj odhad: asi se to načte do paměti i s konstrukcí IF/ELIF, ale program s 
konstrukcí IF/ELIF bude o něco méně pamětově náročný, protože nebudu 
definovat více proměnných ale jen jednu "tabulka" a možná ani to ne, protože
pokud si to Python potřebuje zapamatovat vše naráz, tak bude mít v paměti 
nekolik krát proměnnou "tabulka", dle našeho příkladu 2 krát. Ale dost 
filozofie, programování je o nečem jiném, jak to tedy funguje? :) 

Rěším to, protože každá tabulka by měla obsahovat něco kolem 1800 znaků.

 

Díky za pomoc! :)

 

Lisiak4

___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz

Re: [python] Python 3 a další druhy (TkinterPython, ...)

2015-01-01 Tema obsahu zu1234

Někdo přede mnou doporučoval začít konzolovou aplikací.
Také jsem tak postupoval.
Ale následně jsem chtěl některé programy (jejich vnitřky) použít
jako knihovny do větších programů, nebo dokonce pod GUI.
A musel jsem dost přepisovat:
Například když původní funkce narazila na neřešitelný
problém, tak prostě ukončila program. Správné je vyvolání výjimky.
Nebo se vykecávala pomocí print-u - to v GUI není ono. Teď to řeším 
pomocí 'yield'.


A ještě jedna legrace okolo aplikací na příkazovou řádku pod windows - 
kódování.
Výstup na stdout musí být v cp852, ale když ho přesměrujete rourou do 
souboru, tak je rozumnější cp1250.
Pokud chcete mít univerzální program (i do linuxu) tak ještě iso8895-2, 
nebo (dnes už jen) utf8.


Ale to jsou moje problémy/chyby a ne vlastnosti Pythonu.

ZU



Dne 1.1.2015 v 17:10 Daniel Hubáček napsal(a):

Díky za rady... Snad se to nějak povede :D
___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz


___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz


Re: [python] Python 3 a další druhy (TkinterPython, ...)

2015-01-01 Tema obsahu Daniel Hubáček
Díky za rady... Snad se to nějak povede :D
___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz


Re: [python] Python 3 a další druhy (TkinterPython, ...)

2015-01-01 Tema obsahu Matěj Cepl
On 2014-12-31, 22:00 GMT, Daniel Hubáček wrote:
> stále tomu moc nerozumím, takže se mám naučit Python, jako 
> základ, a pak se poohlídnout která knihovna je nejvhodnější?

Přesně tak. Stejně bych radil nejprve napsat aplikaci, kterou 
chcete napsat jako jednoduchý skript běžící z příkazové řádky 
(hlavní žádné aplikace není být GUI, GUI je jenom přívětivá tvář 
pro nějakou činnost, kterou ta aplikace dělá), a ve chvíli kdy 
pochopíte skutečně co se děje a budete mít svoje algoritmy, 
data, objekty, atp. uspořádané, můžete program předělat aby byl 
GUI.

Rozložíte si učení se dvou poměrně rozdílných (a komplikovaných) 
oblastí do dvou kroků, místo abyste se utopil v tom všem 
zmixovaném do jedné hroudy.

Hezký nový rok!

Matěj
___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz