Tyto stránky již nejsou udržovány. Obsah je postupně přesouván/aktualizován na adrese chytrosti.marrek.cz.
1575/14224
1 #!/usr/bin/env python
2 # -*- coding: utf8 -*-
3 # Datum: Thu Nov 8 08:47:59 2012
4 # Autor: Marek Nožka, nozka <@t> spseol <d.t> cz
5 # Licence: GNU/GPL
6 # Úloha: Program na převod °C -> °F
7 ################################################################
8
9 start = input('od: ')
10 stop = input('do: ')
11 krok = input('krok:')
12
13 F=start
14 while F<=stop :
15 C = 5.*(F-32)/9.
16 # print F, u'°F = ', C, u'°C'
17 print u"{1:7.2f}°F = {0:7.2f}°C".format(C,F)
18 F = F+krok
19
20 """
21 http://docs.python.org/2.7/library/string.html#formatstrings
22 """
23 print 'Zkouším str.format()...'
24 print '###########################'
25 print 20/7
26 print "|{0:<-20d}|".format(17) # dekadické
27 print "|{0:^+20x}|".format(-17) # hexadecimální
28 print "|{0:020b}|".format(-17) # dvojkové
29
30 print "%2f" % 17
31
1 #!/usr/bin/python
2 # -*- coding: utf8 -*-
3 # Soubor: cifry.py
4 # Datum: 07.03.2013 09:00
5 # Autor: Marek Nožka, nozka <@t> spseol <d.t> cz
6 # Licence: GNU/GPL
7 # Úloha: všechna dvouciferná čísla
8 ############################################################################
9
10
11 x=21
12 print x,
13 print 20,30,
14 print 20,30,
15 print 20,30,
16 print 20,30,
17
18 cifSoucet=raw_input('zadej ciferný součet > ')
19
20 for i in range(1,10):
21 for j in range(10):
22 if i+j == int(cifSoucet) :
23 print "{0}{1}".format(i,j)
24
25
26 x = -20
27 x = x if x>=0 else -x
28 x=abs(x)
29 print '\n',x
30
31
32
33 cisla =[-129, 598, 496, 568, 59, -125, 48312, 5893, 12, 34569, 4521]
34
35 for c in cisla:
36 prac = abs(c)
37 retezec = str(prac)
38 i=0
39 Tisk = False
40 while i<len(retezec)-1:
41 if int(retezec[i]) < int(retezec[i+1]):
42
43 else:
44 break
45
46 i+=1
47 if Tisk :
48 print c
49
50
1 #!/usr/bin/python
2 # -*- coding: utf8 -*-
3 # Soubor: cisla.py
4 # Datum: 29.11.2012 09:09
5 # Autor: Marek Nožka, nozka <@t> spseol <d.t> cz
6 # Licence: GNU/GPL
7 # Úloha: Pro záporná čísla vypište na obrazovku jejich druhou mocninu.
8 # Pro kladná čísla vypište na obrazovku jejich odmocninu.
9 ############################################################################
10
11 radek = raw_input('zadej čísla > ')
12
13 cisla = radek.split()
14 print cisla
15
16 i = 0
17 while i<len(cisla):
18 cislo = float(cisla[i])
19 if cislo>0 :
20 # odmocnina
21 # print cislo,'->', cislo**0.5
22 print '{0:9f} -> {1:9f}'.format(cislo,cislo**0.5)
23 else:
24 # modnina
25 # print cislo,'->', cislo**2
26 print '{0:9f} -> {1:9f}'.format(cislo,cislo**2)
27 i = i +1
1 # -*- coding: utf8 -*-
2
3 """
4 ukázka cyklu while
5 """
6
7 print "Násobíme 4x"
8
9 cislo = 1
10 while cislo <= 10 :
11 print "4 x", cislo, "=", cislo*4
12 cislo = cislo + 1
13 print "To je KONEC"
14
15
16 print "== Malá násobilka =="
17
18 a = 1
19 while a <= 10:
20 b = 1
21 while b <= 10:
22 print a, "x", b, "=", a*b
23 b = b+1
24 a = a+1
25 print '-------------------------'
1 #!/usr/bin/env python
2 # -*- coding: utf8 -*-
3 # Soubor: easyGraph.py
4 # Datum: 14.02.2013 08:19
5 # Autor: Marek Nožka, nozka <@t> spseol <d.t> cz
6 # Licence: GNU/GPL
7 # Úloha: vykreslí jednoduchý graf ze souboru
8 ###################################################3
9
10 import pylab as lab
11 from pylab import pi
12
13 # zeptám se na jméno souboru
14 #otevře soubor
15 try:
16 # soubor=raw_input('zadej vstupní soubor: ')
17 # f=open(soubor, 'r')
18 f=open('graf.txt', 'r')
19 except IOError:
20 print "soubor se nepodařilo otevřít"
21 exit(1)
22 except:
23 print "stalo se něco nehezkého"
24 exit(2)
25
26 # načtu řádek
27 x = f.readline()
28 # rozdělím řádek
29 x = x.split()
30 # načtu a rodělím druhý řádek
31 y = f.readline().split()
32
33 # převedu řádek na čísla
34 for i in range( len(x) ):
35 x[i] = float( x[i] )
36 y[i] = float( y[i] )
37
38 #### výpočet hladké křivky
39 # vytvořím novou osu x
40 from scipy.interpolate import spline
41 newX = lab.linspace(min(x), max(x),300)
42 newY = spline(x,y,newX)
43
44 lab.plot(x,y,'rx')
45 lab.plot(newX,newY,'b-')
46 lab.grid()
47 lab.show()
48
49 f.close()
50 exit(0)
1 #!/usr/bin/python
2 # -*- coding: utf8 -*-
3 # Soubor: fibonacci.py
4 # Datum: 06.12.2012 08:45
5 # Autor: Marek Nožka, nozka <@t> spseol <d.t> cz
6 # Licence: GNU/GPL
7 # Úloha: Fibonacciho posloupnost
8 # http://cs.wikipedia.org/wiki/Fibonacciho_posloupnost
9 ############################################################################
10
11 def Fib(n):
12 if n == 0:
13 return 0
14 elif n == 1:
15 return 1
16 else:
17 (F_2, F_1 ) =( 0, 1 )
18 i = 2
19 while i<=n :
20 i += 1
21 Fn= F_2 + F_1
22 ( F_2 , F_1 ) = ( F_1, Fn )
23 return Fn
24
25 # rekurzivní definice
26 def FibR(n):
27 if n == 0:
28 return 0
29 elif n == 1:
30 return 1
31 else:
32 return FibR(n-2) + FibR(n-1)
33
34 ############################################################################
35 mIndex = input("zadej maximální index > ")
36
37 print Fib(mIndex)
38 print FibR(mIndex)
1 #!/usr/bin/python
2 # -*- coding: utf8 -*-
3 # Soubor: kolikSudych.py
4 # Datum: 20.12.2012 08:35
5 # Autor: Marek Nožka, nozka <@t> spseol <d.t> cz
6 # Licence: GNU/GPL
7 # Úloha: Je dána posloupnost celých kladných čísel. Určete kolik z nich je sudých.
8 ############################################################################
9
10 import random
11 ############################################################################
12
13 seznam = [ random.randint(1,100) for _ in range(10) ]
14 print seznam
15
16 pocet = 0
17 for cislo in seznam:
18 if cislo % 2 == 0 :
19 pocet += 1
20 print pocet
21 ############################################################################
22
23 i = 0
24 pocet = 0
25 while i<len(seznam):
26 cislo = seznam[i]
27 if cislo % 2 == 0 :
28 pocet += 1
29 i +=1
30 print pocet
1 #!/usr/bin/python
2 # -*- coding: utf8 -*-
3 # Soubor: loterie.py
4 # Datum: 25.04.2013 08:33
5 # Autor: Marek Nožka, nozka <@t> spseol <d.t> cz
6 # Licence: GNU/GPL
7 # Úloha:
8 ############################################################################
9
10 import random
11
12 def losovani(x, minimum=1, maximum=49 ):
13 """funkce vrací senzam náhodných čísel
14 x ... počet čísel
15 minimum ... minimální číslo
16 maximum ... maximální číslo
17 """
18 cisla = []
19 while len(cisla) < x :
20 a = random.randint( minimum, maximum )
21 if (a in cisla) :
22 continue
23 else:
24 cisla.append(a)
25 return cisla
26
27 #s = losovani(20)
28 #print sorted(s)
29 #print s
30
31 def nacitiData(x, minimum=1, maximum=49 ):
32 """
33 funkce načte od uživatele x celých čísel
34 """
35 seznam = []
36 while len(seznam)<x :
37 try:
38 c = raw_input(' zadej celé číslo > ')
39 c = int(c) # převedu řetězec na číslo
40 if c in seznam :
41 print "CHYBA: toto číslo už bylo zadáno!!!"
42 elif c < minimum or c > maximum :
43 print "CHYBA: číslo musí být v rozsahu <{0},{1}>".format(minimum, maximum)
44 else:
45 seznam.append(c)
46 except:
47 print "CHYBA: musíš zadávat jen celá čísla"
48 return seznam
49
50
51 """
52 Program vyžádá od uživatele 6 čísel jako sázku do leterie,
53 provede losování a vypíše kolik čísel uživatel uhodl.
54 """
55
56 sazka = nacitiData(6)
57
58 loterie = losovani(6)
59
60 print sazka
61 print loterie
62
1 #!/usr/bin/python
2 # -*- coding: utf8 -*-
3 # Soubor: minmax.py
4 # Datum: 28.02.2013 08:40
5 # Autor: Marek Nožka, nozka <@t> spseol <d.t> cz
6 # Licence: GNU/GPL
7 # Úloha: nejmenší a největší prvek v seznamu
8 ############################################################################
9
10 import random
11
12 def maximum(sezn):
13 m=0
14 for i in range(len(sezn)):
15 if sezn[i]>sezn[m]:
16 m=i
17 return sezn[m]
18
19 def minimum(sezn):
20 m=sezn[0]
21 for prvek in sezn:
22 if prvek < m:
23 m=prvek
24 return m
25
26 ############################################################################
27 seznam = [random.randint(1,100) for _ in range(10)]
28
29 print maximum(seznam), max(seznam)
30 print minimum(seznam), min(seznam)
31
32
33 #############################################################################
34 # co nabízí Python
35
36
37 def srovnani(a,b):
38 """
39 srovnávací funkce:
40 vrací záprnou hodnotu pokud a<b
41 vrací 0 pro a==b
42 vrací kladnou hodnotu pro a>b
43 """
44 if len(a)<len(b):
45 return -1
46 elif len(a)==len(b):
47 return 0
48 elif len(a)>len(b):
49 return 1
50
51
52 seznam =[ 'ahoj', 'kkkkkkk' ,'cau', 'cus', 'neco dlouheho' ,'ab' ]
53
54 print seznam
55 print sorted(seznam, cmp=srovnani)
56
1 #!/usr/bin/env python
2 # -*- coding: utf8 -*-
3 # Soubor: obrazek.py
4 # Datum: 21.02.2013 08:47
5 # Autor: Marek Nožka, nozka <@t> spseol <d.t> cz
6 # Licence: GNU/GPL
7 # Úloha: cernobily obrazek
8 ###################################################3
9
10 import pylab as lab
11 import random
12
13 # výška a šířka
14 w=400
15 h=300
16
17 #### vytvořím bílé plátno
18 obr=[]
19 # přídávám řádky
20 for i in range(h):
21 radek=[]
22 # přídávám čísla do řádku
23 for j in range(w):
24 radek.append( 100 )
25 obr.append(radek)
26
27
28 # projdu obrázek pixel po pixelu
29 for y in range(h):
30 for x in range(w):
31 if x**2 + y**2 < 200**2 :
32 obr[y][x] = 0
33
34 for y in range(h):
35 for x in range(w):
36 if (x-100)**2 + (y-200)**2 < 30**2 :
37 obr[y][x] = 50
38
39 for y in range(h):
40 for x in range(w):
41 hodnota =(x-300)**2 + (y-100)**2
42 if hodnota>= 80**2 and hodnota<=81**2:
43 obr[y][x] = 50
44
45 lab.imshow(obr, interpolation='none', cmap='gray')
46
47 lab.show()
1 #!/usr/bin/python
2 # -*- coding: utf8 -*-
3 # Soubor: pila.py
4 # Datum: 24.01.2013 09:01
5 # Autor: Marek Nožka, nozka <@t> spseol <d.t> cz
6 # Licence: GNU/GPL
7 # Úloha: časový průběh pila ( trojuhelník)
8 ############################################################################
9 import matplotlib as mpl
10 mpl.use('GTKAgg')
11 mpl.use('Qt4Agg')
12 #mpl.rc('font',**{'family':'sans-serif','sans-serif':['Helvetica']})
13 ## for Palatino and other serif fonts use:
14 #mpl.rc('font',**{'family':'serif','serif':['Palatino']})
15 #mpl.rc('lines', linewidth=2, color='r')
16 mpl.rc('font', family = 'serif', serif = 'cmr10')
17 mpl.rcParams['text.usetex']=True
18 mpl.rcParams['text.latex.unicode']=True
19
20 import numpy as num
21 import scipy as sci
22 import pylab as lab
23 from pylab import pi
24
25 ############################################################################
26
27
28 t = lab.linspace(0,10,100)
29 u = lab.zeros(100)
30
31 hodnota=0
32 prirustek=0.1
33 j=0 # index vzorku
34
35 while j<len(u):
36 while hodnota<2 and j<len(u):
37 u[j] = hodnota
38 j+=1
39 hodnota += prirustek
40 while hodnota>0 and j<len(u):
41 u[j] = hodnota
42 j+=1
43 hodnota -= prirustek
44
45
46 lab.plot(t,u)
47 lab.grid()
48
49 lab.show()
50
51
1 # -*- coding: utf8 -*-
2
3 # poznámka se píše za dvojkříž
4
5 "daší zbůsob jak napsat poznámku je řetězec"
6
7 """ toto je víceřádkový řetěze
8
9
10 tady
11
12 ještě
13
14 řádek
15
16 ukončím 3x uvozovka"""
17
18 a = input(u"zadej číslo prosím : ")
19
20 if a<10:
21 print "zadal jsi číslo menší než 10".decode("UTF-8")
22 print "chyba"
23 else:
24 print "toto čílo je VĚTŠÍ než 10"
25
26 print "teto print se provede vždy"
1 #!/usr/bin/python
2 # -*- coding: utf8 -*-
3 # Soubor: podprogram.py
4 # Datum: 03.01.2013 09:07
5 # Autor: Marek Nožka, nozka <@t> spseol <d.t> cz
6 # Licence: GNU/GPL
7 # Úloha: Jak je to s podprogramy, lokální a globální proměné
8 ############################################################################
9
10
11 # podprogram bez pararametrů
12 def podA():
13 x = 20
14 print x
15 x = 77
16
17 def podB():
18 x = 60
19 print x
20 x = 88
21
22 def podG():
23 global x
24 print x
25 x = 123
26
27 def podZ():
28 print a
29
30 # podprogram s návratovou hodnoutou
31 def odmocnina(x,n):
32 vysledek = x ** (1./n)
33 return vysledek
34
35 ################################################################
36 ## Hlavní program
37
38 x = 66
39 podA()
40 podB()
41 podG()
42 print x
43
44 print '-------------------------------------------'
45 a = 44
46 podZ()
47
48 print '-------------------------------------------'
49 print odmocnina(16,4)
50 print odmocnina(64,2)
1 #!/usr/bin/python
2 # -*- coding: utf8 -*-
3 # Soubor: prerovnani-cisel.py
4 # Datum: 22.11.2012 08:51
5 # Autor: Marek Nožka, nozka <@t> spseol <d.t> cz
6 # Licence: GNU/GPL
7 # Úloha: Přerovnejte čísla tak, aby na začátku posloupnosti byla všechna
8 # záporná čísla v původním pořadí a za nimi všechna nezáporná
9 # čísla opět se zachováním jejich původního pořadí.
10 ############################################################################
11
12 radek = raw_input('zadej čísla >> ')
13 cisla = radek.split()
14
15 # udělám si dvě hromádky
16 kladnaCisla = [ ] # prázdný seznam
17 zapornaCisla = [ ]
18
19 i = 0
20 while i<len(cisla):
21 polozka = cisla[i] # vyříznu jednu položku seznamu
22 cisilko = float(polozka) # převedu řetězec na číslo
23 if cisilko < 0:
24 zapornaCisla = zapornaCisla + [ cisilko ]
25 else:
26 kladnaCisla.append(cisilko)
27 i += 1
28
29 # vypíšu čísla, co mám na hromádkách
30 i = 0
31 while i<len(zapornaCisla):
32 print (zapornaCisla[i])
33 i += 1
34
35 i = len(kladnaCisla)-1
36 while i>=0:
37 print (kladnaCisla[i])
38 i -= 1
39
40 # a teď se naučíme cyklus FOR
41 print "############### FOR ################"
42
43 for j in 1,2,3,'ahoj',"konc":
44 print j
45
46 print "############### FOR ################"
47
48 kladnaCisla.reverse() # převrátím pořadí
49 for c in kladnaCisla:
50 print c
51
52 print "############### FOR ################"
53
54 #http://docs.python.org/2.7/library/functions.html?highlight=range#range
55 for i in range(100,538):
56 if i % 29 == 0:
57 print i
58
1 #!/usr/bin/env python
2 # -*- coding: utf8 -*-
3 # Soubor: program.py
4 # Datum: 11.04.2013 08:35
5 # Autor: Marek Nožka, nozka <@t> spseol <d.t> cz
6 # Licence: GNU/GPL
7 # Úloha: Program pro demonstraci práce s moduly
8 ###################################################3
9
10 import veVyuce
11
12 # funkce obsah má proměný počet parametrů
13 print veVyuce.obsah(1,3,8)
14 print veVyuce.obsah(4,8)
15
16
17 # rozbalení seznamu
18 # hvězdička zajistí, že seznam se rozbalí
19 seznam = [5,7,12]
20 print veVyuce.obsah( *seznam )
21
22
23 print veVyuce.cisloPi
24 print veVyuce.pi()
25 veVyuce.cisloPi = 12345
26 print veVyuce.cisloPi
27 print veVyuce.pi()
28
29 print '###################################################'
30 # provede se KOPÍROVÁNÍ modulu do aktuálního jmenného prostoru
31 from veVyuce import *
32
33 print cisloPi
34 print pi()
35 cisloPi = 654
36 print cisloPi
37 print pi()
38
39 print obsah(9,8,7)
40
41
42 # kde hledá python moduly
43 import sys
44
45 sys.path += ['muj/adresar/s/modulama']
46
47 print sys.path
1 #!/usr/bin/python
2 # -*- coding: utf8 -*-
3 # Soubor: prumer.py
4 # Datum: 28.02.2013 08:32
5 # Autor: Marek Nožka, nozka <@t> spseol <d.t> cz
6 # Licence: GNU/GPL
7 # Úloha: průměr
8 ############################################################################
9
10 import random
11
12 seznam = [random.randint(1,50) for _ in range(20)]
13
14 ############################################################################
15
16 i=0
17 suma=0
18 while i<len(seznam):
19 suma = suma + seznam[i]
20 i+=1
21 print float(suma) / len(seznam)
22
23 ############################################################################
24
25 suma=0
26 for i in range(len(seznam)):
27 suma = suma + seznam[i]
28 print float(suma) / len(seznam)
29
30 ############################################################################
31
32 suma=0
33 for prvek in seznam:
34 suma = suma + prvek
35 print float(suma) / len(seznam)
36
37 ############################################################################
38
39 print float(sum(seznam)) / len(seznam)
1 #!/usr/bin/python
2 # -*- coding: utf8 -*-
3 # Soubor: pyramida.py
4 # Datum: 29.11.2012 08:18
5 # Autor: Marek Nožka, nozka <@t> spseol <d.t> cz
6 # Licence: GNU/GPL
7 # Úloha: tiskne pyramidu ze znaků
8 ############################################################################
9
10 import random
11 ############################################################################
12 pRadku = input('zadej počet řádků > ')
13
14 pMezer = pRadku - 1
15 pZnaku = 1
16
17 # znaky z kterých bude pyramida
18 znaky = tuple(u'@#$%^&*+μωχκΧνε!\\/?><,.')
19
20 for i in range( pRadku ) :
21 radek = ''
22 for j in range( pZnaku ):
23 #radek += znaky[ random.randint(0, len(znaky) -1 ) ]
24 # nahodne číslo v rozsahu indexů proměnné 'znaky'
25 nahoda = random.randint(0,len(znaky)-1)
26 # nahodny znak
27 znak = znaky[ nahoda ]
28 # přidám do řádku náhodný znak
29 radek = radek + znak
30 print pMezer*' ' + radek
31 pZnaku += 2
32 pMezer -= 1
33
1 #!/usr/bin/env python
2 # -*- coding: utf8 -*-
3 # Soubor: sinus.py
4 # Datum: 10.01.2013 08:58
5 # Autor: Marek Nožka, nozka <@t> spseol <d.t> cz
6 # Licence: GNU/GPL
7 # Úloha: kreslím sinus
8 # Popis: Tutoriál k PyLab
9 ###################################################3
10
11 import pylab as lab
12 import numpy
13 from numpy import pi
14
15
16 cisla = lab.zeros(10)
17 print "\nzeros(10)\n", cisla
18
19 cisla = lab.ones(10)
20 print "\nones(10)\n", cisla
21
22 bagr = lab.linspace(0,5,10)
23 print "\nlinspace(0,5,10)\n", bagr
24
25 kybl = lab.arange(0,10,2)
26 print "\narange(0,10,2)\n", kybl
27
28 print numpy.array([0,1,2,3]) + \
29 numpy.array([5,6,7,8])
30 ############################################################
31 # sinus
32
33 t = lab.linspace(0,1,100)
34 f=3
35 u = lab.sin(2*pi*f*t)
36 lab.plot(t,u)
37
38
39 u2 = lab.sin(2*pi*f*t)
40 for i in range(len(u2)):
41 u2[i] = abs(u2[i])
42
43 lab.plot(t,u2)
44
45 lab.show()
1 #!/usr/bin/env python
2 # -*- coding: utf8 -*-
3 # Soubor: sinus.py
4 # Datum: 17.01.2013 08:24
5 # Autor: Marek Nožka, nozka <@t> spseol <d.t> cz
6 # Licence: GNU/GPL
7 # Úloha:
8 ###################################################3
9
10 import pylab as lab
11
12 t = [ 0.1, 0.2, 0.25, 0.46 ]
13 u = [ 1, 3 , 3.5, 3.8 ]
14
15
16 lab.figure(1)
17 lab.plot(t,u,'g--o', markeredgecolor='blue') # kreslení
18
19 lab.xlim(0,0.6) # nastavím začátek a konec os
20 lab.ylim(-1,5)
21
22 lab.title(u'Můj první graf $x_{12} = \\frac{-b\\pm\\sqrt{D}}{2a}$')
23 lab.xlabel('t[s]') # popisek os
24 lab.ylabel('$u_1[V]$')
25
26 lab.grid() # mřížka
27
28 ##################################################
29 # teď už fakt nakreslím ten sinus
30
31 from pylab import pi
32
33 f = 3 # frakvence
34 fi = lab.deg2rad(60) # počáteční fáce
35
36 # vytvořím časovou osu
37 t = lab.linspace(0,1,1000)
38
39 # vypočítám napětí pro všechny časy
40 u = 3*lab.sin(2*pi*f*t+fi)
41
42
43 lab.figure() # nový obrázek
44 lab.plot(t,u,':')
45 lab.title('Funkce sinus')
46 lab.xlabel('t[s]')
47 lab.ylabel('u[V]')
48 lab.grid()
49
50 lab.ylim(1.1*min(u), 1.1*max(u))
51
52 lab.text(0.1, 2.5, u'Toto je můj duchaplný text')
53
54 ################################################
55 # ještě jeden graf do stejného obrázku
56
57 for i in range( len(u) ):
58 if u[i]>2 :
59 u[i] = 2
60 elif u[i]<-2:
61 u[i] = -2
62
63 for i in range( len(u) ):
64 if u[i]<0 :
65 u[i] = -u[i]
66
67 import numpy
68 numpy.abs(u)
69
70 lab.plot(t,u,'-')
71
72
73
74 lab.show()
75
1 # -*- coding: utf8 -*-
2
3 """
4 to to proram
5 """
6
7 cislo = 1
8 while cislo <= 100 :
9 if not (cislo > 14 and cislo < 28) or (cislo >70 and cislo < 80) :
10 print cislo
11 cislo += 1
12 print "KONEC"
1 #!/usr/bin/python
2 # -*- coding: utf8 -*-
3 # Soubor: soubory.py
4 # Datum: 07.02.2013 08:56
5 # Autor: Marek Nožka, nozka <@t> spseol <d.t> cz
6 # Licence: GNU/GPL
7 # Úloha: Práce se soubory
8 ############################################################################
9
10 # otevření souboru
11 # r - otevřu pro čtení -- soubor musí existovat
12 # w - otevřu pro zápis -- soubor bude vždy přepsán nebo vytvořen
13 # a - (append) přidání na konec souboru
14 # r+, w+ - oteveřní pro čtení a zápis nebo zápis a čtení.
15 # pridám b - binární režim => na Windows znamená \r \r a \n \n
16 # v textovém režumu na Windows \n znamená \r\n
17
18 import sys
19
20 f = open("soubor.txt","r")
21
22 # f je tzv. ovladač -- handler
23
24 #čtu zadaný potet bytů
25 znak = f.read(1)
26 print znak
27 znak = f.read(1)
28 print znak
29 znak = f.read(1)
30 print znak
31 f.seek(0) # přesune na začátek souboru
32 while True:
33 znak = f.read(1)
34 if znak == '': # pokud dojdu na konec souboru .read() vrátí prázdný řetězec
35 break # vyskočím z cyklu
36 # print znak, # print nechci protože tisne mezeru nebo '\n' navíc
37 sys.stdout.write(znak)
38
39 f.seek(0) # přesune na začátek souboru
40 cislo =1
41 while True:
42 radek = f.readline()
43 if radek == '': # pokud dojdu na konec souboru .read() vrátí prázdný řetězec
44 break # vyskočím z cyklu
45 print cislo,':', radek,
46 cislo +=1
47
48 f.close() # zavře soubor
49 ###########################################################################
50 # zápis do souboru
51 f = open("souborW.txt","w")
52
53 f.write("ahoj jak to jde\n")
54 f.write("je to tu fakt fakt moc moc\n")
55 f.write("SUPER\n")
56 f.write("tady nebude")
57 f.write("konec radku")
58
59 f.close() # zavře soubor
1 #!/usr/bin/python
2 # -*- coding: utf8 -*-
3 # Soubor: sude-cifry.py
4 # Datum: 22.11.2012 08:15
5 # Autor: Marek Nožka, nozka <@t> spseol <d.t> cz
6 # Licence: GNU/GPL
7 # Úloha: Určete počet různých sudých cifer daného přirozeného čísla.
8 ############################################################################
9
10 # načtu řetězec
11 radek = raw_input("zadej mi sem řetězec >> ")
12 print type(radek)
13
14 pocet = 0
15 i=0
16 while i<len(radek):
17 z = radek[i]
18 if z=='2' or z=='4' or z=='6' or z=='8':
19 pocet = pocet + 1
20 i += 1
21
22 if pocet ==1:
23 bagr ="v tomto řetězci je {} sudá cifra"
24 elif pocet >=2 and pocet <=4 :
25 bagr ="v tomto řetězci jsou {} sudé cifry"
26 else:
27 bagr ="v tomto řetězci je {} sudých cifer"
28
29 print bagr.format(pocet)
1 # -*- coding: utf8 -*-
2 # Soubor: veVyuce.py
3 # Datum: 11.04.2013 08:35
4 # Autor: Marek Nožka, nozka <@t> spseol <d.t> cz
5 # Licence: GNU/GPL
6 # Úloha: MODUL pro demonstraci práce s moduly
7 ###################################################3
8
9 cisloPi = 3.1415
10
11 # funkce obsah má proměný počet parametrů
12 # tuto skutečnost oznamuje *
13 def obsah(*parametry):
14 # print parametry
15 vysledek=1
16 i=0
17 while i < len(parametry) :
18 vysledek = vysledek * parametry[i]
19 i += 1
20 return vysledek
21
22 def pi():
23 return cisloPi
1 #!/usr/bin/python
2 # -*- coding: utf8 -*-
3 # Soubor: vypocet-pi.py
4 # Datum: 15.11.2012 09:16
5 # Autor: Marek Nožka, nozka <@t> spseol <d.t> cz
6 # Licence: GNU/GPL
7 # Úloha: vypočet čísla pi
8 # http://cs.wikipedia.org/wiki/Pí_(číslo)#Odhad_.CF.80
9 ##########################################################
10
11
12 jmenovatel = 1.
13 znamenko = 1.
14 cisloPI = 0.
15
16 while jmenovatel < 1e9 :
17 cisloPI = cisloPI + znamenko*4/jmenovatel
18 jmenovatel += 2 #jmenovatel = jmenovatel + 2
19 znamenko *= -1 # znamenko = znamenko * -1
20
21 print cisloPI
22 import math
23 print math.pi
1 #!/usr/bin/python
2 # -*- coding: utf8 -*-
3 # Soubor: zelva.py
4 # Datum: 13.12.2012 08:22
5 # Autor: Marek Nožka, nozka <@t> spseol <d.t> cz
6 # Licence: GNU/GPL
7 # Úloha: seznámení s želvou
8 ############################################################################
9
10 import turtle as t
11
12 # počáteční nastavení
13 #t.shape("turtle")
14 t.speed(6)
15
16 # podprogram kreslí čtverec
17 def ctverec(kroky=100):
18 t.left(90)
19 t.forward(kroky)
20 t.left(90)
21 t.forward(kroky)
22 t.left(90)
23 t.forward(kroky)
24 t.left(90)
25 t.forward(kroky)
26
27 # kytka
28 def kvetCtverec(strana=100, pocet=9):
29 for _ in range(pocet):
30 ctverec(strana)
31 t.left(360./pocet)
32
33 # n-úhelník
34 def nUhelnik(strana=100, n=6, barva="#000000"):
35 aktual = t.pencolor()
36 t.pencolor(barva)
37 uhel = 360./n
38 for _ in range(n):
39 t.forward(strana)
40 t.right(uhel)
41 t.pencolor(aktual)
42
43 def presun(x,y):
44 t.up()
45 t.goto(x,y)
46 t.down()
47
48 ###########################################################################
49
50 nUhelnik(n=9,barva='#12ea45')
51
52 kvetCtverec(pocet=5,strana=288)
53
54 presun(-200,-200)
55 t.pencolor('#c18fab')
56 kvetCtverec(80,18)
57
58 presun(200,-200)
59 t.pencolor('#328fef')
60 kvetCtverec(50)
61
62 presun(-200,200)
63 t.pencolor('#32c18f')
64 kvetCtverec(pocet=20)
65
66
67 t.exitonclick()
1 #!/usr/bin/python
2 # -*- coding: utf8 -*-
3 # Soubor: zelva.py
4 # Datum: 13.12.2012 08:22
5 # Autor: Marek Nožka, nozka <@t> spseol <d.t> cz
6 # Licence: GNU/GPL
7 # Úloha: seznámení s želvou
8 ############################################################################
9
10 import turtle as t
11 import random
12
13 def zub(kroky,hloubka):
14 if hloubka>random.randint(1,3):
15 zub(kroky/3.0, hloubka-1 )
16 else:
17 t.forward(kroky)
18 t.left(60)
19 if hloubka>random.randint(1,3):
20 zub(kroky/3.0, hloubka-1 )
21 else:
22 t.forward(kroky)
23 t.right(120)
24 if hloubka>random.randint(1,3):
25 zub(kroky/3.0, hloubka-1 )
26 else:
27 t.forward(kroky)
28 t.left(60)
29 if hloubka>random.randint(1,3):
30 zub(kroky/3.0, hloubka-1 )
31 else:
32 t.forward(kroky)
33
34 def zubbbb(kroky):
35 t.forward(kroky)
36 t.left(60)
37 t.forward(kroky)
38 t.right(120)
39 t.forward(kroky)
40 t.left(60)
41 t.forward(kroky)
42
43 ############################################################################
44 t.speed(9)
45 t.up()
46 t.goto(-300,0)
47 t.down()
48
49 zub(200,5)
50
51 t.exitonclick()