Lekcja 12 – Tworzenie prostego kalkulatora

Kurs: Darmowy kurs Python dla początkujących
Lekcja 12: Tworzenie prostego kalkulatora

⇓ spis treści ⇓


Łączenie funkcji i warunków

W tej części stworzymy prosty kalkulator, który pozwoli na wykonywanie podstawowych operacji matematycznych, takich jak dodawanie, odejmowanie, mnożenie i dzielenie. Wykorzystamy funkcje do definiowania poszczególnych operacji oraz instrukcje warunkowe do wyboru operacji na podstawie danych wejściowych od użytkownika.

1. Definiowanie funkcji dla operacji matematycznych

Najpierw zdefiniujemy funkcje odpowiadające podstawowym działaniom matematycznym: dodawanie, odejmowanie, mnożenie i dzielenie.

# Funkcje matematyczne
def dodaj(a, b):
    return a + b

def odejmij(a, b):
    return a - b

def pomnoz(a, b):
    return a * b

def podziel(a, b):
    if b != 0:
        return a / b
    else:
        return "Błąd: Nie można dzielić przez zero."
2. Wyświetlanie menu kalkulatora

Stworzymy funkcję, która wyświetli użytkownikowi dostępne operacje do wyboru.

# Funkcja wyświetlająca menu
def menu():
    print("Prosty Kalkulator")
    print("1. Dodawanie")
    print("2. Odejmowanie")
    print("3. Mnożenie")
    print("4. Dzielenie")
    print("5. Wyjście")
3. Łączenie funkcji z warunkami

Teraz połączymy zdefiniowane funkcje z instrukcjami warunkowymi, aby kalkulator mógł wykonywać wybrane operacje na podstawie wyboru użytkownika.

# Kalkulator z warunkami
def kalkulator():
    while True:
        menu()
        wybor = input("Wybierz operację (1-5): ")
        
        if wybor == "5":
            print("Dziękujemy za korzystanie z kalkulatora!")
            break
        
        if wybor in ["1", "2", "3", "4"]:
            try:
                # Pobieranie liczb od użytkownika
                liczba1 = float(input("Podaj pierwszą liczbę: "))
                liczba2 = float(input("Podaj drugą liczbę: "))
                
                # Wykonanie odpowiedniej operacji
                if wybor == "1":
                    print(f"Wynik: {dodaj(liczba1, liczba2)}")
                elif wybor == "2":
                    print(f"Wynik: {odejmij(liczba1, liczba2)}")
                elif wybor == "3":
                    print(f"Wynik: {pomnoz(liczba1, liczba2)}")
                elif wybor == "4":
                    print(f"Wynik: {podziel(liczba1, liczba2)}")
            except ValueError:
                print("Błąd: Wprowadzono nieprawidłowe dane. Podaj liczby.")
        else:
            print("Błąd: Nieprawidłowy wybór. Spróbuj ponownie.")
4. Przykładowe wywołanie

Oto jak działa kalkulator:

# Wywołanie kalkulatora
kalkulator()
5. Przykład działania

Przykład interakcji użytkownika z programem:

Prosty Kalkulator
1. Dodawanie
2. Odejmowanie
3. Mnożenie
4. Dzielenie
5. Wyjście
Wybierz operację (1-5): 1
Podaj pierwszą liczbę: 10
Podaj drugą liczbę: 5
Wynik: 15.0

Prosty Kalkulator
1. Dodawanie
2. Odejmowanie
3. Mnożenie
4. Dzielenie
5. Wyjście
Wybierz operację (1-5): 4
Podaj pierwszą liczbę: 10
Podaj drugą liczbę: 0
Wynik: Błąd: Nie można dzielić przez zero.

Prosty Kalkulator
1. Dodawanie
2. Odejmowanie
3. Mnożenie
4. Dzielenie
5. Wyjście
Wybierz operację (1-5): 5
Dziękujemy za korzystanie z kalkulatora!

W tym przykładzie kalkulator obsługuje podstawowe operacje matematyczne oraz zapewnia odpowiednie komunikaty dla użytkownika w przypadku błędów, takich jak nieprawidłowe dane lub próba dzielenia przez zero.

Obsługa błędów (try-except)

Podczas pracy z programami mogą wystąpić błędy, takie jak wprowadzenie nieprawidłowych danych przez użytkownika lub próba wykonania niepoprawnej operacji. Aby zapobiec awariom programu i odpowiednio obsłużyć takie sytuacje, Python oferuje mechanizm obsługi wyjątków za pomocą bloku try-except.

1. Podstawy try-except

Blok try-except umożliwia obsługę wyjątków. Kod, który może spowodować błąd, umieszczamy w sekcji try, a reakcję na błąd w sekcji except.

# Podstawowy przykład try-except
try:
    liczba = int(input("Podaj liczbę całkowitą: "))
    print(f"Twoja liczba to: {liczba}")
except ValueError:
    print("Błąd: Wprowadzono nieprawidłową wartość. Podaj liczbę całkowitą.")

Przykład działania:

Podaj liczbę całkowitą: abc
Błąd: Wprowadzono nieprawidłową wartość. Podaj liczbę całkowitą.
2. Obsługa wielu wyjątków

Możemy obsłużyć różne rodzaje błędów w osobnych blokach except, aby lepiej dostosować reakcję programu.

# Obsługa wielu wyjątków
try:
    liczba1 = int(input("Podaj pierwszą liczbę: "))
    liczba2 = int(input("Podaj drugą liczbę: "))
    wynik = liczba1 / liczba2
    print(f"Wynik dzielenia: {wynik}")
except ValueError:
    print("Błąd: Wprowadzono nieprawidłowe dane. Podaj liczby całkowite.")
except ZeroDivisionError:
    print("Błąd: Nie można dzielić przez zero.")

Przykład działania:

Podaj pierwszą liczbę: 10
Podaj drugą liczbę: 0
Błąd: Nie można dzielić przez zero.

Podaj pierwszą liczbę: 10
Podaj drugą liczbę: abc
Błąd: Wprowadzono nieprawidłowe dane. Podaj liczby całkowite.
3. Obsługa nieznanych wyjątków

Możemy dodać ogólny blok except, który obsłuży wszystkie błędy, jeśli nie są one wymienione w konkretnych blokach.

# Obsługa nieznanych błędów
try:
    liczba1 = int(input("Podaj pierwszą liczbę: "))
    liczba2 = int(input("Podaj drugą liczbę: "))
    wynik = liczba1 / liczba2
    print(f"Wynik dzielenia: {wynik}")
except ZeroDivisionError:
    print("Błąd: Nie można dzielić przez zero.")
except Exception as e:
    print(f"Wystąpił nieoczekiwany błąd: {e}")
4. Użycie finally

Blok finally pozwala na wykonanie kodu, który zostanie uruchomiony niezależnie od tego, czy wystąpił wyjątek, czy nie. Jest używany do działań takich jak zamykanie plików lub czyszczenie zasobów.

# Przykład z finally
try:
    plik = open("dane.txt", "r")
    print(plik.read())
except FileNotFoundError:
    print("Błąd: Plik nie został znaleziony.")
finally:
    print("Zamykanie zasobów.")

Przykład działania:

Błąd: Plik nie został znaleziony.
Zamykanie zasobów.
5. Zastosowanie w kalkulatorze

Dodamy obsługę błędów do naszego kalkulatora, aby radził sobie z nieprawidłowymi danymi wejściowymi i próbą dzielenia przez zero.

# Kalkulator z obsługą wyjątków
def kalkulator():
    while True:
        print("Prosty Kalkulator")
        print("1. Dodawanie")
        print("2. Odejmowanie")
        print("3. Mnożenie")
        print("4. Dzielenie")
        print("5. Wyjście")

        wybor = input("Wybierz operację (1-5): ")
        if wybor == "5":
            print("Dziękujemy za korzystanie z kalkulatora!")
            break

        try:
            liczba1 = float(input("Podaj pierwszą liczbę: "))
            liczba2 = float(input("Podaj drugą liczbę: "))

            if wybor == "1":
                print(f"Wynik: {liczba1 + liczba2}")
            elif wybor == "2":
                print(f"Wynik: {liczba1 - liczba2}")
            elif wybor == "3":
                print(f"Wynik: {liczba1 * liczba2}")
            elif wybor == "4":
                print(f"Wynik: {liczba1 / liczba2}")
            else:
                print("Błąd: Nieprawidłowy wybór.")
        except ValueError:
            print("Błąd: Wprowadzono nieprawidłowe dane. Podaj liczby.")
        except ZeroDivisionError:
            print("Błąd: Nie można dzielić przez zero.")

Przykład działania:

Prosty Kalkulator
1. Dodawanie
2. Odejmowanie
3. Mnożenie
4. Dzielenie
5. Wyjście
Wybierz operację (1-5): 4
Podaj pierwszą liczbę: 10
Podaj drugą liczbę: 0
Błąd: Nie można dzielić przez zero.

Wybierz operację (1-5): 5
Dziękujemy za korzystanie z kalkulatora!

Następna lekcja ==> Zarządzanie plikami tekstowymi



Spis Treści - darmowy kurs Python dla początkujących


Lekcja 1: Wprowadzenie do programowania
- Co to jest programowanie?
- Dlaczego warto uczyć się Pythona?
- Instalacja Python i wprowadzenie do edytorów (IDLE, VS Code).
Lekcja 2: Pierwszy program w Pythonie
- Składnia Pythona.
- Wyświetlanie tekstu (funkcja print).
- Komentarze i ich znaczenie.
Lekcja 3: Podstawowe typy danych
- Liczby: int, float.
- Ciągi znaków (stringi).
- Typ logiczny (boolean).
- Funkcja type.
Lekcja 4: Zmienne i operatory
- Deklaracja i przypisywanie zmiennych.
- Operatory arytmetyczne, porównania, logiczne.
Lekcja 5: Listy i krotki
- Tworzenie list i krotek.
- Indeksowanie, dodawanie, usuwanie elementów.
- Operacje na listach.
Lekcja 6: Słowniki i zbiory
- Tworzenie i operacje na słownikach.
- Iteracja po słownikach.
- Zbiory i ich zastosowania.
Lekcja 7: Instrukcje warunkowe
- Instrukcje if, elif, else.
- Operatory logiczne w praktyce.
Lekcja 8: Pętle
- Pętla for i while.
- Instrukcje break, continue, else w pętlach.
Lekcja 9: Funkcje
- Tworzenie i wywoływanie funkcji.
- Argumenty i wartości domyślne.
- Funkcje anonimowe (lambda).
Lekcja 10: Praca z plikami
- Otwieranie, czytanie i zapisywanie plików.
- Obsługa błędów przy pracy z plikami.
Lekcja 11: Podstawy programowania obiektowego
- Klasy i obiekty.
- Atrybuty i metody.
- Prosty projekt: Zarządzanie listą zadań.
Lekcja 12: Tworzenie prostego kalkulatora
- Łączenie funkcji i warunków.
- Obsługa błędów (try-except).
Lekcja 13: Zarządzanie plikami tekstowymi
- Program do przechowywania i wyszukiwania notatek w plikach.
Lekcja 14: Prosta gra tekstowa w Python
- Wprowadzenie do pętli i logiki gry.
- Interaktywna gra konsolowa, np. zgadywanie liczby.

Jeśli chciałbyś być poinformowany o następnych kursach to zapisz się do naszego newslettera: