Juhtlis ja veebikalkulator

JS piltidega töö

Random pilti näitamine


Vastus:
Summa:

Veebikalkulator: emojikon






aeg

Muusika

Muusikaküsimustik

Muusikaküsimustik

Milliseid muusikuid/bände sa tead?



Mida arvad muusika kuulamisest koolis?
Kui mitu tundi päevas sa muusikat kuulad?
Kas sa kuulad raadiot?
Milliseid raadiojaamu sa tead?
Millist muusikat sa kõige rohkem kuulad?




AB haldus konspekt

AB kasutajate rollid:

-AB kasutaja - tavakasutaja, mis saab muuta, lisada, filtreerida ja otsida vastavalt vajadusele

-AB programmerija -loob funktsioonid protseduurid (trigerid)

- DBA - AB administratoor - tagab, et õiged kasutajad saavad oma õigused

- AB projekteerija - loob tabeleid ja AB struktuuri
DBA -AB administratoor liigid:
*süsteemiadmin
*AB arhitekt
*AB analüütik
*Data warehouse admin -  админ хранилище данных (admeladu)
DBA kaks peamist eesmärki (ülesanded):
1. kasutajate toetus ja ligipääsu jagamine ja seadistamine
2. AB turvalisus ja jõudluse tagamine
AB turvalisus - 3 põhiaspekti:
*andmete konfidentsiaalsus (confidentiality)
GRANT role to user [identified by pwd] [with grant option];
REVOKE role from user;

*andmete kättesaadavus (availability)- доступность - andmed me samme kätte õigel ajal ja õigel kasutajal
*andmete terviklikkus(integrity) - целостность - usaldusväärne andmeallikad
RiskOhutuse aspekt
Inimlikud veadkonfidentsiaalsus, kättesaadavus, terviklikkus
füüsilised vead (riistvara – hardware)kättesaadavus, terviklikkus
operatsioonisüsteemi rikkedkättesaadavus, terviklikkus, konfidentsiaalsus
andmebaasisüsteemi rikkedkättesaadavus, terviklikkus, konfidentsiaalsus
- COMMIT - tähendab, et praeguses tehingus tehtud muudatused muutuvad püsivaks ja muutuvad nähtavaks teistele sessioonidele - означает, что изменения, внесенные в текущей транзакции, становятся постоянными и видны другим сеансам

- ROLLBACK - tühistab kõik praeguse tehinguga tehtud muudatused - отменяет все изменения, внесенные текущей транзакцией

- ROLLFORWARD - taastab andmebaasi, rakendades andmebaasi logifailidesse salvestatud tehinguid - восстанавливает базу данных путем применения транзакций, которые записаны в файлах журнала базы данных

- Data Mining – поиск скрытых шаблонов – on protsess, mille käigus ekstraktitakse ja leitakse mustreid suurtest andmekogumitest, kasutades selleks masinõppe, statistika ja andmebaasisüsteemide ristumiskohas olevaid meetodeid - это процесс извлечения и поиска закономерностей в огромных массивах данных с использованием методов, лежащих на стыке машинного обучения, статистики и систем баз данных

- Data Warehouse – Хранилище данных - on tsentraliseeritud andmehoidla, mis salvestab struktureeritud andmeid - является централизованным хранилищем, в котором хранятся структурированные данные

RBG teooria

Selles näites näete, et LED valgustus (antud olukorras punane) süttib sertan korda. Seda saab kasutada erinevate mustrite loomiseks, täpselt nagu koodis morse! RBG teooria

void setup()

{

  // pinMode() määrab töörežim

  pinMode(13, OUTPUT);   // 13-pini number, INPUT/OUTPUT(Sisend/Väljund).

}

void loop()

{

  digitalWrite(13, HIGH);   // Lülita sisse

  delay(1000);              // Ootab 1 sek  

  digitalWrite(13, LOW);    // Lülita välja

  delay(3000);              // Ootab 3 sek

  
  
  digitalWrite(13, HIGH);   // -... .- .-.. .-.. ...

  delay(3000);               

  digitalWrite(13, LOW);

  delay(1000);
  
  digitalWrite(13, HIGH);
  
  delay(1000);
  
  digitalWrite(13, LOW);

  delay(1000);
  
  digitalWrite(13, HIGH);
  
  delay(1000);
  
  digitalWrite(13, LOW);

  delay(1000);
  
  digitalWrite(13, HIGH);
  
  delay(1000);
  
  digitalWrite(13, LOW);

  delay(1000);
  
  digitalWrite(13, HIGH);
  
  delay(1000);
  
  digitalWrite(13, LOW);

  delay(1000);
  
  digitalWrite(13, HIGH);

  delay(3000);
  
  digitalWrite(13, LOW);

  delay(1000);
  
  digitalWrite(13, HIGH);

  delay(1000);
  
  digitalWrite(13, LOW);

  delay(1000);
  
  digitalWrite(13, HIGH);

  delay(3000);
  
  digitalWrite(13, LOW);

  delay(1000);
  
  digitalWrite(13, HIGH);

  delay(1000);
  
  digitalWrite(13, LOW);

  delay(1000);
  
  digitalWrite(13, HIGH);

  delay(1000);
  
  digitalWrite(13, LOW);

  delay(1000);
  
  digitalWrite(13, HIGH);

  delay(1000);
  
  digitalWrite(13, LOW);

  delay(1000);
  
  digitalWrite(13, HIGH);

  delay(3000);
  
  digitalWrite(13, LOW);

  delay(1000);
  
  digitalWrite(13, HIGH);

  delay(1000);
  
  digitalWrite(13, LOW);

  delay(1000);
  
  digitalWrite(13, HIGH);

  delay(3000);
  
  digitalWrite(13, LOW);

  delay(1000);
  
  digitalWrite(13, HIGH);

  delay(3000);
  
  digitalWrite(13, LOW);

  delay(1000);
  
  digitalWrite(13, HIGH);

  delay(3000);
  
  digitalWrite(13, LOW);

  delay(1000);
  
  digitalWrite(13, HIGH);

  delay(3000);
  
  digitalWrite(13, LOW);

  delay(1000);
  
  
  
  
  
  
  
  digitalWrite(13, HIGH);   // -... .- .-.. .-.. ...

  delay(1000);              // Ootab 1 sek  

  digitalWrite(13, LOW);    // Lülita välja

  delay(3000);
}

Sellel pildil on emaplaat, mis on saanud koodi, mis annab edasi leivaplaadi ja RGB-lambi.

Seal on transistorid mille vältida liiga palju võimu läheb lamp, sest me ei taha, et kogu asi põlema minna.

Kasutan Arduino, laendusplaat, juhtmed, 3 transistoridit (220 om) ja 1 RGB lamp

kood:

const int RED_PIN = 11;

const int GREEN_PIN = 9;

const int BLUE_PIN = 10;

int DISPLAY_TIME = 100;  // värvimuutuse kiirus

void setup()

{

  pinMode(RED_PIN, OUTPUT);

  pinMode(GREEN_PIN, OUTPUT);

  pinMode(BLUE_PIN, OUTPUT);

}

void loop()

{

mainColors();

showSpectrum();

}

void mainColors()

{

// Kõik LEDid on välja lülitatud

  digitalWrite(RED_PIN, LOW);

  digitalWrite(GREEN_PIN, LOW);

  digitalWrite(BLUE_PIN, LOW);

 delay(1000);

//Põleb punane

  digitalWrite(RED_PIN, HIGH);

  digitalWrite(GREEN_PIN, LOW);

  digitalWrite(BLUE_PIN, LOW);

  delay(1000);

// Põleb roheline

  digitalWrite(RED_PIN, LOW);

  digitalWrite(GREEN_PIN, HIGH);

  digitalWrite(BLUE_PIN, LOW);

  delay(1000);

// Sinine on sisse lülitatud

  digitalWrite(RED_PIN, LOW);

  digitalWrite(GREEN_PIN, LOW);

  digitalWrite(BLUE_PIN, HIGH);

  delay(1000);

// Kollane.

  digitalWrite(RED_PIN, HIGH);

  digitalWrite(GREEN_PIN, HIGH);

  digitalWrite(BLUE_PIN, LOW);

  delay(1000);

// Lilla

  digitalWrite(RED_PIN, LOW);

  digitalWrite(GREEN_PIN, HIGH);

  digitalWrite(BLUE_PIN, HIGH);

  delay(1000);

//Roosa

  digitalWrite(RED_PIN, HIGH);

  digitalWrite(GREEN_PIN, LOW);

  digitalWrite(BLUE_PIN, HIGH);

  delay(1000);

//Valge ehk kõik on sisse lülitatud

  digitalWrite(RED_PIN, HIGH);

  digitalWrite(GREEN_PIN, HIGH);

  digitalWrite(BLUE_PIN, HIGH);

  delay(1000);

}

// Vikerkaar. 

void showSpectrum()

{

  int x;

  for (x = 0; x < 768; x++)

  {

    showRGB(x);  // 

    delay(10);   // paus 0,001 sek

  }

}

// ShowRGB()  põhivärvid: 

// 0 = punane 

// 255 = roheline

// 511 = sinine

// 767 = jälle punane 

void showRGB(int color)

{

  int redIntensity;

  int greenIntensity;

  int blueIntensity;

  if (color <= 255)                

  {

    redIntensity = 255 - color;    // lülitakse välja punane

    greenIntensity = color;        // lülitakse sisse roheline

    blueIntensity = 0;             // sinine on välja lülitatud

  }

  else if (color <= 511)          

  {

    redIntensity = 0;                     // punane on välja lülitatud

    greenIntensity = 255 - (color - 256); 

    blueIntensity = (color - 256);        

  }

  else if (color >= 512)             

  {

    redIntensity = (color - 512);        

    greenIntensity = 0;                  

    blueIntensity = 255 - (color - 512);  

  }

  analogWrite(RED_PIN, redIntensity); // punase LED´i sujuv ümberlülitamine

  analogWrite(BLUE_PIN, blueIntensity);

  analogWrite(GREEN_PIN, greenIntensity);

}

Põhimõtteliselt toimib see nii, et see silub üleminekuid värvide vahel.

OOP

OOP-tehnikad

  • Inkapsulatsioon: Funktsionaalsus peidetakse objekti sisse, piirates otsest ligipääsu selle sisemistele detailidele.
  • Modulaarsus: Programm jagatakse sõltumatuteks mooduliteks, mis töötavad koos.
  • Polümorfism: „Mitu vormi“ – võimaldab alamklassidel muuta vanemklassi meetodite käitumist.
  • Pärilikkus: Üks klass (alamklass) saab pärida teiselt klassilt (vanemklassilt) omadusi ja meetodeid.

Sissejuhatus OOP-sse

Objektorienteeritud programmeerimises räägitakse klasside kirjeldamisest ja objektide loomisest nende kirjelduste alusel. Objektide käsitlemine toimub klassis määratletud meetodite kaudu (meetodid on põhimõtteliselt funktsioonid).


Klassid

Klass on kasutaja määratud andmestruktuur, mis seob andmeväljad (muutujad) ja meetodid ühtsesse tervikusse. Klass on nagu plaan, mille järgi saab luua piiramatult objekte.

Näide konstruktorist:

class Dog:
    # Klassikonstruktor
    def __init__(self, name):
        self.name = name


Konstruktorite tüübid Pythonis

  1. Vaikekonstruktor – kui konstruktorit ei määrata, loob Python selle automaatselt (__init__(self)).
  2. Mitteparametriseeritud konstruktor – ei võta lisaparameetreid.
  3. Parametriseeritud konstruktor – võtab vastu parameetreid ja võimaldab erinevaid algväärtusi.

Objektid

Objekt on klassi eksemplar ehk tegelik näide. See sisaldab atribuute (muutujaid) ja meetodeid.

Objekti loomise süntaks:

dog_name = Dog("Snoopy")

Objekti omadused:

  • Identiteet – igal objektil on ainulaadne ID.
  • Seisund – määratud atribuudi(te) väärtustega.
  • Käitumine – määratud meetoditega.

Pärilikkus

Omadused jaotatakse hierarhiliselt:

  • Vanemklass – sisaldab üldiseid omadusi ja võib sisaldada abstraktseid meetodeid.
  • Alamklass – pärib omadused ja laiendab neid.

Abstraktseid meetodeid ei saa kasutada enne, kui need on alamklassides implementeeritud.


Inkapsulatsioon

Inkapsulatsioon eraldab klassi sisemise toimimise selle liidesest (interface). See aitab hoida koodi stabiilsena, isegi kui sisemine toimimine muutub.

Näide inkapsulatsioonist ja privaatsetest muutujatest:

class Computer:

    def __init__(self):
        self.__sellingprice = 700  # privaatne muutuja

    def sell(self):
        print("Müügihind: {}".format(self.__sellingprice))

    def set_selling_price(self, price):
        self.__sellingprice = price

c = Computer()
c.sell()

# Püüame muuta hind otse
c.__sellingprice = 1000
c.sell()

# Muudame hind setter-meetodiga
c.set_selling_price(1000)
c.sell()

Väljund:

Müügihind: 700  
Müügihind: 700  
Müügihind: 1000

Polümorfism

Polümorfism tähendab, et sama meetod käitub erinevates klassides erinevalt.

Näide:

class Circle:

    def corners(self):
        print("Ringil pole nurki")

    def sides(self):
        print("Ringil on üks külg")

class Rectangle:

    def corners(self):
        print("Ristkülikul on neli nurka")

    def sides(self):
        print("Ristkülikul on neli külge")

# Ühine liides
def corners_test(shape):
    shape.corners()

# Objektide loomine
first_shape = Circle()
second_shape = Rectangle()

# Meetodi käivitamine
corners_test(first_shape)
corners_test(second_shape)

Väljund:

Ringil pole nurki  
Ristkülikul on neli nurka

Abstraktsioon

Abstraktsioon tähendab keskendumist olulisele ja ebaolulise peitmist. Kasutaja teab, mida funktsioon teeb, aga mitte kuidas see töötab.

Pythoni moodul abc (Abstract Base Class) võimaldab luua abstraktseid klasse.

Näide abstraktsioonist:

from abc import ABC

class Animal(ABC):

    def sleep(self):
        print("Ma lähen magama.")

    def speak(self):
        pass  # abstraktne meetod

class Human(Animal):

    def speak(self):
        print("Ma oskan rääkida.")

class Snake(Animal):

    def speak(self):
        print("Ma oskan sisiseda.")

class Dog(Animal):

    def speak(self):
        print("Ma oskan haukuda.")

class Lion(Animal):

    def speak(self):
        print("Ma oskan möirgata.")

# Objektide loomine ja meetodi kutsumine
human = Human()
human.speak()

snake = Snake()
snake.speak()

dog = Dog()
dog.speak()

lion = Lion()
lion.speak()

Väljund:

Ma oskan rääkida.  
Ma oskan sisiseda.  
Ma oskan haukuda.  
Ma oskan möirgata.

NikitaTöö

Siin olen loonud 2 tabelit nende omadustega (pidin lisama veel, sest triggerile ja nimede muutmiseks ei olnud sellest piisavalt).

see on käivitaja, mis võimaldab näha lisatud logisid

proovin…

meil on andmed!

(kõik andmed)

see on kustutamise põhjus

see töötab nii 😀

õigusid kasutajal

Ja ta ei saa teha SELLECT logi’sse

aga ta saab töötada models’is

— Töö uuede triggeridega —

Lisamine andmed:

— Lisamine triggerid:

Kontroll:

mongoDB

Mis on mongoDB

MongoDB on dokument-orienteeritud NoSQL-andmebaas, mis salvestab andmed JSON-sarnases vormis.

Kollektsioon
on dokumentide rühm, mis sarnaneb relaandmebaasi tabelile
ei nõua fikseeritud skeemi, aga tavaliselt hoitakse sees sarnase struktuuriga kirjeid

Dokument
on üks andmeüksus, esitatuna võtme-väärtuse paaridena (näiteks tekst, number, massiiv, sisemine objekt)
käitub nagu JSON-objekt, igaühel unikaalne _id-väli primaarvõtmena

mongoDB Kasutamine

Tabeli loomine

Ülemises osas on mongosh konsool, kus käsk show databases kuvab olemasolevad andmebaasid, seejärel lülitutakse andmebaasi mongo ja käivitatakse db.createCollection(“users”), mis tagastab { ok: 1 } ehk näitab, et users-kollektsioon loodi edukalt. Alumises osas on graafiline kasutajaliides, mis kuvab äsjaloodud users-kollektsiooni kokkuvõtet.

Andmete lisamine

Pildil näidatakse, kuidas MongoDB users kollektsiooni lisatakse uus dokument. Seejärel kuvatakse graafilises kasutajaliideses see äsja lisatud dokument.

Palju andmete lisamine

Pildil näidatakse, kuidas MongoDB users kollektsiooni lisatakse korraga mitu uut dokumenti. Graafilises kasutajaliideses on nüüd näha nii eelmisel pildil dokument kui ka need viis uut dokumenti.

Andmete otsimine kriteeriumi järgi

Pildid illustreerivad andmete otsimist MongoDB users kollektsioonist, kasutades find() käsku. Näidatakse, kuidas leida kasutajaid täpse väärtuse järgi. On toodud näide $or operaatori kasutamisest, et leida dokumente, mis vastavad vähemalt ühele mitmest määratud tingimusest. Veel näidatakse erinevate võrdlusoperaatorite kasutamist vanuse välja puhul: otsitakse, kes on nooremad kui teatud vanus ($lt), teatud vanuses või nooremad ($lte), vanemad kui teatud vanus ($gt), teatud vanuses või vanemad ($gte), ning kasutajaid, kelle vanus ei ole teatud kindel väärtus ($ne).

Sorteerimine

Pildil näidatakse MongoDB users kollektsiooni dokumentide sorteerimist. Vasakul sorteeritakse vanuse järgi kasvavalt ({age: 1}). Paremal sorteeritakse vanuse järgi kahanevalt ({age: -1})

Kirjete piiramine

Pildil näidatakse, kuidas MongoDB-s piirata tagastatavate kirjete arvu. Üleval kasutatakse db.users.find().limit(4), et saada maksimaalselt neli esimest dokumenti. Allpool kasutatakse db.users.findOne() kahel viisil: otsides konkreetse _id järgi ja otsides esimese dokumendi, mille vanus on 19.

Andmete muutmine

See uuendab esimest filtrile vastavat dokumenti, muutes määratud väljad uuteks väärtusteks.

Teie näite puhul:

See uuendab esimest kasutajat, kelle nimi on “aspir”, muutes nime “Dr.Aspirgurg” ja seades vanuseks 45 aastat.

t uuendab kõiki filtrile vastavaid dokumente, nimetades nimevälja ümber täisnimeks.

Teie näite puhul:

See nimetab nimi ümber täisnimeks kõigis kasutajate kollektsiooni dokumentides.

Andmete kustutamine

Saate kasutada meetodit deleteOne(), et eemaldada esimene dokument, mis vastab määratud filtrile.

Mitmekordne taotlus

Meetod, mis võimaldab mitme kirjutamisoperatsiooni (sisestamine, uuendamine, kustutamine, asendamine) teostamist ühe üleskutsega.

Parandab jõudlust, vähendades serverisse pöördumiste arvu.

Filter on päringu objekt, mis määrab MongoDB operatsioonides dokumentide valiku kriteeriumid.

Linkide tüübid

Kui kasutaja nimega „Ivan“ on olemas, siis tema postituste väli kirjutatakse üle selle massiivi.
Kui „Ivanil“ ei ole veel postituste välja, siis luuakse see.
Operatsioon mõjutab vaikimisi ainult esimest sobivat dokumenti (sest update() ilma valikuteta mõjutab ainult ühte).

Mongo ühendamine node jsiga

Kood impordib MongoClienti mongodb paketist.

See loob uue MongoClient’i koos ühendusstringiga MongoDB Atlas klastrile (pilvemongoDB).

Asünkroonne käivitamisfunktsioon:

Funktsioon start on deklareeritud asünkroonsena, et see saaks kasutada await’i asünkroonsete MongoDB operatsioonide jaoks.

Try-bloki sees (vigade püüdmiseks ja logimiseks):

konspekt teemaga programmeerimine

Programmeerimise ajalugu

Programmeerimise arengulugu hõlmab teekonda esimestest programmeerimiskeeltest kuni tänapäevaste tehnoloogiateni. See sisaldab olulisi saavutusi, mõjukaid isikuid ning erinevate programmeerimisparadigmade kujunemist ja arengut. konspekt teemaga

print("Tere, maailm!")

Süntaks

Süntaks on reeglistik, mis määrab, kuidas tuleb koodi kirjutada, et see oleks arvutile arusaadav. See hõlmab näiteks märksõnu, operaatoreid, kirjavahemärke ning loogilist koodi ülesehitust. konspekt teemaga

a = 5
b = 3

if a > b:
    print("a on suurem kui b")
elif a > b
    print("a on suurem")

Muutujad

Muutujad on nimelised kohad arvuti mälus, kuhu saab salvestada andmeid ja millele saab hiljem viidata. Igal muutujal on tüüp (nt int, float, string, bool) ja väärtus, mida saab programmi käivitamisel muuta.

nimi = "Anna"          # str – sõne
vanus = 25             # int – täisarv
kõrgus = 1.68          # float – ujukomaarv
on_õpilane = True      # bool – tõeväärtus

print(nimi, "on", vanus, "aastat vana.")

Lineaarsed programmid

Lineaarsed programmid koosnevad juhistest, mis täidetakse järjestikku, ilma harude või kordusteta.

Programmi voog on sirgjooneline – algusest lõpuni.

Tüüpilised tegevused: sisendi lugemine, arvutuste tegemine ja väljundi kuvamine.

nimi = input("Sisesta oma nimi: ")
vanus = int(input("Sisesta oma vanus: "))
print("Tere,", nimi)
print("Järgmisel aastal oled sa", vanus + 1, "aastat vana.")

Valikud

Valikulaused võimaldavad programmil teha otsuseid ja täita erinevaid koodiplokke sõltuvalt tingimuste tõesusest või väärusest.

  • if: Kui tingimus on tõene, täidetakse if-ploki kood.
  • elif (else if): Kui eelnev if või elif tingimus oli väär, kontrollitakse uut tingimust. Kui see on tõene, täidetakse vastav koodiplokk.
  • else: Kui ükski eelnevatest tingimustest ei olnud tõene, täidetakse else-plokk. Else on valikuline.
number = int(input("Sisesta arv: "))

if number > 0:
    print("Arv on positiivne.")
elif number < 0:
    print("Arv on negatiivne.")
else:
    print("Arv on null.")

Kordused

Tsüklid võimaldavad teatud koodiplokki mitu korda korrata.

  • for-tsükkel: Kasutatakse järjendite (nt loendid, sõned) kordamiseks kindel arv kordi. Sageli koos range() funktsiooniga.
for i in range(5):
    print("Tere", i)
  • while-tsükkel: Kordab koodiplokki, kuni mingi tingimus on tõene. Tingimust kontrollitakse enne iga kordust. Oluline on tagada, et tingimus muutuks tsükli sees, vältimaks lõputut tsüklit.
arv = 1
while arv <= 5:
    print("Arv:", arv)
    arv += 1

Tsükli juhtlausete näited:

  • break: katkestab tsükli kohe.
  • continue: jätkab tsüklit järgmise kordusega, vahele jättes ülejäänud koodi jooksvas tsüklis.
for i in range(10):
    if i == 7:
        break
    if i % 2 == 0:
        continue
    print(i)

Loendid

Loendid on järjekorras, muudetavad andmekogumid, mis võivad sisaldada erinevat tüüpi elemente.

  • Elementidele pääseb ligi indeksi kaudu (alates nullist).
  • Võimalikud toimingud: lisamine, eemaldamine, muutmine, sortimine, viilutamine.

Levinud meetodid: append(), insert(), remove(), pop(), sort(), reverse(), len().

ostunimekiri = ["leib", "piim", "juust"]
ostunimekiri.append("või")
ostunimekiri.remove("piim")
ostunimekiri.sort()

print(ostunimekiri)


Kasutaja funktsioonid

Funktsioonid on korduvkasutatavad koodiplokid, mis täidavad konkreetset ülesannet.

  • Aitavad koodi struktuureerida, muuta loetavamaks ja vähendada kordust.
  • Funktsiooni defineerimiseks kasutatakse märksõna def, millele järgneb nimi, sulud parameetritega ja koolon. Keha on taandatud.

Parameetrid ja argumendid:

  • Parameetrid määratakse funktsiooni defineerimisel.
  • Argumendid on väärtused, mida funktsiooni kutsumisel parameetritele antakse.

Tagastusväärtus:

  • Funktsioon võib midagi tagastada return abil.
  • Kui return puudub või on ilma väärtuseta, tagastatakse vaikimisi None.

Kohalikud ja globaalsed muutujad:

  • Funktsioonis määratud muutujad on kohalikud.
  • Funktsiooni välised muutujad on globaalsed.
def tervita(nimi):
    print("Tere,", nimi)

tervita("Kati")

def korruta(a, b):
    return a * b

tulemus = korruta(3, 4)
print("Tulemus on:", tulemus)

Sõnastikud

Sõnastikud on järjekorrata, muudetavad andmestruktuurid, mis hoiavad andmeid võtme-väärtuse paaridena.

  • Iga võti peab olema unikaalne ja muutumatu (nt sõne, arv). Väärtus võib olla suvaline tüüp.
  • Elementidele pääseb ligi võtme, mitte indeksi kaudu.

Levinud meetodid: keys(), values(), items(), get(), pop().

opilane = {
    "nimi": "Jaan",
    "vanus": 17,
    "klass": "11B"
}

print(opilane["nimi"])
opilane["vanus"] = 18
opilane["aadress"] = "Tallinn"

for võti, väärtus in opilane.items():
    print(võti, ":", väärtus)

Failidega töötamine

Failidega töötamine võimaldab andmeid püsivalt salvestada ja hiljem lugeda.

Faili avamine:

  • Kasutatakse open() funktsiooni, mille argumendid on failinimi ja töörežiim (nt 'r' lugemiseks, 'w' kirjutamiseks, 'a' lisamiseks, 'b' binaarrežiim).

Failist lugemine: read(), readline(), readlines().

Faili kirjutamine: write(), writelines().

Faili sulgemine:

  • Pärast töö lõpetamist tuleb fail sulgeda close() abil, et andmed salvestuksid õigesti ja ressursid vabaneksid.

Soovitatav: kasutada konstruktsiooni with open(...) as ...:, mis sulgeb faili automaatselt.

Erinevad failivormingud: .txt, .csv, .json.

# Kirjutamine
with open("andmed.txt", "w") as fail:
    fail.write("Tere, fail!")

# Lugemine
with open("andmed.txt", "r") as fail:
    sisu = fail.read()
    print(sisu)

Graafikute ja diagrammide loomine

Andmete visualiseerimine graafikute ja diagrammide abil aitab paremini mõista mustreid, trende ja seoseid.

Levinud Python’i teegid:

  • Matplotlib – põhiline ja laialt kasutatav
  • Seaborn – põhineb Matplotlibil, pakub kõrgema taseme kasutajaliidest statistilisteks graafikuteks
  • Plotly – võimaldab interaktiivseid graafikuid

Graafikute tüübid:

  • Joonisgraafik
  • Tulpdiagramm
  • Hajusdiagramm
  • Sektordiagramm
  • Histogramm

Kohandused:

  • Telgede nimed, pealkirjad, legendid, värvid, stiilid
import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]

plt.plot(x, y)
plt.title("Lihtne joonisgraafik")
plt.xlabel("X telg")
plt.ylabel("Y telg")
plt.grid(True)
plt.show()

Graafiline kasutajaliides (GUI)

Graafiline kasutajaliides võimaldab kasutajatel suhelda programmiga visuaalsete elementide (aknad, nupud, tekstiväljad jms) kaudu, mitte ainult käsurea kaudu.

  • Tkinter: Python’i standardne GUI-teek, lihtne alustada, platvormiülene
  • CustomTkinter: moodsam ja visuaalselt atraktiivsem alternatiiv, pakub rohkem kohandamisvõimalusi

Põhimõtted GUI loomiseks:

  • Vidinate paigutamine aknasse
  • Sündmuste haldamine (nt nupuvajutused, hiire liigutused)
import tkinter as tk

aken = tk.Tk()
aken.title("Tere tulemast!")

silt = tk.Label(aken, text="Tere, kasutaja!")
silt.pack()

nupp = tk.Button(aken, text="Sulge", command=aken.destroy)
nupp.pack()

aken.mainloop()