Re: [python] Volba web-frameworku (a pár menších dotazů)
Ja sa prikláňam k flasku. V poslednej dobe sa mu celkom venujem a pokiaľ máš záujem skôr o minimalistický framework, s MNOŽSTVOM modulov, je to tá správna voľba. (to, že je definovaný ako minimalistický určite neznamená, že v ňom neurobíš aj veľký web, prípadne backend k čomkoľvek) Je vhodný aj pre začiatočníkov (ja sám ním som) a vďaka skvelým tutorialom ( http://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-world ) sa určite nestratíš :) Ak máš záujem o ďalšie info (skôr základné, ako nejaké odborné a špecifické), rád odpoviem (ak budem vedieť :) ) ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] Akcia iba pri prekročení hodnoty v cykle
Petr, ďakujem za promptnú odpoveď aj za príklad. Vedel som, že existuje nejaké "pekné" riešenie, len sa mi ho nedarilo nájsť. ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
[python] Akcia iba pri prekročení hodnoty v cykle
Ahojte, už druhý deň si lámem hlavu nad tým, ako urobiť, aby v cykle nastala akcia iba pri prekročení definovanej hodnoty. Príklad: Mám teplomer, ktorý dáva na vstup teplotu v stupňoch. Chcem, aby cyklus sledoval, či je teplota vyššia alebo nižšia ako 20 stupňov a podľa toho vykonal napr. print. Problém je v tom, že potrebujem aby print vykonal iba keď teplota stúpne nad 20 stupňov, resp. keď klesne pod 20 stupňov. Keď stúpne napr. z 15 na 16 alebo z 21 na 22, nevykoná sa nič. Jednoducho akcia iba keď sa prvý krát prekoná definovaná hodnota. Je to vlastne ekvivalent funkcie nejakého ohrievača. Keď teplota klesne pod 20 stupňov, vypíše, že za zapína kúrenie a zapne ho až pokým teplota nestúpne nad 20, tam znovu vypíše, že teplota je nad 20 a znovu nebude vykonávať nič, až pokým neklesne pod 20. (ak som to náhodou nezadefinoval dostatočne, na požiadanie to všetko upresním) Verím, že existuje nejaký hotový algoritmus, ale ani po hodinách googlenia sa mi nepodarilo nájsť nič použiteľné. Ďakujem za odpovede. Lukáš ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] Gtk LED on/off (začiatočník)
Ahoj Petr, ďakujem za odpoveď. Vidím, že som si na začiatok nevybral úplne jednoduchú úlohu :) Bral som to, že sa Python naučím nejak "za jazdy", ale vidím, že si budem musieť podrobnejšie naštudovať niektoré témy. Čo sa týka Tvojej ponuky, pokiaľ by Ti to nerobilo problémy, som určite za. Síce si to tiež asi neviem ideálne predstaviť, ale však, prečo to neskúsiť? (Ak si to predstavuješ za nejakú finančnú, resp. nejakú bartrovú odmenu, podmienky si môžeme dohodnúť mailom). Čo sa týka public diskusie, mne osobne to nevadí a pokiaľ bude Petr súhlasiť, môžeme to vyskúšať. Lukáš ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] Gtk LED on/off (začiatočník)
Ahoj Petr, trochu som sa "hral s LEDkami" a chcel by som tam dorobiť funkciu blikania lediek. Rozšíril som tabuľku: okno = Gtk.Table(5, 2, True) Pridal button: btn_blikanie = Gtk.ToggleButton("Blikanie") btn_blikanie.connect("toggled", self.blikanie) btn_blikanie.set_border_width(2) a samozrejme som zhavaroval na samotnej funckii... Snažil som sa to urobiť nejak takto: def blikanie(self, btn_blikanie): if btn_blikanie.get_active(): print ('Zapnuté') else: print ('Vypnuté') def cyklus_bliknutia (self, button, name): for name in range(4): if button.get_active(): self.leds[int(name)].set_from_file("LED_off.png") # ak je aktívne zhasne LEDku else: self.leds[int(name)].set_from_file("LED_on.png")# ak nie je aktívne, zapne LEDku Viem, že je to blobosť hneď z niekoľkých dôvodov: 1, vo funckii 'blikanie' nevolám funkciu 'cyklus_bliknutia' pretože netuším, ako ju zavolať :) 2, vo funckii 'cyklus_bliknutia' mám síce for, ale zasa neviem, ako otestovať postupne všetky tlačítka, keďže to ide cez 'name'. Vedel by si mi s tým, prosím, trochu pomôcť? Ale priznám sa tiež, že mám trochu hokej v (self, button, name):... Ty si vytvoril funkciu: def led_button_handler(self, button, name): self.leds[int(name)].set_from_file( "LED_on.png" if button.get_active() else "LED_off.png", ) a v zátvorke máš (self, button, name): Self sa používa pravdepodobne univerzálne vo všetkých funciách. Button si použil, pretože vo funkcii testuješ button.get_active a name pretože potrebuješ ovládať LEDky podľa ich názvov: str(i). A teraz otázky: Je nejaké presné poradie, podľa ktorého je potrebné uvádzať tieto premenné v zátvorke? Môžem s nimi pracovať lubovoľne? Mám na mysli tak, že keby som napr. chcel moje dve pseudofunckie zlučiť do jednej, môžem použiť niečo ako (self, btn_blikanie, button, name)? A ak áno, v akom poradí? Snažil som sa to spísať čo najpresnejšie, ale so svete pythonu (a programovania) som skutočne krátko a tak je možné, že som sa vyjadroval blbo. Ak je potrebné niečo upresniť, resp. spýtať sa logickejšie, stačí napísať. Ďakujem za odpovede. Lukáš ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] základná programátorska otázka
Chalani, ďakujem za ochotu a informácie. Veril som, že sa to dá urobiť nejak elegantnejšie, len som presne nevedel ako :) ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
[python] základná programátorska otázka
Začínam s pythonom + Gtk (a vlastne s programovaním vôbec) a stále mi v hlave vŕta zásadná otázka: Hypoteticky: Chcem urobiť aplikáciu, ktorá bude vedieť reagovať na "akciu zvonku", napr. kalkulačku, ktorá by ale podporovala klávesové skratky. Robí sa to tak, že dám nejaký nekonečný cyklus, ktorý bude čakať, či "zvonku" príde konkrétna klávesová skratka, alebo sa to robí inak? Alebo: Mám aplikáciu, ktorá by snímala teplotu na čidle. Musím urobiť cyklus, ktorý napr. každých 15 sekúnd prečíta teplotu? A čo v tom prípade, že chcem funkcionality spojiť? Urobím jeden "centrálny" cyklus, ktorý kontroluje všetky zadané podmienky alebo sa to robí nejak elegantnejšie? Sorráč, za skutočne amatérsku otázku ale iné riešenie, ako som uviedol mi nenapadá. Ďakujem za odpovede. ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] Gtk LED on/off (začiatočník)
Wow, Petr, funguje to presne tak, ako som chcel. Idem sa v tom povŕtať, aby som úplne pochopil ten Tvoj kód. Naozaj ďakujem za ochotu. ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] Gtk LED on/off (začiatočník)
Ahoj Petr, ďakujem za ochotu. Rozumiem tomu, čo si chcel "povedať", ale žiaľ, toto je môj prvý program, takže sa s tým celkom dobre trápim. (Hotovým zdrojákom ako tak rozumiem, ale ak mám vyprodukovať niečo z hlavy, je to problém) Snažil som sa Tvoj pseudokód preložiť do reálneho kódu, ale na to mám príliš málo vedomostí a skúseností. "Výsledok" je tu: from gi.repository import Gtk import sys class LedControl(Gtk.Window): def __init__(self): Gtk.Window.__init__(self, title="LED Control") self.set_border_width(6) self.set_default_size(200, 250) okno = Gtk.Table(4, 2, True) self.add(okno) img_LED_on = Gtk.Image() img_LED_on.set_from_file("LED_on.png") #~ self.add(img_LED_on) img_LED_off = Gtk.Image() img_LED_off.set_from_file("LED_off.png") #~ self.add(img_LED_off) widget_LED1 = Gtk.Image() widget_LED2 = Gtk.Image() widget_LED3 = Gtk.Image() widget_LED4 = Gtk.Image() widget1 = Gtk.Image() widget2 = Gtk.Image() widget3 = Gtk.Image() widget4 = Gtk.Image() button_LED_1 = Gtk.ToggleButton("LED 1") button_LED_1.connect("toggled", self.LED_OnOff, "1") button_LED_1.set_border_width(2) button_LED_2 = Gtk.ToggleButton("LED 2") button_LED_2.connect("toggled", self.LED_OnOff, "2") button_LED_2.set_border_width(2) button_LED_3 = Gtk.ToggleButton("LED 3") button_LED_3.connect("toggled", self.LED_OnOff, "3") button_LED_3.set_border_width(2) button_LED_4 = Gtk.ToggleButton("LED 4") button_LED_4.connect("toggled", self.LED_OnOff, "4") button_LED_4.set_border_width(2) led_widgets = { button_LED_1.id: widget1, button_LED_2.id: widget2, button_LED_3.id: widget3, button_LED_4.id: widget4 } okno.attach(button_LED_1, 0, 1, 0, 1) okno.attach(button_LED_2, 0, 1, 1, 2) okno.attach(button_LED_3, 0, 1, 2, 3) okno.attach(button_LED_4, 0, 1, 3, 4) #~ widget1.set_from_image(img_LED_off) #~ widget1.set_from_image(img_LED_off) #~ widget1.set_from_image(img_LED_off) #~ widget1.set_from_image(img_LED_off) okno.attach = (widget_LED1, 1, 2, 2, 3) okno.attach = (widget_LED2, 1, 2, 0, 1) okno.attach = (widget_LED3, 1, 2, 1, 2) okno.attach = (widget_LED4, 1, 2, 2, 3) def LED_OnOff(self, okno, name): if okno.get_active(): status = "on" led_widgets[okno.id].set_from_image(img_LED_on) else: status = "off" led_widgets[okno.id].set_from_image(img_LED_off) print("Tlačítko LED", name, "zmenilo stav na", status) app = LedControl() app.connect("delete-event", Gtk.main_quit) app.show_all() Gtk.main() Našiel by sa niekto ochotný a hlavne trpezlivý, kto by ma posunul kúsok ďalej? Ďakujem. Lukáš ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz