Knyga/Importuotos bibliotekos ir vėžlys: Skirtumas tarp puslapio versijų
(Naujas puslapis: {{navigation |previous=Įvadas į objektinį programavimą Python 3 |next=Pažangios funkcijos}} Šiame skyriuje apžvelgsime kai kurias funkcijas iš įvairių importuotų bibliotekų, kurios yra dažniausiai naudojamos Python'e. Šis skyrius nėra būtinas norint visiškai suprasti Python'o pagrindus. Šis skyrius skirtas parodyti tolesnes Python'o galimybes, kurias galima panaudoti su tuo, ką jau žinai apie kalbą. == math == :Matematikos biblioteka aprėpia daug na...) |
Nėra keitimo santraukos |
||
| 1 eilutė: | 1 eilutė: | ||
{{navigation |previous=Įvadas į objektinį programavimą Python 3 |next=Pažangios funkcijos}} | {{navigation |previous=Įvadas į objektinį programavimą Python 3 |next=Pažangios funkcijos}} | ||
=== Ką išmoksi šiame skyriuje? === | |||
* Kas yra Python modulis ir kam jis reikalingas | |||
* Kaip importuoti standartinius modulius (<code>math</code>, <code>time</code>, <code>random</code>) | |||
* Kaip naudoti <code>import</code> ir <code>from ... import ...</code> | |||
* Kaip panaudoti <code>math</code> funkcijas: <code>ceil()</code>, <code>floor()</code>, <code>sqrt()</code>, <code>sin()</code>, <code>cos()</code>, <code>tan()</code> ir kt. | |||
* Kaip pasiekti matematines konstantas (<code>math.pi</code>, <code>math.e</code>) | |||
* Kaip patikrinti, ar skaičius yra baigtinis, begalinis arba NaN | |||
* Kaip naudoti <code>turtle</code> modulį piešimams ir animacijoms | |||
* Kaip derinti <code>turtle</code> su ciklais ir funkcijomis | |||
---- | |||
=== Modulių naudojimas === | |||
Kartais programuojant prireikia funkcijų, kurių pačiam rašyti nereikia – jos jau būna sukurtos ir sudėtos į specialius „paketus“ arba '''modulius'''. | |||
Python turi labai daug tokių paruoštų modulių – tai vadinama '''standartine biblioteka'''. Joje galima rasti visko: matematikos funkcijų, darbui su laiku, failais, tinklu ir net animacijomis. | |||
Kad galėtum naudotis moduliu, reikia jį '''importuoti'''. Tai daroma su komanda <code>import</code> arba <code>from ... import ...</code>. | |||
--- | |||
=== Modulis <code>math</code> === | |||
Matematikos modulis <code>math</code> leidžia atlikti įvairias skaičiavimų operacijas. | |||
Šiame sąraše išvardintos visos matematikos bibliotekos funkcijos: | Šiame sąraše išvardintos visos matematikos bibliotekos funkcijos: | ||
*math.ceil (Suapvalina skaičių iki artimiausio skaičiaus po kablelio) | *math.ceil (Suapvalina skaičių iki artimiausio skaičiaus po kablelio) | ||
| 42 eilutė: | 59 eilutė: | ||
*math.e (Grąžina e reikšmę) | *math.e (Grąžina e reikšmę) | ||
Žinoma, neapimsime visų šių funkcijų, bet padengsime didelę jų dalį. | |||
<syntaxhighlight lang="python"> | |||
import math | |||
print(math.sqrt(16)) # Kvadratinė šaknis iš 16 → 4.0 | |||
print(math.ceil(2.3)) # Suapvalina į didesnę pusę → 3 | |||
print(math.floor(2.9)) # Suapvalina žemyn → 2 | |||
print(math.sin(math.pi / 2)) # Sinus(π/2) = 1.0 | |||
print(math.cos(0)) # Kosinus(0) = 1.0 | |||
print(math.tan(math.pi / 4)) # Tangentas(π/4) = 1.0 | |||
print(math.log(8, 2)) # Logaritmas: log₂(8) = 3.0 | |||
</syntaxhighlight> | |||
Be funkcijų, <code>math</code> turi ir keletą '''konstantų''': | |||
* <code>math.pi</code> – skaičius π (3.14159...) | |||
* <code>math.e</code> – natūrinio logaritmo pagrindas (2.71828...) | |||
💡 `math.fsum()` skirta tikslesniems slankiojo kablelio sumavimams nei įprastas <code>sum()</code>. Tai naudinga, kai sudedama daug trupmeninių skaičių. | |||
--- | |||
=== Modulis <code>time</code> === | |||
<code>time</code> modulis leidžia dirbti su laiku ir datomis. | |||
Pavyzdys – dabartinio laiko išvedimas: | |||
<syntaxhighlight lang="python"> | |||
from time import time, ctime | |||
while True: | |||
print(ctime(time())) # Spausdina dabartinį laiką | |||
# Sustabdyti galima paspaudus Ctrl + C | |||
</syntaxhighlight> | |||
--- | |||
=== Modulis <code>random</code> === | |||
Kartais programose reikia '''atsitiktinių skaičių'''. Tam naudojamas modulis <code>random</code>. | |||
<syntaxhighlight lang="python"> | |||
import random | |||
print(random.randint(0, 99)) # Atsitiktinis skaičius nuo 0 iki 99 | |||
</syntaxhighlight> | |||
💡 Funkcija <code>randint(a, b)</code> grąžina sveiką skaičių iš intervalo '''[a; b]''' (abi ribos įskaitomos). | |||
--- | |||
=== Savo moduliai === | |||
Modulis yra tiesiog '''.py failas''', kurio funkcijas galima panaudoti kitame faile. | |||
Pavyzdžiui, jei turi failą <code>skaičiavimai.py</code>: | |||
<syntaxhighlight lang="python"> | |||
def padauginti(a, b): | |||
return a * b | |||
</syntaxhighlight> | |||
Tuomet kitame faile gali parašyti: | |||
<syntaxhighlight lang="python"> | |||
import skaičiavimai | |||
print(skaičiavimai.padauginti(3, 4)) # 12 | |||
</syntaxhighlight> | |||
💡 Jei tavo failo pavadinimas bus toks pat kaip standartinio modulio (pvz., <code>calendar.py</code>), Python gali supainioti ir importuoti ne tą failą. | |||
--- | |||
=== <code>if __name__ == "__main__":</code> === | |||
Kai Python failas paleidžiamas '''tiesiogiai''', kintamojo <code>__name__</code> reikšmė būna <code>"__main__"</code>. | |||
Kai failas importuojamas kaip modulis – reikšmė bus tokia, kaip failo pavadinimas. | |||
Todėl dažnai naudojame: | |||
<syntaxhighlight lang="python"> | |||
def funkcija(): | |||
print("Labas!") | |||
if __name__ == "__main__": | |||
funkcija() | |||
</syntaxhighlight> | |||
Taip užtikriname, kad funkcija pasileis '''tik tada, kai paleidžiame šį failą''', bet ne tada, kai jį importuojame kitur. | |||
--- | |||
=== Modulis <code>turtle</code> === | |||
<code>turtle</code> (liet. ''vėžlys'') yra linksma Python biblioteka piešimui. | |||
Ji leidžia kurti grafinius piešinius ekrane – „vėžliukas“ juda, o paskui jį lieka spalvota linija. | |||
Pirmasis pavyzdys – ''paprastas kvadratas'': | |||
<syntaxhighlight lang="python"> | |||
import turtle | |||
t = turtle.Turtle() | |||
for i in range(4): | |||
t.forward(100) # Einame 100 žingsnių į priekį | |||
t.right(90) # Pasukame 90 laipsnių į dešinę | |||
turtle.done() | |||
</syntaxhighlight> | |||
💡 Pastebėk, kad naudojame <code>forward()</code> ir <code>right()</code> – tai paprastos funkcijos, kurios valdo „vėžliuko“ judėjimą. | |||
Antras pavyzdys – ''spalvotas raštas'': | |||
<syntaxhighlight lang="python"> | |||
import turtle | |||
t = turtle.Turtle() | |||
colors = ["red", "green", "blue", "orange", "purple"] | |||
for i in range(36): | |||
t.color(colors[i % len(colors)]) # Pasirenkame spalvą iš sąrašo | |||
t.circle(100) # Nupiešiame apskritimą | |||
t.right(10) # Šiek tiek pasukame | |||
turtle.done() | |||
</syntaxhighlight> | |||
💡 Naudodamas sąrašus ir ciklus, gali kurti įdomius ornamentus ar net animacijas. | |||
--- | |||
=== Pratimai === | |||
# Parašyk programą, kuri nupiešia '''trikampį''' su vėžliuku. | |||
# Sukurk funkciją <code>zvaigzde(dydis)</code>, kuri nupiešia žvaigždę. | |||
# Sukurk programą, kuri nupiešia '''saulutę''': vėžliukas apsisuka ratu, o kiekviename žingsnyje nubrėžia spindulį. | |||
# ''Papildoma užduotis'': pabandyk nupiešti savo inicialus (pvz., „AN“) naudodamas <code>turtle</code>. | |||
{| class="mw-collapsible mw-collapsed wikitable" | |||
! colspan="2" | Sprendimas 1 | |||
|- | |||
| | |||
<syntaxhighlight lang="python"> | |||
import turtle | |||
t = turtle.Turtle() | |||
for i in range(3): | |||
t.forward(150) | |||
t.left(120) | |||
turtle.done() | |||
</syntaxhighlight> | |||
|- | |||
|} | |||
{| class="mw-collapsible mw-collapsed wikitable" | |||
! colspan="2" | Sprendimas 2 | |||
|- | |||
| | |||
<syntaxhighlight lang="python"> | |||
import turtle | |||
def zvaigzde(dydis): | |||
t = turtle.Turtle() | |||
for i in range(5): | |||
t.forward(dydis) | |||
t.right(144) # kampas žvaigždei nupiešti | |||
zvaigzde(200) | |||
turtle.done() | |||
</syntaxhighlight> | |||
|- | |||
|} | |||
{| class="mw-collapsible mw-collapsed wikitable" | |||
! colspan="2" | Sprendimas 3 | |||
|- | |||
| | |||
<syntaxhighlight lang="python"> | |||
import turtle | |||
t = turtle.Turtle() | |||
t.speed(0) # maksimalus greitis | |||
for i in range(36): | |||
t.forward(100) | |||
t.backward(100) | |||
t.right(10) | |||
turtle.done() | |||
</syntaxhighlight> | |||
|- | |||
|} | |||
<!-- Pastaba: sprendimo 4 (inicialai) paliekame kūrybai – kiekvieno vardas skirtingas :) --> | |||
--- | |||
{{navigation |previous=Įvadas į objektinį programavimą Python 3 |next=Pažangios funkcijos}} | {{navigation |previous=Įvadas į objektinį programavimą Python 3 |next=Pažangios funkcijos}} | ||
[[Category:Knyga]] | [[Category:Knyga]] | ||
Dabartinė 16:49, 15 rugsėjo 2025 versija
Ką išmoksi šiame skyriuje?
- Kas yra Python modulis ir kam jis reikalingas
- Kaip importuoti standartinius modulius (
math,time,random) - Kaip naudoti
importirfrom ... import ... - Kaip panaudoti
mathfunkcijas:ceil(),floor(),sqrt(),sin(),cos(),tan()ir kt. - Kaip pasiekti matematines konstantas (
math.pi,math.e) - Kaip patikrinti, ar skaičius yra baigtinis, begalinis arba NaN
- Kaip naudoti
turtlemodulį piešimams ir animacijoms - Kaip derinti
turtlesu ciklais ir funkcijomis
Modulių naudojimas
Kartais programuojant prireikia funkcijų, kurių pačiam rašyti nereikia – jos jau būna sukurtos ir sudėtos į specialius „paketus“ arba modulius.
Python turi labai daug tokių paruoštų modulių – tai vadinama standartine biblioteka. Joje galima rasti visko: matematikos funkcijų, darbui su laiku, failais, tinklu ir net animacijomis.
Kad galėtum naudotis moduliu, reikia jį importuoti. Tai daroma su komanda import arba from ... import ....
---
Modulis math
Matematikos modulis math leidžia atlikti įvairias skaičiavimų operacijas.
Šiame sąraše išvardintos visos matematikos bibliotekos funkcijos:
- math.ceil (Suapvalina skaičių iki artimiausio skaičiaus po kablelio)
- math.copysign (Grąžina absoliučią reikšmę
xsu ženklu, kurį turi skaičiusy.(x, y)) - math.fabs (Grąžina absoliučią skaičiaus reikšmę, kaip slankiojo kablelio reikšmę)
- math.factorial (Grąžina skaičiaus faktorialą)
- math.floor (Grąžina didžiausią sveikąjį skaičių, mažesnį arba lygų duotajam skaičiui)
- math.fmod (Nėra pati idealiausia funkcija su kuria galima pasiekti nurodytą tikslą. Šiame skyriuje nebus detaliau paaiškinta.)
- math.frexp (Už šios pamokos ribų. Šiame skyriuje nebus detaliau paaiškinta.)
- math.fsum (Grąžina visų skliausteliuose esančių skaičių sumą)
- math.isfinite (Patikrina ar skaičius yra baigtinis)
- math.isinf (Patikrina ar skaičius yra begalinis ar ne)
- math.isnan (Patikrina, ar reikšmė yra NaN (ne skaičius), ar ne)
- math.modf (Už šios pamokos srities ribų. Šiame skyriuje nebus detaliau paaiškinta.)
- math.trunc (Už šios pamokos srities ribų. Šiame skyriuje nebus detaliau paaiškinta.)
- math.exp (Apskaičiuoja eksponentinę funkciją e^x, kur e yra matematinė konstanta)
- math.expm1 (Grąžina E^x - 1)
- math.log (Grąžina natūralųjį skaičiaus logaritmą)
- math.log1p (Grąžina log(1+skaičius))
- math.log10 (Grąžina skaičiaus 10 bazinį logaritmą)
- math.pow (Grąžina x reikšmę, pakeltą laipsniu y)
- math.sqrt (Grąžina skaičiaus kvadratinę šaknį)
- math.acos (Grąžina arccos(x))
- math.asin (Grąžina arcsin(x))
- math.atan (Grąžina arctan(x))
- math.cos (Grąžina reikšmės kosinusą)
- math.hypot (Grąžina Euklido normą)
- math.sin (Grąžina reikšmės sinusą)
- math.tan (Grąžina reikšmės tangentą)
- math.degrees (Paverčia radianus į laipsnius)
- math.radians (Paverčia laipsnius į radianus)
- math.pi (Grąžina π reikšmę)
- math.e (Grąžina e reikšmę)
Žinoma, neapimsime visų šių funkcijų, bet padengsime didelę jų dalį.
import math print(math.sqrt(16)) # Kvadratinė šaknis iš 16 → 4.0 print(math.ceil(2.3)) # Suapvalina į didesnę pusę → 3 print(math.floor(2.9)) # Suapvalina žemyn → 2 print(math.sin(math.pi / 2)) # Sinus(π/2) = 1.0 print(math.cos(0)) # Kosinus(0) = 1.0 print(math.tan(math.pi / 4)) # Tangentas(π/4) = 1.0 print(math.log(8, 2)) # Logaritmas: log₂(8) = 3.0
Be funkcijų, math turi ir keletą konstantų:
math.pi– skaičius π (3.14159...)math.e– natūrinio logaritmo pagrindas (2.71828...)
💡 `math.fsum()` skirta tikslesniems slankiojo kablelio sumavimams nei įprastas sum(). Tai naudinga, kai sudedama daug trupmeninių skaičių.
---
Modulis time
time modulis leidžia dirbti su laiku ir datomis.
Pavyzdys – dabartinio laiko išvedimas:
from time import time, ctime
while True:
print(ctime(time())) # Spausdina dabartinį laiką
# Sustabdyti galima paspaudus Ctrl + C
---
Modulis random
Kartais programose reikia atsitiktinių skaičių. Tam naudojamas modulis random.
import random print(random.randint(0, 99)) # Atsitiktinis skaičius nuo 0 iki 99
💡 Funkcija randint(a, b) grąžina sveiką skaičių iš intervalo [a; b] (abi ribos įskaitomos).
---
Savo moduliai
Modulis yra tiesiog .py failas, kurio funkcijas galima panaudoti kitame faile.
Pavyzdžiui, jei turi failą skaičiavimai.py:
def padauginti(a, b):
return a * b
Tuomet kitame faile gali parašyti:
import skaičiavimai print(skaičiavimai.padauginti(3, 4)) # 12
💡 Jei tavo failo pavadinimas bus toks pat kaip standartinio modulio (pvz., calendar.py), Python gali supainioti ir importuoti ne tą failą.
---
if __name__ == "__main__":
Kai Python failas paleidžiamas tiesiogiai, kintamojo __name__ reikšmė būna "__main__".
Kai failas importuojamas kaip modulis – reikšmė bus tokia, kaip failo pavadinimas.
Todėl dažnai naudojame:
def funkcija():
print("Labas!")
if __name__ == "__main__":
funkcija()
Taip užtikriname, kad funkcija pasileis tik tada, kai paleidžiame šį failą, bet ne tada, kai jį importuojame kitur.
---
Modulis turtle
turtle (liet. vėžlys) yra linksma Python biblioteka piešimui.
Ji leidžia kurti grafinius piešinius ekrane – „vėžliukas“ juda, o paskui jį lieka spalvota linija.
Pirmasis pavyzdys – paprastas kvadratas:
import turtle
t = turtle.Turtle()
for i in range(4):
t.forward(100) # Einame 100 žingsnių į priekį
t.right(90) # Pasukame 90 laipsnių į dešinę
turtle.done()
💡 Pastebėk, kad naudojame forward() ir right() – tai paprastos funkcijos, kurios valdo „vėžliuko“ judėjimą.
Antras pavyzdys – spalvotas raštas:
import turtle
t = turtle.Turtle()
colors = ["red", "green", "blue", "orange", "purple"]
for i in range(36):
t.color(colors[i % len(colors)]) # Pasirenkame spalvą iš sąrašo
t.circle(100) # Nupiešiame apskritimą
t.right(10) # Šiek tiek pasukame
turtle.done()
💡 Naudodamas sąrašus ir ciklus, gali kurti įdomius ornamentus ar net animacijas.
---
Pratimai
- Parašyk programą, kuri nupiešia trikampį su vėžliuku.
- Sukurk funkciją
zvaigzde(dydis), kuri nupiešia žvaigždę. - Sukurk programą, kuri nupiešia saulutę: vėžliukas apsisuka ratu, o kiekviename žingsnyje nubrėžia spindulį.
- Papildoma užduotis: pabandyk nupiešti savo inicialus (pvz., „AN“) naudodamas
turtle.
| Sprendimas 1 | |
|---|---|
import turtle
t = turtle.Turtle()
for i in range(3):
t.forward(150)
t.left(120)
turtle.done()
| |
| Sprendimas 2 | |
|---|---|
import turtle
def zvaigzde(dydis):
t = turtle.Turtle()
for i in range(5):
t.forward(dydis)
t.right(144) # kampas žvaigždei nupiešti
zvaigzde(200)
turtle.done()
| |
| Sprendimas 3 | |
|---|---|
import turtle
t = turtle.Turtle()
t.speed(0) # maksimalus greitis
for i in range(36):
t.forward(100)
t.backward(100)
t.right(10)
turtle.done()
| |
---