Ukládala historie příkladů – Python – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Ukládala historie příkladů – Python – Fórum – Programujte.comUkládala historie příkladů – Python – Fórum – Programujte.com

 

Kaa
~ Anonymní uživatel
2 příspěvky
27. 11. 2018   #1
-
0
-

 Ahoj mohl by mi prosím někdo poradit? Mám napsaný tento kód kalkulačky a potřebovala bych i aby program ukládal historie příkladů i s výsledkem do souboru. Jako nápovědu jsem dostala:

with open('soubor.txt', mode='w', encoding='utf-8') as soubor:
    soubor.write(cislo + operace + cislo + "=" + vysledek)

ale nevím jak s tím naložit. Mohl by mi prosím někdo poradit a pomoct jak mám kód upravit? Byla bych moc vděčná :)

def nacti_cislo(text_vstup, text_error):                             
    spatne = True
    while spatne:                                                      
        try:
            cislo = float(input(text_vstup))                          
            spatne = False
        except ValueError:                                              
            print(text_error)
    else:                                                              
        return cislo

def dalsi_priklad():                                                   
    nezadano = True                                                     
    while nezadano:
        odpoved = input("\n Budete chtít pokračovat? a / n: ")
        if (odpoved == "a" or odpoved == "A"):                          
            return True
        elif (odpoved == "n" or odpoved == "n"):                        
            return False
        else:
            pass

def volba(prvni_cislo, druhe_cislo):                                   
    print ("1 - sčítání")
    print ("2 - odčítání")
    print ("3 - dělení")
    print ("4 - násobení")
    print ("5 - druhá odmocnina")
    print ("6 - mocnina dvou")
    cislo_operace = nacti_cislo("Zadej volbu: ", "Neplatné zadání!\n") 
    if cislo_operace == 1:                                              
        print ("Soucet je: ", prvni_cislo + druhe_cislo)                
    elif cislo_operace == 2:
        print ("Rozdíl je: ", prvni_cislo - druhe_cislo)
    elif cislo_operace == 3:
        print ("Podíl je: ", prvni_cislo / druhe_cislo)
    elif cislo_operace == 4:
        print ("Násobek je: ", prvni_cislo * druhe_cislo)
    elif cislo_operace == 5:
        print ("Odmocnina prvního čísla je: ", prvni_cislo ** (1/2))
        print ("Odmocnina druhého čísla je: ", druhe_cislo ** (1/2))
    elif cislo_operace == 6:
        print ("Mocnina prvního čísla je: ", prvni_cislo ** 2)
        print ("Mocnina druheho čísla je: ", druhe_cislo ** 2)
    else:
        print("Špatně!")

def main():                                                             
    print("Kalkulačka\n")
    pokracovat = True
    while pokracovat:                                                   
        prvni_cislo = nacti_cislo("Zadej první číslo: ", "Neplatné číslo!\n") 
        druhe_cislo = nacti_cislo("Zadej druhé číslo: ", "Neplatné číslo!\n")
        volba(prvni_cislo, druhe_cislo)                                 
        if dalsi_priklad():                                            
            pass
        else:
            pokracovat = False                                          #nepokračovat
    input("\n Pro ukončení stiskněte libovolnou klávesnici")

main()
Nahlásit jako SPAM
IP: 109.105.39.–
gna
~ Anonymní uživatel
1891 příspěvků
28. 11. 2018   #2
-
0
-

Ta nápověda otevře soubor a něco do něj zapíše. V čem konkrétně je problém?

Nahlásit jako SPAM
IP: 213.211.51.–
Kaa
~ Anonymní uživatel
2 příspěvky
28. 11. 2018   #3
-
0
-

Problém je v tom, že když nápovědu použiju (napsala jsem to do hlavní funkce na konec je to dobře?), tak mi program píše že proměnná "číslo" není definovaná. Nevím jak docílit toho, aby i ve vytvořeném souboru se mi ukládali spočítané příklady

Nahlásit jako SPAM
IP: 109.105.40.–
gna
~ Anonymní uživatel
1891 příspěvků
28. 11. 2018   #4
-
0
-

Aha, takže to není tvůj výtvor...

No, proměnnou cislo nemáš, ale máš proměnné prvni_cislo a druhe_cislo. Co teď asi s tím? :) Pak ještě někde vzít operaci a výsledek a pak bacha na to, co udělá to sčítání.

Nevím, co myslíš hlavní funkcí, ale místo, kde se ta operace provádí a máš tam všechna data, je ve funkci volba.

Nahlásit jako SPAM
IP: 213.211.51.–
MilanL+1
Grafoman
28. 11. 2018   #5
-
0
-

#3 Kaa
musíš to zapisovat v té funkci volba jak tam máš tu podmínkovou větev tak pod printy vždy přidat ten zápis do souboru, akorát si musíš upravit ten formát abys tam měla všechno co je třeba tzn obě čísla, operaci a výsledek

např.

    if cislo_operace == 1:                                              
        print ("Soucet je: ", prvni_cislo + druhe_cislo)
	soubor.Write(prvni_cislo + "+" + druhe_cislo + "=" + (prvni_cislo+druhe_cislo))                
    elif cislo_operace == 2:
Nahlásit jako SPAM
IP: 91.139.9.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 12 hostů

Podobná vlákna

Historie procesů PC — založil xeonikx

Historie NoteBooků. — založil DeathHumanCZ

Skype / ICQ - historie — založil Anonymní uživatel

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý