Dodatek 1: moduły¶
Funkcjonalność biblioteki standardowej języka Python można w prosty sposób rozszeżyć
poprzez importowanie dodatkowych modułów. Robimy to za pomocą komendy import
.
Mamy do dyspozycji kilka możliwości dodania funkcjonalności danego modułu. Aby wytłumaczyć
jak to zrobić posłużymy się wspomnianą już w rozdziale 1 biblioteką matematyczną math
.
Pierwszym, najczęściej spotykanym sposobem jest konstrukcja umożliwoająca wprowadzenie całego modułu do przestrzeni nazw
import <nazwa modułu>
Importując moduł w ten sposób możemy użyć innej nazwy na dany moduł za pomocą komendy as
.
Najczęściej używa się po prostu skrótu oryginalnej nazwy.
Pozwala to w szczególności pisać programy pod np: różne platformy lub za pomocą 2 różnych bibliotek o podobnych obiektach. Innym sposobem jest zaimportowanie konkretnych obiektów z modułu za pomocą konstrukcji
from <mazwa modułu> import obj1, obj2, ...
Szczególnym przypadkiem takiego sposobu jest zaimportowanie wszystkich dostępnych obiektów
z danego modułu za pomocą gwiazdki *
Teraz dostępne są wszystkie funkcje, moduły, klasy z modułu math
. Nie jest to jednak metoda
preferowana, gdyż zbytnio zaśmieca przestrzeń nazw.
Moduł matematyczny math
¶
Można to zrobić na przykład poprzez wykonanie poleceń:
import math
co spowoduje załadowanie wszystkich elementów tego modułu. Przykładowe funkcje zawarte w tym module to:
- pierwiastkowanie (
sqrt()
)
>>> math.sqrt(9)
- wartość bezwzględna (
abs()
)
>>> math.abs(-0.5)
- funkcje trygonometryczne (
sin()
,cos()
,tan()
)
>>> math.sin(27)
>>> math.cos(34)
>>> math.tan(3)
- funkcje logarytmiczne i wykładnicze (
exp()
,log()
,log10()
)
>>> math.exp(2)
>>> math.log10(100) # logarytm o podstawie 10 ze 100
>>> math.log(e) # logarytm naturalny
>>> math.log(9,3) # logarytm o podstawie 3 z 9
- konwersji miar kątów
>>> math.degrees(pi) # zamiana z miary łukowej na kątową
180.0
>>> math.radians(60) # zamiana z miary kątowej na łukową
1.0471975511965976
>>> math.sin(radians(60))
0.8660254037844386
- deklaracje stałych matematycznych (
pi
,e
)
>>> math.pi
3.141592653589793
>>> math.e
2.718281828459045
>>> math.sin(pi/2)
1.0