Untitled

mail@pastecode.io avatar
unknown
plain_text
a year ago
3.0 kB
1
Indexable
Never
# Tee tehtävän 3 ratkaisu tänne
import os

def tallenna_historia(laskutoimitus):
    with open('historia.txt', 'a') as tiedosto:
        tiedosto.write(f"{laskutoimitus}\n")

def lue_historia():
    historia = []
    if os.path.exists('historia.txt'):
        with open('historia.txt', 'r') as tiedosto:
            for rivi in tiedosto:
                historia.append(rivi.strip())
    return historia

def laske_yhteenlasku():
    luku1 = float(input("Anna luku: "))
    luku2 = float(input("Anna luku: "))
    tulos = luku1 + luku2
    tallenna_historia(f"{luku1};+;{luku2};{tulos}")
    print(f"Tulos: {tulos}")

def laske_vahennyslasku():
    luku1 = float(input("Anna luku: "))
    luku2 = float(input("Anna luku: "))
    tulos = luku1 - luku2
    tallenna_historia(f"{luku1};-;{luku2};{tulos}")
    print(f"Tulos: {tulos}")

def laske_kertolasku():
    luku1 = float(input("Anna luku: "))
    luku2 = float(input("Anna luku: "))
    tulos = luku1 * luku2
    tallenna_historia(f"{luku1};*;{luku2};{tulos}")
    print(f"Tulos: {tulos}")

def laske_jakolasku():
    luku1 = float(input("Anna luku: "))
    luku2 = float(input("Anna luku: "))
    tulos = luku1 / luku2
    tallenna_historia(f"{luku1};/;{luku2};{tulos}")
    print(f"Tulos: {tulos}")

def nayta_historia():
    historia = lue_historia()
    if len(historia) >= 1:
        print(f"Historiassa {len(historia)} tulosta:")

    for rivi in historia:
        operandi1, operaattori, operandi2, tulos = rivi.split(";")
        print(f" {operandi1} {operaattori} {operandi2} = {tulos}")

    if not historia:
        print("Historiatietoja ei saatavilla.")

    print()


def tyhjenna_historia():
    with open("historia.txt", "w") as tiedosto:
        tiedosto.write("")
    print("Historia tyhjennetty.")
    print()


def nayta_toiminnot():
    print("Toiminnot:")
    print("0 - ohjelman lopettaminen")
    print("1 - laske yhteenlasku (+)")
    print("2 - laske vähennyslasku (-)")
    print("3 - laske kertolasku (*)")
    print("4 - laske jakolasku (/)")
    print("5 - näytä historia")
    print("6 - tyhjennä historia")
    print("7 - näytä toiminnot")

def suorita_nelilaskin():
    print("Nelilaskin")
    historia = lue_historia()
    print(f"Historiassa {len(historia)} tulosta")
    nayta_toiminnot()

    while True:
        valinta = input("Valitse toiminto: ")

        if valinta == "0":
            print("Lopetetaan...")
            break
        elif valinta == "1":
            print("Yhteenlasku (+)")
            laske_yhteenlasku()
        elif valinta == "2":
            print("Vähennyslasku (-)")
            laske_vahennyslasku()
        elif valinta == "3":
            print("Kertolasku (*)")
            laske_kertolasku()
        elif valinta == "4":
            print("Jakolasku (/)")
            laske_jakolasku()
        elif valinta == "5":
            nayta_historia()
        elif valinta == "6":
            tyhjenna_historia()
        elif valinta == "7":
            nayta_toiminnot()

        print()

suorita_nelilaskin()