Python 4 Data Science¶
Tutaj omówimy niezbędne dla analizy danych podstawy Pythona.
- Zmienne.
- Funkcje.
- Wyrażenia warunkowe.
- Pętle.
Zmiennne¶
Zmienna przechowuje określoną wartość.
- W przeciwieństwie do literałów (np.
int
), wartość zmiennej może się zmieniać (tj. może zmienna). - Zmienne mogą być przypisywane przy użyciu operatora przypisania (
=
). - Po przypisaniu zmiennej, można jej używać odwołując się do jej nazwy.
## Przykładowa zmienna
my_int = 5
## Użycie tej zmiennej
my_int + 2
7
## Zmiana wartości zmiennej
my_int += 10
my_int
15
Zasady przypisywania zmiennych¶
- Nazwy po lewej, wartości po prawej (np.
test_var = 2
). - W nazwach rozróżniana jest wielkość liter (zmienna
test_var
nie może być dostępna ztest_VAR
). - Nazwy zmiennych muszą zaczynać się od litery.
- Mogą zawierać liczbę (np.
test1
) lub zaniżony wynik, ale nie mogą zaczynać się od liczby lub zaniżonego wyniku.
- Mogą zawierać liczbę (np.
- Python przeważnie nie dba o to, jak nazwiesz swoje zmienne, choć powinieneś(aś)!
- Pamiętaj, że kod ma być czytany przez innych - więc upewnij się, że jest jasny!
typy
obiektów¶
Wartość przypisana do zmiennej może mieć różne typy.
Oto niektóre z możliwych typów w Pythonie:
Typ | Opis | Przykład |
---|---|---|
str | String/text | "A String" |
int | Integer | 2 |
float | Float | 2.6789 |
list | List | [1, 2, 3] |
dict | Dictionary | {'a': 2} |
bool | Boolean | True |
NoneType | None | None |
Niektóre typy
mają specjalne funkcje¶
W Pythonie różne typy
obiektów mają różne funkcje.
- Obiekt
str
ma funkcjęreplace
isplit
. - Obiekt
list
ma funkcjęappend
ijoin
.
my_str = "CSS 1"
my_str = my_str.replace("1", "2")
my_str
'CSS 2'
my_str.split(" ")
['CSS', '2']
Niektóre typy są „kolekcjami”¶
- Zarówno
list
jak idict
przechowują kolekcje elementów.
### Przykładowa lista
my_list = [1, 2, "a"]
my_list
[1, 2, 'a']
### Przykładowy słownik
my_dictionary = {'a': 1, 'b': 2}
my_dictionary
{'a': 1, 'b': 2}
Funkcje¶
Funkcja jest fragmentem kodu wielokrotnego użytku, który wykonuje pewną operację (zazwyczaj na pewnym wejściu), a następnie zazwyczaj zwraca wynik (tj. wyjście).
Funkcja jest definiowana za pomocą słowa kluczowego def
:
def func_name(arg1):
### Cokoliwek robi ta funkcja ;-)
return some_value
Po utworzeniu funkcji można jej używać.
Funkcje: prosty przykład¶
Poniższa funkcja kwadrat
zwraca wynik mnożenia wejściowego x
przez siebie.
def square(x):
return x * x
square(2)
4
square(3)
9
Sprawdzanie: funkcje a zmienne¶
Załóżmy, że definiujemy funkcję o nazwie cube
, która obejmuje pewne dane wejściowe x
. Jak moglibyśmy wywołać tę funkcję, np. na wejściu takim jak 2
?
cube
cube()
cube(2)
cube 2
Twoja kolej: dekodowanie funkcji¶
Co robi poniższa funkcja?
def mystery_func(x, n):
return x % n == 0
Rozwiązanie¶
Tutaj mystery_func
sprawdza czy x
jest podzielne przez n
.
mystery_func(10, 2)
True
mystery_func(10, 3)
False
Wartości domyślne¶
Wartość domyślna jest wartością przyjmowaną przez argument domyślnie. Jeśli nie określono innej wartości, jest to wartość przyjmowana przez funkcję.
W definicji funkcji, wartość domyślna może być określona poprzez ustawienie: arg_name = default_value
.
- W poniższym przykładzie,
x
jest wymagane. - Ale
n
ma wartość domyślną2
.
def is_divisible(x, n = 2):
return x % n == 0
is_divisible(10) ### Zakładając n = 2
True
is_divisible(10, 3) ### Nadpisanie z n = 3
False
Argumenty pozycyjne a argumenty słów kluczowych¶
Argument funkcji może być wskazany za pomocą pozycji lub słowa kluczowego. Który z tych sposobów został przedstawiony w poniższym kodzie?
- Pozycyjny
- Słowo kluczowe
- Oba
is_divisible(24, n = 3)
True
Kontrola przepływu¶
Przepływ sterowania odnosi się do narzędzi, których możemy użyć do kontrolowania, które linie kodu są wykonywane i kiedy.
W Pythonie istnieją dwa główne sposoby kontrolowania „przepływu” naszego programu:
- Stwierdzenia warunkowe:
if/elif/else
- Pętle:
for/while
Instrukcje warunkowe¶
W skrócie, warunek jest instrukcją, która sprawdza, czy jakiś warunek jest spełniony.
Możemy użyć polecenia if
, aby kontrolować, które linie kodu są wykonywane.
x = 'Jeden ciąg znaków'
y = 'Jeden ciąg znaków'
if x == y:
print('Te ciągi są takie same.')
Te ciągi są takie same.
else
¶
Instrukcja
else
mówi Pythonowi, co zrobić, jeśli instrukcjaif
ma wartośćFalse
.
x = "Jeden ciąg"
y = "Inny ciąg znaków"
if x == y:
print("Te ciągi są takie same.")
else:
print("Te ciągi są różne")
Te ciągi są różne
Instrukcje warunkowe i funkcje¶
Instrukcje warunkowe stają się szczególnie przydatne, gdy połączymy je z funkcjami.
def square_if_even(x):
if x % 2 == 0:
return x ** 2
else:
return x
Twoja kolej!¶
Jak napisać funkcję fizzbuzz
, która:
- przyjmuje liczbę
x
jako dane wejściowe. - zwraca „Fizz”, jeśli liczba jest podzielna przez
3
. - zwraca „Buzz” jeśli liczba jest podzielna przez
5
. - zwraca „FizzBuzz” jeśli liczba jest podzielna zarówno przez
3
jak i5
.
### Twój kod tutaj
# Odkomentuj następującą linię, aby zobaczyć rozwiązanie:
# %load ./solutions/solution1.py
Twoja kolej!¶
Jak napisać funkcję o nazwie contains_letter
, która:
- Pobiera zarówno
słowo
jak iliterę
jako dane wejściowe. - Sprawdza, czy
słowo
zawiera tęliterę
.- Jeśli tak, wypisuje „Tak”.
- W przeciwnym razie, wypisuje „Nie”.
### Twój kod tutaj!
# Odkomentuj następującą linię, aby zobaczyć rozwiązanie:
# %load ./solutions/solution2.py
# contains_letter("dog", "o")
Yes
# contains_letter("cat", "o")
No
Pętle¶
Pętla to sposób na wielokrotne powtarzanie tego samego fragmentu kodu.
Kiedy należy używać pętli?¶
Zasada kciuka: jeśli zauważysz, że kopiujesz/wklejasz ten sam kod wiele razy... możesz pomyśleć o użyciu pętli!
Mówiąc bardziej ogólnie: w programowaniu często chcemy wykonać tę samą czynność wielokrotnie.
- Zastosuj tę samą instrukcję do każdego elementu na
liście
. - Kontynuować wykonywanie kodu do momentu spełnienia określonego warunku.
pętle for
w akcji¶
Pętla
for
jest używana do iteracji po sekwencji.
Pętla for
używa składni:
for elem in list_name:
# rób coś
## To jest lista w Pythonie
numbers = [1, 2, 3]
### To jest pętla for
for number in numbers:
print(number)
1
2
3
pętle for
i funkcje¶
Podobnie jak instrukcje if
, pętla for
staje się szczególnie potężna w połączeniu z funkcją.
def multiply_list(numbers):
product = 1 ## dlaczego zaczynam od 1, a nie od 0?
for i in numbers:
product *= i
return product ## zwróć uwagę na wcięcie!
multiply_list([1, 2, 3])
6
Twoja kolej!¶
Napisz funkcję o nazwie znajdz_samogloski
, która:
- przyjmuje jako wejście
str
. - zwraca listę samogłosek w tym ciągu.
### Twój kod tutaj.
# Odkomentuj następującą linię, aby zobaczyć rozwiązanie:
# %load ./solutions/solution3.py
# znajdz_samogloski("programming")
['o', 'a', 'i']
# znajdz_samogloski("cat")
['a']
Podsumowanie¶
W zamierzeniu miał to być szybki przegląd podstaw Pythona, w tym:
- Podstawowa składnia Pythona.
- Definiowanie funkcji.
- Używanie instrukcji
if
. - Używanie pętli
for
.
Następnym razem przejrzymy pakiety, które będą pomocne w pracy z danymi, takie jak pandas
.