Knyga/Importuotos bibliotekos ir vėžlys
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()
| |
---