Skip to article frontmatterSkip to article content

Python 4 Data Science

Python 4 DS

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 z test_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.
  • 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:

TypOpisPrzykład
strString/text"A String"
intInteger2
floatFloat2.6789
listList[1, 2, 3]
dictDictionary{'a': 2}
boolBooleanTrue
NoneTypeNoneNone

Niektóre typy mają specjalne funkcje

W Pythonie różne typy obiektów mają różne funkcje.

  • Obiekt str ma funkcję replace i split.
  • Obiekt list ma funkcję append i join.
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 i dict 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 instrukcja if 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 i 5.
### 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 i literę 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.