9. Python – biblioteki, moduły, pakiety


Pakiet instalacyjny Pythona wyposażony jest w Bibliotekę Standardową Pythona (ang. The Python Standard Library), czyli zestaw podstawowych modułów, z których możemy korzystać w trakcie pracy w tym języku. Moduły te mają postać klas (a przynajmniej większość z nich), a ich metody pozwalają na realizowanie interesujących nas funkcji.

Interpreter Pythona ma wbudowanych wiele funkcji i typów, które są zawsze dostępne. Oto ich lista, posortowana alfabetycznie (opis funkcji w dokumentacji)

Importowanie modułów

Moduł, który zawiera interesujące nast funkcje importujemy na górze skryptu, np.

import math

musimy mieć na uwadze jednak to, że moduły mogą zawierać bardzo dużą ilość metod, których nie potrzebujemy. Jaki wtedy sens w importowaniu całości? Żaden.

W przypadku, kiedy potrzebujemy jedynie jednej metody z danego modułu, możemy zaimportować tylko tą konkretną, np

from datetime import date

Instalowanie pakietów

Jeżeli potrzebujemy modułu, którego nie ma w Bibliotece Standardowej, możemy go doinstalować za pomocą narzędzia pip. Jest to menedżer pakietów dla środowiska języka Python, którego zasoby znajdują się na stronie https://pypi.org/

Instalacją pakietów zarządzamy z poziomu konsoli lub terminala, np. instalacja na maszynie lokalnej pakietu NumPy:

pip install numpy

Możliwe jest także ich odinstalowanie (na przykładzie powyższej biblioteki):

pip uninstall numpy

 

Biblioteka NumPy

https://www.w3schools.com/python/numpy/default.asp

wspiera pracę z tabelami

Biblioteka Pandas

https://www.w3schools.com/python/pandas/default.asp

służy do analizy danych

Biblioteka SciPy

https://www.w3schools.com/python/scipy/index.php

służy do rozwiązywania problemów naukowych i matematycznych

Biblioteka Matplotlib

https://www.w3schools.com/python/matplotlib_intro.asp

służy do tworzenia wykresów

Moduły i tworzenie własnych modułów:

https://www.w3schools.com/python/python_modules.asp

JSON

https://www.w3schools.com/python/python_json.asp

Wyrażenia regularne:

https://www.w3schools.com/python/python_regex.asp

Operacje na dacie

https://docs.python.org/3/library/calendar.html?highlight=functions

Operacje na czasie

https://docs.python.org/3/library/time.html?highlight=functions

Operacje na dacie i czasie

https://www.w3schools.com/python/python_datetime.asp

Operacje matematyczne

https://www.w3schools.com/python/python_math.asp

https://www.w3schools.com/python/module_math.asp

https://www.w3schools.com/python/module_cmath.asp

Formatowanie ciągów znaków

https://www.w3schools.com/python/python_string_formatting.asp

Losowanie

https://www.w3schools.com/python/module_random.asp

Żądania url

https://www.w3schools.com/python/module_requests.asp

Statystyka

https://www.w3schools.com/python/module_statistics.asp

Kalendarz

https://docs.python.org/3/library/calendar.html?highlight=functions

Kolekcje

https://docs.python.org/3/library/collections.html?highlight=functions#

Ćwiczenia:

Ćwiczenie 1: Wykorzystując moduł wbudowany calendar wydrukuj do konsoli kalendarz dla roku 2020.

Ćwiczenie 2: Wykorzystując moduł wbudowany calendar wydrukuj do konsoli kalendarz dla czerwca 2020.

Ćwiczenie 3: Wykorzystując moduł wbudowany datetime policz różnicę dat (data 2 – data 1):

data 1: 2020-06-01

data 2: 2020-07-18

Otrzymany wynik wydrukuj do konsoli.

Ćwiczenie 4

Używając modułu wbudowanego re do wyrażeń regularnych znajdź wszystkie cyfry w podanym tekście:

string = 'Python 3.8′

Otrzymany wynik w postaci listy wydrukuj do konsoli.

Wskazówka: Użyj funkcji re.findall() oraz wyrażenia regularnego '\d’.

Oczekiwany wynik:

[’3′, '8′]

Ćwiczenie 5:

Używając modułu wbudowanego re do wyrażeń regularnych znajdź wszystkie znaki alfanumeryczne w podanym tekście:

string = ’!@#$%^&45wc’

Otrzymany wynik w postaci listy wydrukuj do konsoli.

Wskazówka: Użyj funkcji re.findall() oraz wyrażenia regularnego '\w’.

Oczekiwany wynik:

[’4′, '5′, 'w’, 'c’]

Ćwiczenie 6:

Używając modułu wbudowanego re do wyrażeń regularnych znajdź wszystkie adresy email w podanym tekście:

raw_text = „Wyślij email na adres: info@template.com lub sales-info@template.it”

Otrzymane adresy email w postaci listy wydrukuj do konsoli.

Wskazówka: Użyj funkcji re.findall() oraz wyrażenia regularnego '[\w\.-]+@[\w\.-]+’.

Oczekiwany wynik:

[’info@template.com’, 'sales-info@template.it’]

Ćwiczenie 7:

Używając modułu wbudowanego re do wyrażeń regularnych podziel poniższy tekst względem białych znaków (spacji):

text = 'Programowanie w języku Python – od A do Z’

Wynik wydrukuj do konsoli.

Wskazówka: Użyj funkcji re.split() oraz wyrażenia regularnego '\s+’

Oczekiwany wynik:

[’Programowanie’, 'w’, 'języku’, 'Python’, ’-’, 'od’, 'A’, 'do’, 'Z’]

Ćwiczenie 8:

Używając modułu wbudowanego string wydrukuj do konsoli ciąg znaków małych i dużych liter tak jak pokazano poniżej.

Oczekiwany wynik:

’abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ’

Ćwiczenie 9:

Wykorzystując pakiet wbudowany collections utwórz obiekt klasy Counter, który zliczy częstość występowania elementów w poniższej liście items:

items = [’YES’, 'NO’, 'NO’, 'YES’, 'EMPTY’, 'YES’, 'NO’]

Wynik wydrukuj do konsoli.

Oczekiwany wynik:

Counter({’YES’: 3, 'NO’: 3, 'EMPTY’: 1})

Ćwiczenie 10:

Wykorzystując moduł wbudowany math zaimplementuj funkcję o nazwie sigmoid() podaną wzorem:

Uwaga! Wystarczy tylko zaimplementować funkcję. Nie trzeba jej wywoływać.

Ćwiczenie 11:

Wykorzystując moduł wbudowany random ustaw ziarno losowe w następujący sposób:

random.seed(12)

Następnie wybierz losowo (pseudolosowo) element z poniższej listy:

items = [’python’, 'java’, 'sql’, 'c++’, 'c’]

Wylosowany element wydrukuj do konsoli.

Oczekiwany wynik:

c++

Ćwiczenie 12:

Wykorzystując moduł wbudowany random ustaw ziarno losowe w następujący sposób:

random.seed(15)

Następnie przestaw losowo (pseudolosowo) elementy z poniższej listy:

items = [’python’, 'java’, 'sql’, 'c++’, 'c’]

Otrzymaną listę wydrukuj do konsoli.

Oczekiwany wynik:

[’c’, 'c++’, 'sql’, 'python’, 'java’]

Ćwiczenie 13:

Wykorzystując moduł wbudowany pickle zapisz poniższą listę ids do pliku data.pickle

ids = [’001′, '003′, '011′]

Ćwiczenie 14:

Podany jest poniższy słownik:

stocks = {’PLW’: 360.0, 'TEN’: 320.0, 'CDR’: 329.0}

Wykorzystując pakiet wbudowany json zrzuć słownik stocks do stringu sortując po kluczach oraz stosując wcięcie 4. Otrzymany string wydrukuj do konsoli.

Oczekiwany wynik:

{

    „CDR”: 329.0,

    „PLW”: 360.0,

    „TEN”: 320.0

}