Kurs: Darmowy kurs Python dla początkujących
Lekcja 12: Tworzenie prostego kalkulatora
Łą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: