Skip to content

Commit 61ea81f

Browse files
Funkcje
1 parent e10525e commit 61ea81f

File tree

19 files changed

+152
-19
lines changed

19 files changed

+152
-19
lines changed

10_Zbiory/README.md

+7-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,10 @@
11
# 10. Zbiory
22

33
- Tworzenie
4-
- Operacje https://docs.python.org/3/library/stdtypes.html#set-types-set-frozenset
4+
- Operacje https://docs.python.org/3/library/stdtypes.html#set-types-set-frozenset
5+
- porównanie
6+
- dodawanie
7+
- przecięcie
8+
- różnica
9+
- różnica symetryczna
10+

10_Zbiory/zbiory.py

+10-8
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
z = set(range(10))
22
z
3+
z = {1, 2, 3, 4, 1, 2}
4+
z
35
z = {'a', 'b', 'c'}
46
z
57
'a' in z
@@ -8,13 +10,13 @@
810
z2 = {'a', 'b', 'c', 'd'}
911
z < z2
1012
z3 = {'d', 'e'}
11-
z|z3
12-
z&z2
13-
z&z3
14-
z2-z
15-
z2^z3
13+
z | z3
14+
z & z2
15+
z & z3
16+
z2 - z
17+
z2 ^ z3
1618

17-
d = { z: 3} # Błąd
19+
slownik = {z: 3} # Błąd
1820
fz = frozenset(z)
19-
d = {fz: 3}
20-
d
21+
slownik = {fz: 3}
22+
slownik

11_Listy_i_zbiory-zaawansowane_mechanizmy/README.md

+9
Original file line numberDiff line numberDiff line change
@@ -24,3 +24,12 @@
2424

2525
`{ x:x*x for x in range(10)}`
2626

27+
---
28+
# Zadania
29+
30+
- Stworzyć *list comprehension* na podstawie jednej listy z liczbami całkowitymi, ale z elementami o 6 większymi
31+
- Stworzyć *list comprehension* tupli składających się z w/w liczb całkowitych i ich reprezentacji jako napis
32+
- np. `[(1, "1"), (2, "2")]`
33+
- biorąc słownik `{"Sedan": 1500, "SUV": 2000, "Pickup": 2500, "Minivan": 1600, "Van": 2400, "Semi": 13600, "Bicycle": 7, "Motorcycle": 110}` stworzyć list comprehension nazw pojazdów cięższych niż 5000
34+
- Nazwy podać dużymi literami (*uppercase*)
35+
`

12_Wyjatki_i_obsluga_bledow/README.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22

33
- Rodzaje błędów
44
- Programistyczne - te eleminujemy poprawiając kod
5-
- Infrastruktury - nic z tym nie zrobimy
6-
- Błedne dane - tu trzeba to obsłużyć
5+
- Infrastruktury - nie naprawimy, ale przynajmniej komunikujemy
6+
- Błedne dane - tu trzeba to obsłużyć - podając np. źródło błędu
77

88

99
- Tworzenie własnych typów błędów
+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
l = [range(5, 10)]
2+
print(l)
3+
i = int(input("podaj indeks "))
4+
print(f'Pod indeksem {i} jest element {l[i]}')

12_Wyjatki_i_obsluga_bledow/stacktrace.py

Whitespace-only changes.
+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
l = [range(5, 10)]
2+
print(l)
3+
try:
4+
i = int(input("podaj indeks "))
5+
print(f'Pod indeksem {i} jest element {l[i]}')
6+
except IndexError as e:
7+
print(e)
8+
else:
9+
print("Koniec")
10+
finally:
11+
print("Finally")

13_Funkcje/README.md

+14-7
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,11 @@
22

33
- Deklarowanie funkcji
44
- `def`
5-
- argumenty funkcji
6-
- Wartości domyslne parametrów
5+
- Argumenty funkcji
6+
- Wartości domyslne argumentów
7+
- Argumenty formalne
8+
- Argumenty pozycyjne
9+
- Argumenty nazwane
710
- Zwracanie wyników z funkcji
811
- `return`
912
- Dokumentowanie funkcji i pola specjalne
@@ -12,13 +15,17 @@
1215
---
1316
# Zadania
1417

15-
- stworzyc funckcję `alphabet_range` działająca jak `range` ale dla liter (z trzema paramtrami)
16-
- przykład: `alphabet_range('D')` -> `['A', 'B', 'C', 'D']` - albo jeszcze lepiej generator
17-
- użyć `ord` i `chr`
1818
- stworzyc słownik `{ 'first': funkcja1, 'second': funkcja2 }`, wczytać przez `input` klucz, wywołać funkcję
19+
- stworzyc funckcję `alphabet_range` działająca jak `range` ale dla liter (z trzema parametrami - `start`, `end`, `step`)
20+
- przykład: `alphabet_range('D')` -> `['A', 'B', 'C', 'D']` - albo jeszcze lepiej generator
21+
- użyć
22+
- `ord` - podaje kod calkowity danego znaku
23+
- `chr` - podaje znak odpowiadający danemu kodowi całkowitemu
24+
- stworzyć funkcję `moja_suma` o dowolnej ilości argumentów całkowitych a zwracająca ich sumę
25+
- np. `moja_suma(1, 2, 3, 4)` zwróci `10`
1926
- stworzyć funkcję `slownie_do999()` która zwróci słownie liczbę 0-999
2027
- stworzyć funkcję pomocniczą `_slownie_do999()` zwracającą listę tupli `(wartość, słownie)` dla 1 i "nastek" , 10, 100
2128
- stworzyć funkcję pomocniczą `_sklej()` sklejającą w/w listę
22-
- stworzyć funkcję `dodaj_jednostke` przyjmującą 3 formy np. `['jabłko', 'jabłka', 'jabłek']`
23-
- zbudować funkcję `słownie` do miliardów
29+
- stworzyć funkcję `dodaj_jednostke` przyjmującą w/w listę i 3 formy np. `['jabłko', 'jabłka', 'jabłek']`
30+
- zbudować funkcję `słownie` podającą słownie liczby całkowite do miliardów (do `999_999_999_999`)
2431

13_Funkcje/args.py

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
def test_var_args(farg, *args):
2+
print ("formal arg:", farg)
3+
print(args)
4+
for arg in args:
5+
print ("another arg:", arg)
6+
7+
test_var_args(1, "two", 3)
8+
9+
def test_var_kwargs(farg, **kwargs):
10+
print ("formal arg:", farg)
11+
for key in kwargs:
12+
print ("another keyword arg: %s: %s" % (key, kwargs[key]))
13+
print (kwargs)
14+
15+
16+
test_var_kwargs(farg=1, myarg2="two", myarg3=3)

13_Funkcje/przyklad.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -66,5 +66,6 @@ def choinka(poziom, separator=" ", znak="*"):
6666
print(S * (poziom - 1) + G)
6767
print(S * (poziom - 2) + G * 3)
6868

69+
6970
choinka(5)
70-
choinka( znak='#', poziom=6)
71+
choinka(znak='#', poziom=6)

13_Funkcje/slownie.py

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
nazwy_jednosci = {0: "", 1: "jeden", 2: "dwa", 3: "trzy", 4: "cztery", 5: "pięć", 6: "sześć", 7: "siedem", 8: "osiem",
2+
9: "dziewięć"}
3+
nazwy_nastki = {11: "jedenaście", 12: "dwanaście", 13: "trzynaście", 14: "czternaście", 15: "piętnaście",
4+
16: "szesnaście", 17: "siedemnaście", 18: "osiemnaście", 19: "dziewietnaście"}
5+
nazwy_dziesiatki = {0: "", 10: "dziesięć", 20: "dwadzieścia", 30: "trzydzieści", 40: "czterdzieści", 50: "pięćdziesiąt",
6+
60: "sześćdziesiąt", 70: "siedemdziesiąt", 80: "osiemdziesiąt", 90: "dziewięćdziesiąt"}
7+
nazwy_setki = {0: "", 100: "sto", 200: "dwieście", 300: "trzysta", 400: "czterysta", 500: "pięćset", 600: "sześćset",
8+
700: "siedemset", 800: "osiemset", 900: "dziewięćset"}
9+

13_Funkcje/specjalne_pola.py

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
def f():
2+
"""
3+
Ta funkcja wypisuje 'OK'
4+
:return: nothing
5+
"""
6+
print("OK")
7+
8+
print(f.__name__)
9+
10+
print(f.__doc__)

14_Moduly/argumenty_cli.py

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
import sys
2+
import os
3+
4+
if __name__ == '__main__':
5+
print(f'Jestem w {os.getcwd()}')
6+
print(f'A to moje argumenty z linii poleceń {sys.argv}')

14_Moduly/fib_module.py

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
print("Importing "+__name__)
2+
3+
my_variable = 7
4+
5+
6+
def fib(n): # return Fibonacci series up to n
7+
result = []
8+
a, b = 0, 1
9+
while a < n:
10+
result.append(a)
11+
a, b = b, a+b
12+
return result
13+
14+
15+
if __name__=='__main__':
16+
print(f'Testowo: {fib(5)}')

14_Moduly/fib_package.py

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
import sys
2+
from fibonacci import fibonacci1 as f1
3+
4+
if __name__=='__main__':
5+
print (sys.path) # Tu szukamy modułów
6+
print(f1.fib(25))

14_Moduly/fib_script.py

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import sys
2+
import fib_module
3+
4+
if __name__ == '__main__':
5+
n = int(sys.argv[1])
6+
print(f'Pierwsze {n} liczb Fibonacciego')
7+
print(fib_module.fib(n))

14_Moduly/fibonacci/__init__.py

Whitespace-only changes.

14_Moduly/fibonacci/fibonacci1.py

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
print("Importing "+__name__)
2+
3+
my_variable = 1
4+
5+
def fib(n): # return Fibonacci series up to n
6+
result = []
7+
a, b = 0, 1
8+
while a < n:
9+
result.append(a)
10+
a, b = b, a+b
11+
return result

14_Moduly/fibonacci/fibonacci2.py

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
print("Importing "+__name__)
2+
3+
my_variable = 2
4+
5+
6+
def fib(n): # return Fibonacci series up to n
7+
result = []
8+
a, b = 0, 1
9+
while a < n:
10+
result.append(a)
11+
a, b = b, a+b
12+
return result

0 commit comments

Comments
 (0)