"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Moduły w Pythonie\n",
"\n",
"Moduły w języku Python to po prostu biblioteki zawierające kod, który może zostać dodany do naszego programu za pomocą polecenia ```import```, po którym podajemy nazwę modułu, który chcemy dołączyć. Sam moduł jest plikiem z rozszerzeniem .py, w którym znajduje się kod. Python oferuje wiele wbudowanych modułów, takich jak:\n",
" - ```math``` (funkcje matematyczne),\n",
" - ```cmath``` (funkcje matematyczna dla liczb zespolonych),\n",
" - ```string``` (operacje na łańcuchach znaków),\n",
" - ```datetime```, ```time``` (moduły do obsługi czasu),\n",
" - ```itertools``` (tworzenie różnego rodzaju iteratorów, np. permutacji),\n",
" - ```random``` (generator liczb pseudolosowych).\n",
"\n",
"Listę pozostałych modułów można znaleźć tutaj https://docs.python.org/3/py-modindex.html.\n",
"\n",
"Dostępnych jest również wiele innych gotowych bibliotek, jednak aby móc z nich korzystać musimy je wcześniej zainstalować na swoim urządzeniu."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Moduł math\n",
"\n",
"Moduł ```math``` dostarcza nam wielu funkcji matematycznych. Aby móc z niego korzystać, musimy na początek w naszym programie umieścić komendę ```import math```. Następnie, aby wywołać funkcję zdefiniowaną w tym module piszemy najpierw nazwę modułu, po niej kropkę i dopiero wtedy nazwę interesującej nas funkcji. "
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"16\n",
"720\n",
"14400\n"
]
}
],
"source": [
"import math\n",
"print(math.gcd(144, 80)) # gcd = greatest common divisor czyli NWD\n",
"print(math.lcm(144, 80)) # lcm = least common multiple czyli NWW\n",
"print(math.prod([1, 4, 9, 16, 25])) # zwraca iloczyn liczb na liście"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Pełną listę funkcji, które dostarcza moduł math można znaleźć tutaj https://docs.python.org/3/library/math.html#module-math.\n",
"\n",
"Funkcje w pakiecie ```math``` zazwyczaj zwracają liczbę typu ```float```."
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"8103.083927575384\n",
"2.1972245773362196\n",
"2.0\n",
"3.169925001442312\n",
"0.9542425094393249\n",
"729.0\n",
"3.0\n"
]
}
],
"source": [
"x = 9\n",
"y = 3\n",
"print(math.exp(x)) # e^x\n",
"print(math.log(x)) # logarytm naturalny z x\n",
"print(math.log(x, y)) # logarytm o podstawie y z x\n",
"print(math.log2(x)) # logarytm o podstawie 2 z x\n",
"print(math.log10(x)) # logarytm o podstawie 10 z x\n",
"print(math.pow(x, y)) # x^y\n",
"print(math.sqrt(x)) # pierwiastek kwadratowy z x"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Funkcje trygonometryczne**\n",
"\n",
"Moduł ```math``` dostarcza również funkcje trygonometryczne takie jak ```math.sin```, ```math.cos```, ```math.tan```, ```math.asin```, ```math.acos```, ```math.atan```, przy czym należy pamiętać, że argumenty pierwszych trzech funkcji i wartości zwracane przez ostatnie trzy podawane są w radianach. Aby przekonwertować radiany na stopnie możemy posłużyć się funkcją ```math.degrees```, z kolei funkcja ```math.radians``` zamienia stopnie na radiany."
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.49999999999999994\n",
"0.8660254037844386\n",
"1.0\n"
]
}
],
"source": [
"alfa = 30\n",
"beta = 60\n",
"gamma = 90\n",
"print(math.sin(math.radians(alfa)))\n",
"print(math.sin(math.radians(beta)))\n",
"print(math.sin(math.radians(gamma)))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Zadanie 1.** Napisz program, który obliczy kąty w trójkącie o bokach długości $3$, $4$ i $5$."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Zadanie 2.** Napisz program, który obliczy kąty w trójkącie o bokach długości $6$, $7$ i $10$."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Stałe w module Math**\n",
"\n",
"Poza funkcjami matematycznymi, pakiet ```math``` udostępnia nam również klasyczne stałe matematyczne takie jak ```math.pi``` oraz ```math.e```, przy czym dokładność obydwu stałych jest ograniczona dokładnością typu float."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Zadanie 3.** Napisz program, który policzy pole i objętość kuli o zadanym promieniu."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Zadanie 4.** Jedna z definicji liczby $e$ mówi, że jest to wartość graniczna wyrażenia $\\left(1+\\frac1{n}\\right)^n$ przy $n$ zmierzającym do nieskończoności. Napisz program, który wyznaczy najmniejszą wartość $n$ taką, że wyrażenie $e-\\left(1+\\frac{1}{n}\\right)^n$ będzie mniejsze niż $10^{-m}$ dla zadanej liczby naturalnej $m$."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.9"
}
},
"nbformat": 4,
"nbformat_minor": 5
}