====== 4. Strukturované datové typy ======
===== 1. příklad =====
a = 10
b = 3
print("a:", a, "b:", b)
# prohozeni promennych s pomocnou promennou
tmp = a
a = b
b = tmp
print("a:", a, "b:", b)
# prozeni promennych bez pomocne promenne
a = a + b
b = a - b
a = a - b
print("a:", a, "b:", b)
# prohozeni promennych pomoci tuple
(a, b) = (b, a)
print("a:", a, "b:", b)
===== 2. příklad =====
def obdelnik(arg):
(a,b) = arg
return (a*b)
def kruznice(arg):
return (3.14*(arg**2))
def vypocet(f, arg):
return f(arg)
print("obdelnik:", vypocet(obdelnik, (2,3)))
print("kruznice:", vypocet(kruznice, 2.2))
===== 3. příklad =====
# pole vytvorene vyctem
a = [1, 2, 3]
for i in range(len(a)):
print("a[", i, "] = ", a[i])
y = 0
for i in a:
print("a[", y, "] = ", i)
y += 1
# prazdne pole b
b = []
b += [10]
b += [20]
print(b)
# prazdne pole c
c = list()
c.append(10)
c.append(20)
printc(c)
===== 4. příklad =====
def pole(p):
for i in range(len(p)):
p[i] += 10
a = [1, 2, 3, 4]
b = a # neni kopie, pouze reference
print("b: ", b)
a[3] = 100
print("b: ", b)
# kopie pomoci rezu
c = a[:]
print("c: ", c)
a[2] = 88
print("a: ", a)
print("c: ", c)
pole(c)
print("c: ", c)
===== 5. příklad =====
import random
def vektor(delka, rozsah):
"vektor nahodnych celych cisel"
r = [] # pole, ktere budu na konci vracet
for i in range(delka):
# r += [random.randint(1, rozsah)]
r.append(random.randint(1, rozsah))
return r
def vektor1(delka, rozsah=100):
return ([random.randint(1,rozsah) for i in range(delka)])
def soucet(x, y):
"soucet vektoru x a y"
return ([x[i]+y[i] for i in range(len(x))])
def soucin(x, y):
"skalarni soucin vektoru x a y"
s = 0
for i in range(len(x)):
s += x[i]*y[i]
return s
a = vektor(10, 40)
print(a)
b = vektor1(10)
print(b)
===== 6. příklad =====
b = [[1, 22, 3], [4, 5, 18]]
print("b: ", b)
print("b[0]: ", b[0])
print("len(b): ", len(b))
print("b[1][1]: ", b[1][1])
for i in b:
print(i)
for i in range(len(b)): # pocet vektoru
for j in range(len(b[0])): # delka vektoru
print(str(b[i][j]).rjust(2), end=" ")
print()
garaz = [
("petr", ["porsche", "bmw", "volvo"]),
("jan", ["bmw", "volvo"]),
("jiri", ["bmw", "porsche"])]
p = 0
for i in garaz:
(clovek, auta) = i
if "porsche" in auta:
p+=1
print("v garazi je ", p, "vozu znacky porsche")
a = [[]]
a[0] = [10, 20, 30]
print(a)
a.append([20, 30, 60])
print(a)