Tyto stránky již nejsou udržovány. Obsah je postupně přesouván/aktualizován na adrese chytrosti.marrek.cz.

1575/14246

Tk_uvod.py
   1 #!/usr/bin/python
   2 # -*- coding: utf8 -*-
   3 # Soubor:  Tk_uvod.py
   4 # Datum:   06.11.2012 13:40
   5 # Autor:   Marek Nožka, nozka <@t> spseol <d.t> cz
   6 # Licence: GNU/GPL 
   7 # Úloha:   úvod do Tk
   8 
   9 from Tkinter import * 
  10 import sys
  11 #########################################
  12 
  13 def konec():
  14     print "končím"
  15     sys.exit(0)
  16 
  17 def nove():
  18     vedlejsiOkno = Tk()
  19     napis = Label(vedlejsiOkno,text='Jsem vedlejsi okno')
  20     napis.pack()
  21 
  22 hlavniOkno = Tk()
  23 
  24 titulek = Label(hlavniOkno, text='Ahoj')
  25 titulek.pack()
  26 
  27 tlacitko = Button(hlavniOkno, text='Konec', command=nove )
  28 tlacitko.pack()
  29 
  30 hlavniOkno.mainloop()
`--> stáhnout

chodec-1D.py
   1 #!/usr/bin/python
   2 # -*- coding: utf8 -*-
   3 # Soubor:  chodec-1D.py
   4 # Datum:   11.09.2012 13:14
   5 # Autor:   Marek Nožka, nozka <@t> spseol <d.t> cz
   6 # Licence: GNU/GPL 
   7 # Úloha:   program vypočítá délku dráhy pohyby po přímce
   8 #
   9 
  10 suma=0
  11 tady_jsem = input('začínáme  > ')
  12 
  13 while True:
  14     try:
  15         tady_jsemTEXT = raw_input('další bod > ')
  16         if tady_jsemTEXT == 'end':
  17             break
  18         tady_jsem_byl = tady_jsem 
  19         tady_jsem = int(tady_jsemTEXT) 
  20         suma = suma + abs(tady_jsem - tady_jsem_byl)
  21         print suma
  22     except EOFError:
  23         exit()
  24     except:
  25         print "musíš zadat číslo"
`--> stáhnout

colormishmash.py
   1 #!/usr/bin/python
   2 # -*- coding: utf8 -*-
   3 # Soubor:  colormishmash.py
   4 # Datum:   13.11.2012 13:01
   5 # Autor:   Marek Nožka, nozka <@t> spseol <d.t> cz
   6 # Licence: GNU/GPL 
   7 # Úloha:   jednoduchý program pro míchání barev
   8 ####################################################
   9 
  10 import sys
  11 from Tkinter import *
  12 ####################################################
  13 
  14 # ukončí program
  15 def exit(event=None):
  16     sys.exit(0)
  17 
  18 
  19 # formátovaání: http://docs.python.org/2.7/library/string.html#formatstrings
  20 # převede hodnoty posuvníků na barvu
  21 def goo(value):
  22     color = "#{:02x}{:02x}{:02x}".format(scaleR.get(),scaleG.get(),scaleB.get())
  23     colorPanel.config(bg=color)
  24     # změním hodnotu ve vstupním poli htmlValue, protože je svázána s textArray
  25     textArray.set(color)
  26 
  27 ####################################################
  28 
  29 mainWin = Tk()  # vytvořím okno
  30 mainWin.title("colormishmash.py") # nastavím titulek
  31 
  32 # vytvořím udělátko
  33 scaleR = Scale(mainWin, from_=0, to=255, orient=HORIZONTAL, length=200, 
  34                label='červená', command=goo)   
  35 scaleR.pack()  # umístím udělátko
  36 scaleG = Scale(mainWin, from_=0, to=255, orient=HORIZONTAL, length=200,
  37                label='zelená', command=goo)   
  38 scaleG.pack()  
  39 scaleB = Scale(mainWin, from_=0, to=255, orient=HORIZONTAL, length=200, 
  40                label='modrá', command=goo)   
  41 scaleB.pack()  
  42  
  43 # proměná, kterou svážu s údajem ve vstupním poli htmlValue
  44 textArray = StringVar()
  45 htmlValue = Entry(mainWin, textvariable=textArray )
  46 htmlValue.pack()
  47 
  48 colorPanel = Canvas(mainWin, bg='red', height=200, width=200)
  49 colorPanel.pack()
  50 
  51 mainWin.mainloop()
  52 
`--> stáhnout

graf.py
   1 #!/usr/bin/env python
   2 # -*- coding: utf8 -*-
   3 # Soubor:  graf.py
   4 # Datum:   02.10.2012 12:56
   5 # Autor:   Marek Nožka, nozka <@t> spseol <d.t> cz
   6 # Licence: GNU/GPL 
   7 # Úloha:   tisk grafu ze souboru
   8 ###################################################3 
   9 
  10 import pylab as lab
  11 
  12 # načtu jmého souboru
  13 jmenoSouboru = raw_input("zadej jméno souboru >>> ")
  14 if jmenoSouboru == '':
  15     jmenoSouboru = 'tabulka.txt'
  16 
  17 popisky = []
  18 data = []
  19 
  20 # otevřu soubor pro čtení
  21 f = open(jmenoSouboru,'r')
  22 # čtu soubor řádek po řádku
  23 while True:
  24     radek = f.readline()
  25     if radek == '':
  26         break
  27     elif len(radek.split()) == 0: # pokud načtu prázdný řádek
  28         continue                  # pokračuji od začátku cyklu
  29     elif radek.strip()[0] == '#': # pokud řádek začíná #
  30         continue                  # pokračuji od začátku cyklu
  31     elif radek.strip()[0] == '@': # pokud řádek začíná @ 
  32         kod = radek.strip()[1:].strip()  # ořež @ a mezery a ...
  33         exec(kod)                 # ... proveď ho jako python kód
  34         continue
  35 # zpracování řádku
  36     radek = radek.split()
  37     popisky.append(radek[0])
  38     data.append(radek[1:])
  39 
  40 # převedu data z řetězců na čísla
  41 for r in range(len(data)):
  42     for i in range(r):
  43         data[r][i] = float( data[r][i] )
  44 
  45 
  46 # vykreslím graf
  47 lab.figure()
  48 lab.grid(True)
  49 for i in range(1,len(data)):
  50     lab.plot(data[0],data[i])
  51 lab.xlabel(popisky[0])
  52 lab.ylabel(popisky[1:])
  53 
  54 lab.title(titulek.decode('utf-8'))
  55 
  56 lab.show()
`--> stáhnout

kalkulacka.py
   1 #!/usr/bin/python
   2 # -*- coding: utf8 -*-
   3 # Soubor:  kalkulacka.py
   4 # Datum:   20.11.2012 13:11
   5 # Autor:   Marek Nožka, nozka <@t> spseol <d.t> cz
   6 # Licence: GNU/GPL 
   7 # Úloha:   grafická kalkulačka s reverzní notací
   8 ####################################################
   9 
  10 import sys, cmath, math
  11 from sys import stdin, stdout, stderr
  12 from Tkinter import *
  13 import cmath  # počítání s komplexními čísly
  14 ####################################################
  15 
  16 def exit(event=None):
  17     sys.exit(0)
  18 
  19 stack = []
  20 # vloží do zásobníku a do Listboxu číslo
  21 def push(item):
  22     if item == 'pi':
  23         item = item.replace('pi','3.141592653589793')
  24         item = item.replace('e','2.718281828459045')
  25     try:
  26         if item.count(',')==1:
  27             num = item.split(',')
  28             stack.append( float(num[0]) + float(num[1])*1j )
  29             box.insert(END, str(stack[-1]))
  30             return True
  31         elif item.count('(')==1:
  32             num = item.split('(')
  33             stack.append( float(num[0]) * cmath.exp( float(num[1])*1j ) )
  34             box.insert(END, str(stack[-1]))
  35             return True
  36         else:
  37             stack.append(complex(item))
  38             box.insert(END, str(item))
  39             return True
  40     except EOFError:
  41         return False
  42 
  43 def pop():
  44     box.delete(END)
  45     return stack.pop()
  46 
  47 
  48 # hlavní funkce, ktrá provádí požadovanou akci
  49 def goo(event=None):
  50     line = edt.get()     # vezmu celý uživatelský vstup
  51     items = line.split() # rozdělím ho na jednotlivé položky
  52     edt.delete(0,END)    # vymažu vstupní pole
  53     for token in items: 
  54         if token == '+':
  55             a = pop()
  56             b = pop()
  57             push(a+b)
  58         elif token == '*':
  59             a = pop()
  60             b = pop()
  61             push(a*b)
  62         elif token == '/':
  63             a = pop()
  64             b = pop()
  65             push(b/a)
  66         elif token == '-':
  67             a = pop()
  68             b = pop()
  69             push(b-a)
  70         elif token == 'log':
  71             a = pop()
  72             push(cmath.log10(a))
  73         elif token == 'ln':
  74             a = pop()
  75             push(cmath.log(a))
  76         elif token == 'pi':
  77             push(cmath.pi)
  78         elif token == 'e':
  79             push(cmath.e)
  80         else:
  81             if push(token):
  82                 lblMsg.config(text="OK", fg='black')
  83             else:
  84                 lblMsg.config(text="Chyba", fg='red')
  85                 err = token + token.join( line.split(token)[1:] )
  86                 edt.delete(0,END)
  87                 edt.insert(0,err)
  88                 edt.icursor(0)
  89                 edt.selection_from(0)
  90                 edt.selection_to(len(token))
  91                 break 
  92 
  93 
  94 
  95 
  96 ####################################################
  97 
  98 mainWin = Tk(className="foo")
  99 mainWin.title("Kalkulacka")
 100 mainWin.option_add('*Font', 'Terminus 16')
 101 
 102 # při stisku Esc se aplikace zavře
 103 mainWin.bind("<Escape>",exit)
 104 
 105 lbl = Label(mainWin, text=u"Kalkulačka s reverzní notací")
 106 lbl.pack()
 107 
 108 box = Listbox(mainWin, width=20, height=10)
 109 box.pack()
 110 
 111 lblMsg = Label(mainWin, text=u"...")
 112 lblMsg.pack()
 113 
 114 edt = Entry(mainWin, width=20)
 115 edt.pack()
 116 edt.bind("<Return>", goo)
 117 
 118 edt.focus_set() # vyberu vstupní pole a můžu hned psát
 119 mainWin.mainloop()
 120 
`--> stáhnout

newtonova-metoda.py
   1 #!/usr/bin/python
   2 # -*- coding: utf8 -*-
   3 # Soubor:  newtonova-metoda.py
   4 # Datum:   25.09.2012 12:33
   5 # Autor:   Marek Nožka, nozka <@t> spseol <d.t> cz
   6 # Licence: GNU/GPL 
   7 # Úloha: 
   8 # Popis:   
   9 # 
  10 #########################################
  11 # funkce 1/4 počáteční hodnota 0.4
  12 #        1
  13 # f(x)= --- - b
  14 #        x
  15 b=4
  16 x=0.4
  17 
  18 i=1
  19 while i<12:
  20     i += 1
  21     print "%.20f" % x
  22     x = x + ( x*(1-b*x) )
  23 
  24 print "==================================="
  25 #########################################
  26 
  27 # funkce odmocnina a
  28 #       2
  29 # f(x)=x - a
  30 #
  31 
  32 a=9
  33 x=14.
  34 
  35 i=1
  36 while i<12:
  37     i += 1
  38     print "%.20f" % x
  39     x = (x+a/x) / 2.0
  40 
  41 
  42 
`--> stáhnout

smenarne.py
   1 #!/usr/bin/python
   2 # -*- coding: utf8 -*-
   3 # Soubor:  smenarne.py
   4 # Datum:   05.02.2013 13:29
   5 # Autor:   Marek Nožka, nozka <@t> spseol <d.t> cz
   6 # Licence: GNU/GPL 
   7 # Úloha: 
   8 # Popis:   
   9 ####################################################
  10 
  11 import sys
  12 from sys import stdin, stdout, stderr
  13 from Tkinter import *
  14 ####################################################
  15 
  16 def exit(event=None):
  17     sys.exit(0)
  18 
  19 def vypisMenu(a,b,c):
  20     nasobekEntry.config(state=NORMAL)
  21     nasobekEntry.delete(0,END)
  22     nasobekEntry.insert(0,meny[ menaVar.get() ][1])
  23 
  24     nakupEntry.config(state=NORMAL)
  25     nakupEntry.delete(0,END)
  26     nakupEntry.insert(0,meny[ menaVar.get() ][2])
  27 
  28     prodejEntry.config(state=NORMAL)
  29     prodejEntry.delete(0,END)
  30     prodejEntry.insert(0,meny[ menaVar.get() ][3])
  31 
  32 
  33 def vypocet():
  34 #    kurz = mena [ nakupVar.get() ] [  ]
  35     pass
  36 
  37 
  38 ####################################################
  39 
  40 mainWin = Tk(className="foo")
  41 mainWin.title("smenarne.py")
  42 mainWin.option_add('*Font', 'Terminus 14')
  43 mainWin.bind("<Escape>",exit)
  44 
  45 ####################################################
  46 # výběr operace
  47 operaceGroup = LabelFrame(mainWin, text="Operace", padx=5, pady=5)
  48 operaceGroup.pack(anchor=W)
  49 
  50 nakupVar = IntVar() 
  51 nakupVar.set(2)
  52 operace1 = Radiobutton(operaceGroup, text="Nákup", variable=nakupVar, value=1)
  53 operace2 = Radiobutton(operaceGroup, text="Prodej", variable=nakupVar, value=2)
  54 operace1.pack(anchor=W)
  55 operace2.pack(anchor=W)
  56 
  57 ####################################################
  58 # výběr měny
  59 menaGroup = LabelFrame(mainWin, text="Měna", padx=5, pady=5)
  60 menaGroup.pack(anchor=W)
  61 
  62 meny = (
  63         ("EUR", 1,    25.3, 25.5),
  64         ("GBP", 1,    31.2, 31.4),
  65         ("USD", 1,    19.4, 19.5),
  66         ("JPY", 100,  22.06, 22.29),
  67         ("IDR", 1000, 2.0180, 2.0250),
  68         ("ABC", 1000, 2.0180, 2.0250),
  69         ("ERY", 1000, 2.0180, 2.0250)
  70        )
  71 
  72 menaVar = IntVar()
  73 menaVar.set(0)
  74 
  75 #for n,item in enumerate(meny):
  76 #    RB = Radiobutton(menaGroup,text=item[0], variable=menaVar, value=n)
  77 #    RB.pack(anchor=W)
  78 i=0
  79 while i<len(meny):
  80     RB = Radiobutton(menaGroup,text=meny[i][0], variable=menaVar, value=i)
  81     RB.pack(anchor=W)
  82     i += 1
  83 
  84 # při změně proměnní menaVar zavolej funkci vypisMenu()
  85 menaVar.trace("w", vypisMenu )
  86 
  87 #  meny[menaVar.get()][3]
  88 ####################################################
  89 zapakovat=[]
  90 zapakovat += [ LabelFrame(mainWin, text="Násobek", padx=5, pady=5) ]
  91 zapakovat += [ LabelFrame(mainWin, text="Nákup", padx=5, pady=5) ]
  92 zapakovat += [ LabelFrame(mainWin, text="Prodej", padx=5, pady=5) ]
  93 
  94 nasobekEntry = Entry(zapakovat[0], state="readonly")
  95 nakupEntry = Entry(zapakovat[1], state="readonly")
  96 prodejEntry = Entry(zapakovat[2], state="readonly")
  97 zapakovat += [nasobekEntry, nakupEntry, prodejEntry ]
  98 
  99 zapakovat += [ LabelFrame(mainWin, text=u"Částka", padx=5, pady=5) ]
 100 castkaEntry = Entry( zapakovat[-1], state=NORMAL)
 101 # když stisknu Enter proveď funkci výpočet()
 102 castkaEntry.bind("<Return>",vypocet)
 103 
 104 
 105 zapakovat += [ LabelFrame(mainWin, text=u"Výpočet", padx=5, pady=5) ]
 106 vypocetEntry = Entry(zapakovat[-1], state="readonly")
 107 
 108 zapakovat += [ castkaEntry, vypocetEntry ]
 109 
 110 for Q in zapakovat:
 111     Q.pack(anchor=W)
 112 
 113 mainWin.mainloop()
 114 
 115 
`--> stáhnout

Licence Creative Commons Valid XHTML 1.0 Strict Valid CSS! Antispam.er.cz Blog: Tlapicka.net