Sõnastik on võtme-väärtus paaride kogum, mis võimaldab kiiret ligipääsu andmetele.

Создание словарей / Sõnastike loomine

# Пустой словарь / Tühi sõnastik
empty_dict = {}  # {}
tühi = {}

# Словарь с значениями / Väärtustega sõnastik
student = {'name': 'Jaan', 'course': 3, 'specialty': 'IT'}
õpilane = {'nimi': 'Jaan', 'kursus': 3, 'eriala': 'infotehnoloogia'}

# С помощью конструктора dict() / dict() konstruktoriga
car = dict(brand='Toyota', model='Corolla', year=2020)
auto = dict(mark='Toyota', mudel='Corolla', aasta=2020)

Работа с данными / Andmete kasutamine

# Получение значения / Väärtuse hankimine
print(student['name'])  # Jaan
print(õpilane['nimi'])  # Jaan

# Безопасное получение значения / Turvaline väärtuse hankimine
print(car.get('color', 'not specified'))  # not specified
print(auto.get('värv', 'pole määratud'))  # pole määratud

# Добавление нового ключа / Uue võtme lisamine
student['email'] = 'jaan@school.ee'
õpilane['email'] = 'jaan@kool.ee'

# Изменение значения / Väärtuse muutmine
car['year'] = 2021
auto['aasta'] = 2021

Методы и операции / Meetodid ja operatsioonid

# Отображение ключей и значений / Võtmete ja väärtuste kuvamine
print(student.keys())    # dict_keys(['name', 'course', 'specialty', 'email'])
print(õpilane.keys())    # dict_keys(['nimi', 'kursus', 'eriala', 'email'])

print(car.values())      # dict_values(['Toyota', 'Corolla', 2021])
print(auto.values())     # dict_values(['Toyota', 'Corolla', 2021])

# Удаление элементов / Elementide eemaldamine
del student['course']
del õpilane['kursus']

removed = car.pop('model')
eemaldatud = auto.pop('mudel')

Пример использования словаря / Näide sõnastiku kasutamisest

# Словарь переводов / Tõlkesõnastik
translation = {
    'hello': 'tere',
    'thank you': 'aitäh',
    'goodbye': 'head aega'
}

tõlge = {
    'tere': 'hello',
    'aitäh': 'thank you',
    'head aega': 'goodbye'
}

word = input("Enter word to translate: ")
sõna = input("Sisesta sõna tõlkimiseks: ")
print(f"Translation: {translation.get(word.lower(), 'Unknown word')}")
print(f"Tõlge: {tõlge.get(sõna.lower(), 'Tundmatu sõna')}")

Генерация речи / Kõnetekitamine Pythonis

Вариант 1: pyttsx3 (оффлайн) / Variant 1: pyttsx3 (offline)

import pyttsx3

def speak(text):
    engine = pyttsx3.init()
    engine.setProperty('rate', 150)  # Скорость речи / Kõnetempo
    engine.say(text)
    engine.runAndWait()

speak("Hello, how are you?")
kõnele("Tere, kuidas läheb?")

Вариант 2: gTTS (онлайн) / Variant 2: gTTS (online)

from gtts import gTTS
import os

def speak_online(text, language='en'):
    tts = gTTS(text=text, lang=language)
    tts.save("speech.mp3")
    os.system("start speech.mp3")  # Для Windows / Windowsis avamiseks

def kõnele_online(tekst, keel='et'):
    tts = gTTS(text=tekst, lang=keel)
    tts.save("kõne.mp3")
    os.system("start kõne.mp3")

speak_online("This is English speech", 'en')
kõnele_online("See on eesti keelne kõne", 'et')

Интегрированный пример со словарем / Integreeritud näide sõnastikuga

dictionary = {
    'apple': 'яблоко',
    'banana': 'банан',
    'orange': 'апельсин'
}

sõnastik = {
    'apple': 'õun',
    'banana': 'banaan',
    'orange': 'apelsin'
}

word = input("Enter English word: ")
sõna = input("Sisesta inglise keelne sõna: ")
if word in dictionary:
    translation = dictionary[word]
    print(f"Translation: {translation}")
    speak(f"{word} means {translation} in Russian")
elif sõna in sõnastik:
    tõlge = sõnastik[sõna]
    print(f"Tõlge: {tõlge}")
    kõnele(f"{sõna} tähendab eesti keeles {tõlge}")
else:
    print("Word not found in dictionary")
    print("Sellist sõna sõnastikus pole")

Заключение / Kokkuvõte

  • Словари – мощные структуры данных для быстрого поиска / Sõnastikud on võimsad andmestruktuurid kiireks otsinguks
  • gTTS предлагает лучшее качество голоса, но требует интернета / gTTS pakub paremat hääle kvaliteeti, kuid vajab internetti
  • pyttsx3 подходит для оффлайн использования / pyttsx3 sobib offline kasutamiseks
  • Оба модуля можно использовать со словарями для создания интерактивных приложений / Mõlemat moodulit saab kasutada koos sõnastikega interaktiivsete rakenduste loomiseks

Рекомендации по использованию / Kasutussoovitused:

  • Для приложений изучения языков выбирайте gTTS / Keeleõppe rakenduste jaoks vali gTTS
  • Для систем, которые должны работать без интернета, используйте pyttsx3 / Süsteemidele, mis peavad töötama ilma internetita, kasuta pyttsx3
  • Используйте словари для структурирования данных и быстрого поиска / Kasuta sõnastikke andmete struktureerimiseks ja kiireks otsinguks