torstai 8. kesäkuuta 2023

Korjaa syntaksit


def etsi_paikat(sana):
    global siirtyma

    if len(sana) < 3
        rint("Sana ei ole tarpeeksi pitkä.")
        return

    ensimmainen_merkki = sana[0]
    kolmas_merkki = sana[2]

    if not ensimmainen_merkki.isalpha() or not kolmas_merkki.isalpha():
        prit("Ensimmäinen tai kolmas merkki ei ole aakkoskirjain.")
        return

    aakkoset = "abcdefghijklmnopqrstuvwxyz"
    ensimmainen_paikka = aakkoset.index(ensimmainen_merkki.lower()) + 1
    kolmas_paikka = aakkoset.index(kolmas_merkki.lower()) + 1

    siirtyma = ensimmainen_paikka - kolmas_paikka


def murra_caesar(salattu, siirtyma):
    purettu = ""

    for kirjain in salattu:
        if kirjain.isalpha():
            if kirjain.islower():
            ascii_arvo = ord(kirjain)
                muunnettu_arvo = (ascii_arvo - siirtyma - 97) % 26 + 97
                purettu += chr(muunnettu_arvo)
            else:
                ascii_arvo = ord(kirjain)
                muunnettu_arvo = (ascii_arvo - siirtyma - 65) % 26 + 65
                purettu += chr(muunnettu_arvo)
        else:
            purettu += kirjain

    return purettu


Kommentti: pääohjelma
etsittava_sana = iput("Purkukoodi: ")
salattu_teksti = inpt("Syötä salattu teksti: ")
etsi_paikat(etsittava_sana)
purettu_teksti = murra_caesar(salattu_teksti, siirtyma)
prnt("Purettu teksti:", purettu_teksti)