Tyto stránky již nejsou udržovány. Obsah je postupně přesouván/aktualizován na adrese chytrosti.marrek.cz.
1575/14246
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()
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"
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
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()
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
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
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