Sõnastikud

Sõnastik (dictionary) on võtmepõhine andmestruktuur, mis võimaldab salvestada ja hallata
andmepaaride kogumit kujul võti: väärtus.

Loomine:
#Tühja sõnastiku loomine
andmed = {}
#Võtmete ja väärtustega
andmed = {‘nimi’: ‘Mari’, ‘vanus’: 25, ‘keel’: ‘eesti’}
#dict() funktsiooniga
andmed = dict(nimi=’Mari’, vanus=25, keel=’eesti’)

Väärtustele ligipääs:
print(andmed[‘nimi’]) # Mari
#Või kasutades get() — kui võtit pole, ei tule viga
print(andmed.get(‘aadress’, ‘Ei ole määratud’)) # Ei ole määratud

Väärtuste muutmine ja lisamine:
andmed[‘nimi’] = ‘Kati’ # Väärtuse muutmine
andmed[’email’] = ‘kati@example.com’ # Uue paari lisamine
print(andmed) # {‘nimi’: ‘Kati’, ‘vanus’: 25, ‘keel’: ‘eesti’, ’email’:
‘kati@example.com’}

Elementide eemaldamine:
del andmed[‘vanus’] # Eemaldab võtme ja väärtuse
andmed.pop(‘keel’) # Eemaldab ja tagastab väärtuse
print(andmed) # {‘nimi’: ‘Kati’, ’email’: ‘kati@example.com’}

Failidega töö

Pythonis on võimalik txt faile kiirelt ja efektiivselt kasutada, olgu siis selleks informatsiooni talletamine või
analüüsimine. Esimese sammuna tuleb õige txt fail avada, millega me tegelema hakkame.
Faili avamine:
f = open(‘file.txt’, ‘r’) #open() meetod annab käskluse programmil avada test.txt fail ning r määrab ära,
et tegemist on read ehk faili lugemisega.

Failist lugemine:

#Tekst failist salvestame järjendisse
def Loe_failist(fail:str)->list:
 f=open(fail,'r',encoding="utf-8-sig")
 jarjend=[]
 for rida in f:
 jarjend.append(rida.strip())
 f.close()
return jarjend

Salvestamine failisse:

#Järjendite elemendid salvestame failisse
def Kirjuta_failisse(fail:str,jarjend:list):
 f=open(fail,'w',encoding="utf-8-sig")
 for line in jarjend:
 f.write(line+'\n')
 f.close()

file.read(n) loeb failist hulga n suuruses tähti, kui n on tühi, siis loeb terve faili.
file.readline(n) loeb failist tekstirea, kuid sealt mitte rohkem kui n märki.
file.readlines(n) loeb failist n tekstirida.

Smtplib:
Python sisaldab sisseehitatud mooduleid, mida saame kasutada e-kirjade saatmiseks. Selleks
on vaja kahte moodulit, mis on smtplib ja email.message.

import smtplib
from email.message import EmailMessage

Konfigureeri e-posti päise väljad:
Kõigepealt loome klassi EmailMessage() abil objekti, mis sisaldab kõiki e-kirja üksikasju.
#create an email message object
message = EmailMessage()
Järgmisena saame lisada e-posti sõnumi päise üksikasjad, et määrata teema, saatja aadress ja
vastuvõtja aadress, nagu allpool näidatud.

email_subject = "Email test from Python"
sender_email_address = "your_email@gmail.com"
receiver_email_address = "receiver_email@address.com"
#configure email headers
message['Subject'] = email_subject
message['From'] = sender_email_address
message['To'] = receiver_email_address

Konfigureeri e-kirja keha:
Selle näite puhul on sõnumi sisu tavaline tekstisõnum. E-kirja sisu määratakse e-posti objekti
meetodi set_content() abil järgmiselt.
#set email body text
message.set_content(«Hello from Python!»)

Konfigureeri e-posti server:
E-posti server on rakendus, mida kasutatakse e-kirjade saatmiseks ja saamiseks. Sellised
serverid kasutavad SMTP-protokolli, et saata e-kirju teistele serveritele.
Meie näites näeme, et e-kiri saadetakse gmaili kontolt, seega peame kasutama serverina
smtp.gmail.com.
Teine seade, mida me peame oma SMTP-serveri jaoks konfigureerima, on meiliport. See on
võrguport, mida meie python-kliendirakendus kasutab e-kirjade saatmiseks teisele serverile.
Me kasutame SMTP porti 587, mis on vaikimisi port, mida kasutatakse e-kirjade saatmise
käsitlemiseks SMTP kaudu.

email_smtp = "smtp.gmail.com"
#set smtp server and port
server = smtplib.SMTP(email_smtp, '587')

Pärast serveri deklareerimist on meil vaja teha mõned täiendavad sammud, et luua ühendus
SMTP-serveriga.
See hõlmab meie enda tuvastamist serverile, kasutades funktsiooni ehlo(), seejärel turvalise
TLS-ühenduse algatamist serveriga, kasutades funktsiooni starttls().

email_smtp = "smtp.gmail.com"
# set smtp server and port
server = smtplib.SMTP(email_smtp, '587')
# identify this client to the SMTP server
server.ehlo()
# secure the SMTP connection
server.starttls()

JSON:

JSON (JavaScript Object Notation) on lihtne andmevorming, mida kasutatakse:
Andmete salvestamiseks failides.
Andmete vahetamiseks programmide vahel.
JSON-i sarnasused Pythoniga:
Python dict = JSON objekt.
Python list = JSON massiiv.
Python True/False = JSON true/false.
Python None = JSON null.

JSON-i kasutamine Pythonis:

Mooduli importimine:
import json

Python andmestik → JSON string:
andmed = {«nimi»: «Anna», «vanus»: 25, «abielus»: False}
json_string = json.dumps(andmed)
print(json_string)

Salvesta JSON faili:
with open(«andmed.json», «w») as f:
json.dump(andmed, f)

Loe JSON failist:
with open(«andmed.json», «r») as f:
andmed_failist = json.load(f)
print(andmed_failist)

Ilusam formaat:
print(json.dumps(andmed, indent=2, sort_keys=True))

Keerulisemad andmestruktuurid:

klass = {
"opetaja": "Tamm",
"opilased": [
{"nimi": "Mari", "hinne": 5},
{"nimi": "Jüri", "hinne": 4}
]
}
with open("klass.json", "w") as f:
json.dump(klass, f, indent=2)

Kokkuvõte:
JSON on Pythonis väga kasulik, et:

Salvestada püsivaid andmeid.
Vahetada infot programmide vahel.