Skip to content

Commit 08d0fb1

Browse files
piotrekiokwadrat
authored andcommitted
Dodałem dodatki 1-4, zaktualizowałem podsumowanie
1 parent 6311e88 commit 08d0fb1

6 files changed

+339
-6
lines changed

Diff for: 17_podsumowanie.md

+7-6
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,18 @@
11
# Podsumowanie
22

3-
Dobiegamy do końca kursu, ale to jeszcze nie koniec warsztatów! Mentorzy
4-
mają dla Ciebie jeszcze garść zadań. Możesz też skorzystać z okazji
5-
i zadać mentorom tyle pytań na ile tylko starczy czasu - między innymi
6-
dlatego zorganizowaliśmy te warsztaty!
3+
Dobiegamy do końca kursu, ale to jeszcze nie koniec warsztatów! Czekają
4+
na Ciebie jeszcze dodatkowe rozdziały - znajdziesz je w sekcji "Dodatki"
5+
pod spisem treści. Poza tym mentorzy mają dla Ciebie jeszcze garść zadań.
6+
Możesz też skorzystać z okazji i zadać mentorom tyle pytań na ile tylko
7+
starczy czasu - między innymi dlatego zorganizowaliśmy te warsztaty!
78

89

910
## O czym nie powiedzieliśmy
1011

1112
Niestety czas na warsztaty jest organiczony, więc i zakres tematów jakie
1213
poruszyliśmy nie jest wyczerpujący. Znasz już podstawy Pythona. Możesz
13-
już samodzielnie pisać programy, a czytanie cudzych nie będzie już takie
14-
trudne. Jednak na tym etapie często trafisz na kod, którego nie
14+
już samodzielnie pisać własne programy, a czytanie cudzych nie będzie już
15+
takie trudne. Jednak na tym etapie często trafisz na kod, którego nie
1516
zrozumiesz. A może już teraz wiesz o tematach, które wydają się
1617
interesujące, ale nie wiesz jak zacząć. Dlatego przygotowaliśmy dla Ciebie
1718
listę zagadnień, którą możesz potraktować jako kontynuację tych warsztatów.

Diff for: README.md

+8
Original file line numberDiff line numberDiff line change
@@ -69,3 +69,11 @@ dzięki temu sami możemy teraz na nie odpowiadać.
6969
16. [Biblioteka standardowa](./16_biblioteka_standardowa.md)
7070
17. [Podsumowanie](./17_podsumowanie.md)
7171

72+
73+
## Dodatki
74+
75+
1. [Instalacja Pythona](./d01_instalacja_pythona.md)
76+
2. [Moduły](./d02_moduly.md)
77+
2. [Funkcja `input`](./d03_input.md)
78+
4. [Operacje na plikach](./d04_pliki.md)
79+

Diff for: d01_instalacja_pythona.md

+78
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
# Dodatek 1. Instalacja Pythona
2+
3+
Praca na stronie repl.it jest wygodna podczas nauki, jednak aby w pełni
4+
korzystać z Pythona, warto go zainstalować na własnym komputerze. Poniżej
5+
znajdziesz intrukcję instalacji Pythona na systemie Windows. Jeżeli
6+
używasz innego systemu operacyjnego - poproś o pomoc mentora.
7+
8+
9+
## Krok 1: podbierz program instalacyjny
10+
11+
Wejdź na stronę https://www.python.org/ a następnie otwórz zakładkę
12+
"Downloads" i odszukaj w niej przycisk "Python 3.6.2". Kliknij w niego.
13+
W ten sposób pobierzesz program instalacyjny Pythona.
14+
15+
![krok 1](./obrazy/d01/krok_1.jpg)
16+
17+
18+
## Krok 2: uruchom program instalacyjny
19+
20+
Odszukaj na dysku program instalacyjny i uruchom go. Zobaczysz okno
21+
zatytułowane "Install Python 3.6.2". Upewnij się, że opcja "Add Python
22+
3.6 to PATH" jest zaznaczona, a następnie kliknij przycisk "Install Now".
23+
24+
![krok 2](./obrazy/d01/krok_2.jpg)
25+
26+
27+
## Krok 3: czekaj aż instalacja dobiegnie końca
28+
29+
Instalacja Pythona może potrwać nawet kilkanaście minut.
30+
31+
![krok 3](./obrazy/d01/krok_3.jpg)
32+
33+
34+
## Krok 4: upewnij się, że instalacja przebiegła prawidłowo
35+
36+
Jeżeli instalacja powiedzie się, w oknie programu instalacyjnego pojawi
37+
się napis "Setup was successful". Gdyby tak się nie stało, poproś o pomoc
38+
mentora.
39+
40+
![krok 4](./obrazy/d01/krok_4.jpg)
41+
42+
43+
## Krok 5: uruchom program IDLE
44+
45+
Wraz z Pythonem został zainstalowany program IDLE, w którym możesz edytować
46+
pliki z kodem. Jest tam też dostępny tryb interaktywny. IDLE to kompletne
47+
środowisko programistyczne, w którym możesz tworzyć nawet zaawansowane
48+
programy.
49+
50+
Odszukaj IDLE wśród programów zainstalowanych na Twoim komputerze i uruchom
51+
go.
52+
53+
![krok 5](./obrazy/d01/krok_5.jpg)
54+
55+
56+
## Krok 6: tryb interaktywny
57+
58+
Po pierwszym uruchomieniu domyślnie otworzy się tryb interaktywny.
59+
Spróbuj wpisać kilka znanych Ci poleceń.
60+
61+
![krok 6](./obrazy/d01/krok_6.jpg)
62+
63+
64+
## Krok 7: napisz i uruchom swój pierwszy program
65+
66+
Kliknij opcję "File" w pasku u góry okna, a następnie wybierz "New File".
67+
Pojawi się okno edytora. Wpisz w nim kod jakiegoś programu, np.
68+
`print('PyLadies')`. Zapisz plik wybierając "File", a następnie "Save".
69+
Aby uruchomić program kliknij w "Run" i "Run Module" (albo wciśnij klawisz
70+
F5). Program zostanie uruchomiony. Jeżeli wypisze jakiś tekst na ekran,
71+
to zobaczysz go w oknie trybu interaktywnego.
72+
73+
![krok 7](./obrazy/d01/krok_7.jpg)
74+
75+
To wszystko. Masz już na swoim komputerze środowisko do programowania
76+
w Pythonie. Możesz pisać kod programów, zapisywać go w plikach, otwierać
77+
je i uruchamiać. Możesz również pracować w trybie interaktywnym.
78+

Diff for: d02_moduly.md

+74
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
# Dodatek 2. Moduły
2+
3+
Jak wspomnieliśmy w rozdziale ["Biblioteka standardowa"](./16_biblioteka_standardowa.md),
4+
każdy może utworzyć własny moduł (bibliotekę) do Pythona i udostępniać
5+
go innym, lub po prostu używać go w różnych projektach. Poniżej
6+
przeczytasz jak tworzyć moduły i w jaki sposób z nich korzystać.
7+
8+
9+
## Pisanie modułu
10+
11+
Jeżeli masz na swoim komputerze [program IDLE](./d01_instalacja_pythona.md'),
12+
to pewnie wiesz już, że kod programów napisanych w Pythonie jest zapisywany
13+
w plikach z rozszerzeniem `.py`. Jest to konwencja, która pozwala w łatwy
14+
sposób odróżnić kod Pythona od innych plików, które go nie zawierają.
15+
16+
Każdy plik z rozszerzeniem `.py` jest jednocześnie programem, który możemy
17+
uruchomić w Pythonie. Innymi słowy: jeżeli uruchomimy Pythona i otworzymy
18+
w nim plik z rozszerzeniem `.py`, to kod zawarty w tym pliku zostanie
19+
wykonany.
20+
21+
Równocześnie każdy plik z rozszerzeniem `.py` jest też modułem. Oznacza
22+
to, że możemy go zaimportować w innym pliku instrukcją `import` i w ten
23+
sposób uzyskać dostęp do wszystkich obiektów w nim zdefiniowanych: funkcji,
24+
zmiennych itd.
25+
26+
Podsumowując: aby napisać moduł wystarczy umieścić dowolny kod w pliku
27+
z rozszerzeniem `.py`. Każdy taki plik może być potencjalnie wykorzystany
28+
jako moduł.
29+
30+
31+
## Importowanie modułów
32+
33+
Gotowy moduł możemy wykorzystać w dowolnym innym programie lub module,
34+
importując go tam. Ważne jest, aby oba pliki znajdowały się **w tym
35+
samym katalogu**, w przeciwnym wypadu Python rzuci wyjątek `ImportError`.
36+
37+
Moduł importujemy instrukcją `import`, w której podajemy jego nazwę, która
38+
jest taka sama jak nazwa pliku w którym go zapisaliśmy, ale bez
39+
rozszerzenia `.py`.
40+
41+
Załóżmy, że utworzyliśmy plik o nazwie `funkcje.py` i zapisaliśmy w nim
42+
taki kod:
43+
44+
```python
45+
def suma(a, b):
46+
return a + b
47+
```
48+
49+
Teraz w tym samym katalogu możemy utworzyć plik `obliczenia.py` i wpisać
50+
w nim następujący kod:
51+
52+
```python
53+
import funkcje
54+
55+
print(funkcje.suma(2000, 17))
56+
```
57+
58+
Jeżeli uruchomimy program `obliczenia.py`, to na ekran zostanie wypisana
59+
liczba `2017`.
60+
61+
62+
## Zastosowanie modułów
63+
64+
Moduły to jeden z najpotężniejszych mechanizów w Pythonie. Pozwalają
65+
podzielić programy na logicznie odseparowane fragmenty. Przykładowo,
66+
w jednym module możemy umieścić wszystkie funkcje odpowiedzialne za
67+
obliczenia matematyczne, w drugim funkcje wypisujące dane na ekran,
68+
a w trzecim połączyć wszystko w całość korzystając z dwóch pozostałych
69+
modułów.
70+
71+
Pisząc programy zawsze miej na uwadze, że podział na moduły zwiększa
72+
czytelnośc Twojego kodu. Również Tobie łatwiej będzie wrócić do programu,
73+
którego kod został w taki sposób uporządkowany.
74+

Diff for: d03_input.md

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# Dodatek 3. Funkcja `input`
2+
3+
Pisząc program bardzo często oczekujemy, że jego użytkownik poda nam jakieś
4+
dane: swoje imię i nazwisko, parametry liczbowe, czy inne wartości, które
5+
wpłyną na przebieg programu. Najprostszą metodą na pozyskanie takich
6+
danych jest funkcja wbudowana `input`, która po wywołaniu zatrzymuje
7+
działanie programu, czeka aż użytkownik wpisze coś i wciśnie enter, po
8+
czym zwraca wpisany tekst w postaci stringa:
9+
10+
```python
11+
print('Podaj swój wiek:')
12+
wiek = input()
13+
print('Masz {} lat'.format(wiek))
14+
```
15+
16+
W powyższym przykładzie wypisujemy na ekran komunikat - prośbę o podanie
17+
wieku - następnie pobieramy tę wartość od użytkownika i wypisujemy ją
18+
w kolejnym komunikacie.
19+
20+
Pamiętaj, że tak otrzymana wartość zawsze będzie stringiem. Jeżeli chcesz
21+
zamienić ją na liczbę, możesz posłużyć się funkcją wbudowaną [`int`](https://docs.python.org/3/library/functions.html#int).
22+

Diff for: d04_pliki.md

+150
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,150 @@
1+
# Dodatek 4. Operacje na plikach
2+
3+
Często źródłem danych w programach są pliki. Jeżeli plik zawiera tekst,
4+
czyli znaki, które możemy wyświetlić na ekranie, to nazywamy go **plikiem
5+
tekstowym**. Taki plik możemy odczytać w edytorze tekstu, na przykład
6+
w Notatniku. Istnieją również pliki, których treści nie interpretujemy
7+
jako tekst, na przykład obrazy. Nazywamy je **plikami binarnymi**.
8+
9+
Oba rodzaje plików możemy odczytywać i zapisywać w Pythonie, jednak
10+
w tym artykule skupimy się na plikach tekstowych. Kiedy nauczysz się
11+
pracować z nimi, operacje na plikach binarnych nie będą już dla Ciebie
12+
stanowiły żadnego problemu.
13+
14+
15+
## Ścieżka pliku
16+
17+
Najważniejszym atrybutem pliku jest jego **ścieżka**, która mówi w jakim
18+
miejscu w strukturze katalogów i pod jaką nazwą się znajduje. Przykładowo,
19+
jeżeli w systemie Windows zalogujesz się jako użytkownik "Ala" i utworzysz
20+
plik "kot.txt" w katalogu "Moje Dokumenty", to ścieżka tego pliku będzie
21+
najprawdopodobniej wyglądała tak: `C:\Users\Ala\Documents\kot.txt`.
22+
23+
Ścieżki w Pythonie trzymamy w stringach, na przykład:
24+
25+
```python
26+
>>> sciezka_pliku_kot = 'C:\Users\Ala\Documents\kot.txt'
27+
>>> print(sciezka_pliku_kot)
28+
C:\Users\Ala\Documents\kot.txt
29+
```
30+
31+
W powyższym przykładzie zdefiniowaliśmy **ścieżkę bezwzględną**, czyli
32+
taką, która dokładnie określa katalog w jakim znajduje się plik
33+
(`C:\Users\Ala\Documents`). Jeżeli odnosimy się do pliku względem
34+
katalogu, w którym znajduje się nasz program, możemy zdefiniować **ścieżkę
35+
względną**. Na przykład możemy podać tylko nazwę pliku: `kot.txt`. Wtedy
36+
Python uzna, że szukamy pliku w tym samym katalogu co program. Możemy też
37+
powiedzieć, że plik znajduje się w katalogu "wyżej": `..\kot.txt`.
38+
39+
Niezależnie od wybranej metody, aby operować na pliku będziemy potrzebowali
40+
jego ścieżki.
41+
42+
43+
## Czytanie pliku
44+
45+
Dostęp do pliku daje nam funkcja wbudowana `open`, która jako argument
46+
przyjmuje ścieżkę:
47+
48+
```python
49+
>>> plik = open(sciezka)
50+
```
51+
52+
Gdy zdefiniujemy sobie plik, możemy odczytać całą jego treść wywołując
53+
metodę `read`:
54+
55+
```python
56+
>>> dane = plik.read()
57+
>>> print(dane)
58+
zawartość pliku
59+
```
60+
61+
Możemy również iterować po pliku, linijka po linijce:
62+
63+
```python
64+
for linia in plik:
65+
print(linia)
66+
```
67+
68+
Gdy odczytamy plik, ponowna próba odczytu zwróci nam pusty string. Dzieje
69+
się tak, ponieważ Python trzyma informację o miejscu w którym skończyliśmy
70+
odczyt pliku i kolejne odczyty zaczyna od tego miejsca. Jeżeli ta pozycja
71+
to koniec pliku, ponowna próba odczytu nic nie zwróci. Chcąc przeczytać
72+
plik od nowa musimy wywołać metodę `seek` z argumentem `0`, co przestawi
73+
pozycję odczytu na sam początek:
74+
75+
```python
76+
>>> plik = open('kot.txt')
77+
>>> plik.read()
78+
'ala ma kota'
79+
>>> plik.read()
80+
''
81+
>>> plik.seek(0)
82+
>>> plik.read()
83+
'ala ma kota'
84+
>>> plik.read()
85+
''
86+
```
87+
88+
89+
## Pisanie do pliku
90+
91+
Otwierając plik funkcją `open` możemy zdecydować, czy będziemy wykonywali
92+
na nim odczyt czy zapis. Domyślnie Python zakłada odczyt. Jeżeli chcemy
93+
wprost określić **tryb** (*mode*) pracy z plikiem, musimy przekazać drugi
94+
argument, który powinien być stringiem. Jeżeli wybierzemy `'r'` (*read*),
95+
to plik będziemy mogli tylko odczytywać. Jeżeli `'w'` (*write*),
96+
to możliwy będzie tylko zapis. Dostępnych trybów jest więcej, o wszystkich
97+
przeczytasz w [dokumentacji metody `open`](https://docs.python.org/3/library/functions.html#open).
98+
99+
Po otwarciu pliku w trybie zapisu, możemy wpisać do pliku tekst metodą
100+
`write`:
101+
102+
```python
103+
>>> plik = open('kot.txt', 'w')
104+
>>> plik.write('ala ma kota')
105+
```
106+
107+
Jeżeli przed otwarciem pliku znajdował się w nim jakiś tekst, to po
108+
wywołaniu metody `write` zostanie on **nadpisany**. Jednak kolejne zapisy
109+
na już otwartym pliku spowodują, że tekst będzie dopisywany na końcu.
110+
111+
```python
112+
>>> sciezka = 'kot.txt'
113+
>>> open(sciezka).read()
114+
'na początku był taki tekst'
115+
>>> plik = open(sciezka, 'w')
116+
>>> plik.write('teraz nadpiszemy')
117+
>>> plik.write(' tamten tekst')
118+
>>> plik.close()
119+
>>> open(sciezka).read()
120+
'teraz nadpiszemy tamten tekst'
121+
```
122+
123+
Zwróć uwagę, że w powyższym przykładzie po zapisaniu tekstu wywołaliśmy
124+
metodę `close`. W ten sposób zamknęliśmy plik, powodując zachowanie danych
125+
na dysku. Gdybyśmy tego nie zrobili, wywołanie metody `read` zwróciłoby
126+
pierwotną zawartość pliku. Metodę `close` należy stosować jeżeli po
127+
zapisie chcemy ponownie odczytać ten sam plik. W przeciwnym wypadku Python
128+
sam zadba o zamknięcie pliku: zrobi to jeżeli zakończy się funkcja,
129+
w której otworzyliśmy plik albo gdy program zakończy swoje działanie.
130+
131+
132+
## Znak nowej linii
133+
134+
Operując na plikach tekstowych natkniemy się na **znak nowej linii**,
135+
który w Pythonie jest reprezentowany jako string o treści `\n`. Oznacza
136+
on miejsce, w którym kończy się linia tekstu. Sam znak nie ma w sobie
137+
nic szczególnego, jest po prostu znakiem jak `a` czy `7`. Natomiast
138+
przyjmuje się, że znak nowej linii ma specjalne znaczenie, aby umożliwić
139+
podział tekstu na osobne linie. Dlatego też jest on traktowany inaczej
140+
niż inne znaki, np. funkcja `print` zastąpi go przejściem do nowej linii.
141+
Co istotne, znak ten nie jest bezpośrednio związany z plikami - może być
142+
częścią dowolnego stringa.
143+
144+
```python
145+
>>> s = 'pierwsza linia\ndruga linia'
146+
>>> print(s)
147+
pierwsza linia
148+
druga linia
149+
```
150+

0 commit comments

Comments
 (0)