Infotanar.eu - Fordító program

Kód

# Fordító program
# YT: https://www.youtube.com/watch?v=-_qzxi4bI5Q
# Kategória: szótárak

import random

szotar = {}

def uj_szo():
    magyar = input("Magyar szó: ")
    angol = input("Angol szó: ")
    szotar[magyar] = angol

def magyar_angol():
    szo = input("Magyar szó: ")
    if szo in szotar:
        print(f"Angol jelentése: {szotar[szo]}")
    else:
        print("Nincs ilyen szó a szótárban!")

def angol_magyar():
    szo = input("Angol szó: ")
    for magyar, angol in szotar.items():
        if angol == szo:
            print(f"Magyar jelentése: {magyar}")
            return
    print("Nincs ilyen szó a szótárban!")

def gyakorlas():
    if len(szotar) == 0:
        print("A szótár üres!")
        return
        
    while True:
        # Véletlenszerűen választunk magyar->angol vagy angol->magyar
        if random.choice([True, False]):
            # Magyar -> Angol
            magyar = random.choice(list(szotar.keys()))
            valasz = input(f"\nFordítsd le: {magyar}\nAngol jelentése: ")
            if valasz == szotar[magyar]:
                print("Helyes!")
            else:
                print(f"Helytelen! A helyes válasz: {szotar[magyar]}")
        else:
            # Angol -> Magyar
            magyar = random.choice(list(szotar.keys()))
            angol = szotar[magyar]
            valasz = input(f"\nFordítsd le: {angol}\nMagyar jelentése: ")
            if valasz == magyar:
                print("Helyes!")
            else:
                print(f"Helytelen! A helyes válasz: {magyar}")
                
        if input("\nFolytatod? (i/n): ") != "i":
            break

while True:
    print("\n1. Új szó")
    print("2. Magyar -> Angol")
    print("3. Angol -> Magyar")
    print("4. Gyakorlás")
    print("5. Kilépés")

    valasztas = input("\nVálasztás: ")

    match valasztas:
        case "1":
            uj_szo()  # Új szó hozzáadása
        case "2":
            magyar_angol()  # Magyar -> Angol fordítás
        case "3":
            angol_magyar()  # Angol -> Magyar fordítás
        case "4":
            gyakorlas()  # Gyakorlás funkció
        case "5":
            break  # Kilépés a ciklusból
        case _:
            print("Érvénytelen választás.")  # Alapértelmezett eset, ha nincs egyezés