Przed Tobą kolejny artykuł z serii dotyczącej podstaw programowania z wykorzystaniem języka Python. W ramach tego artykułu zaimplementujesz aplikację konsolową typu kalkulator.
Mam nadzieję, iż zapoznałeś się z pierwszym artykułem z serii Pierwsze koty za płoty – Python. jeżeli jeszcze nie miałeś okazji go przeczytać to szczerze polecam, ponieważ do prac nad aplikacją będziesz potrzebował działającego środowiska developerskiego (interpretera oraz programu do edycji kodu źródłowego – PyCharm). Artykuł ten możesz znaleźć pod tym linkiem: Pierwsze koty za płoty – Python.
Python - pierwszy projekt
Utworzenie projektu
W ten sposób utworzyłeś projekt, który dalej będziemy rozwijać. Jest on bliźniaczo podobny do tego z pierwszego artykułu dlatego, jeżeli posiadasz już projekt Sample to możesz go wykorzystać w ramach tego artykułu.
Wyświetlanie tekstu na ekranie
Pierwszą mechaniką, którą się zajmiesz jest wyświetlenie tekstu opisującego opcje kalkulatora na ekranie. W tym celu wykorzystasz wbudowaną w Pythona funkcję print. Jej składnia jest bardzo prosta, mianowicie aby jej użyć wystarczy napisać print(„Treść komunikatu do wyświetlenia”). Funkcja ta wyświetla komunikat w nowej linii na oknie konsoli. Kalkulator przedstawiony w ramach tego artykułu będzie wspierał 4 operacje:
- Dodawanie
- Odejmowanie
- Mnożenie
- Dzielenie
Listing 1 – wyświetlanie tekstu na oknie konsoli
Pobieranie danych z okna konsoli oraz konwersja typów
Powyższy kod pobiera z okna konsoli wartość wprowadzoną przez użytkownika oraz konwertuje ją na typ całkowitoliczbowy (int), następnie przypisuje jej wartość do zmiennej option. Konwersja typu wartości z tekstu na liczby może powodować błędy, np. czy wiesz co się stanie jeżeli spróbujesz na ekranie konsoli wpisać coś innego niż liczbę, np. słowo Devkot?
Powyższy zrzut ekranu przedstawia wynik podania tekstu zamiast liczby. Wynikiem takiego zachowania jest błąd w programie w efekcie, którego program przestaje działać.
Obsługa wyjątków
Blok try zawiera kod, który może wyrzucić wyjątek. Następnie w bloku except można zdefiniować, które wyjątki chcemy obsłużyć i jakie czynności mają zostać wykonane w momencie ich wystąpienia.
Można też użyć bloku finally, który wykona się niezależnie od tego, czy wyjątek został wyrzucony czy nie.
W powyższym przykładzie wyjątek ValueError zostanie przechwycony i wyświetli się w konsoli komunikat „Wybrałeś nieprawidłową opcję. Uruchom program ponownie„.
Wyjątki możemy rzucać również z kodu, który piszemy. Służy do tego słowo najważniejsze raise. Mechanizm ten jest używany, gdy z jakiegoś powodu nasza funkcja/program nie może dalej działać i chcemy przerwać jej działanie. Poniższy kod prezentuje w jaki sposób można rzucać wyjątek.
Instrukcje warunkowe
Instrukcje warunkowe w Pythonie umożliwiają zdefiniowanie bloku kodu, który zostanie wykonany tylko gdy określony warunek zostanie spełniony. Do dyspozycji mamy trzy instrukcje warunkowe: if, elif oraz else.
Słowo najważniejsze if inicjuje instrukcję warunkową, która wymaga przekazania warunku logicznego. jeżeli warunek jest spełniony, blok kodu zostanie wykonany. Dodatkowo, słowo najważniejsze elif (skrót od else if) może być użyte do dodawania kolejnych warunków. Wreszcie, słowo najważniejsze else umożliwia wykonanie kodu, gdy żaden z warunków nie zostanie spełniony.
Poniższy kod przedstawia wykorzystanie instrukcji warunkowych do wybrania odpowiedniego działania kalkulatora.
Wraz z implementacją instrukcji warunkowych, dodaliśmy implementację 2 z 4 dostępnych opcji. Jak możesz zauważyć, sama logika działania jest dosyć prosta, wystarczy tylko pobrać od użytkownika potrzebne dane oraz wykonać akcję wybraną przez użytkownika. Specjalnie w przykładowym kodzie zaimplementowałem tylko 2 pierwsze opcje, aby zostawić Ci przestrzeń na praktykę. Spróbuj napisać własną implementację mnożenia i dzielenia wzorując się na przykładowym kodzie.
Pętle
Ostatnim zagadnieniem, które poruszymy w ramach tego artykułu są pętle. Są to specjalne konstrukcje, które pozwalają na wielokrotne wykonywanie danego kodu. Python oferuje dwa rodzaje pętli: for oraz while. Pierwsza z nich służy do przechodzenia (iterowania) po kolejnych elementach np. listy. Pozwala ona także na użycie funkcji rangę, w celu określenia konkretnej liczby powtórzeń. Więcej na temat pętli for możesz przeczytać na tej stronie: Python For Loops. Natomiast pętla while wykonuje się dopóki warunek pętli zwraca wartość True.
Składnia pętli for: for item in collection
Składnia pętli while: while(warunek_pętli)
Skoro wiesz już czym są pętle, spróbujmy dodać je do kalkulatora. Dzięki wykorzystaniu pętli wyeliminujemy problem ponownego uruchamiania aplikacji za każdym razem, gdy operacja zostanie wykonana.
Jak widzisz dodanie pętli do kalkulatora jest całkiem proste. W tym przypadku wybrałem pętle while, ponieważ program powinien działać do momentu, gdy użytkownik świadomie będzie chciał opuścić program. Z tego względu zdecydowałem się również dodać 5 opcje pod nazwą Wyłącz. Wszystkie koniecznie zmiany potrzebne do dodania pętli while do kalkulatora znajdują się w liniach 3-5 oraz 34-35.
W ten oto sposób napisałeś swój pierwszy skrypt w Pythonie. Jest to prosty ale funkcjonalny kalkulator, którego implementacja pozwoliła Ci zapoznać się i wykorzystać w praktyce podstawowe konstrukcje dostarczane przez język Python, takie jak: instrukcje warunkowe, pętle, mechanizm obsługi wyjątków. Jak widzisz na ostatnim listingu przez cały czas brakuje implementacji dzielenia oraz mnożenia. Spróbuj zaimplementować ich logikę samemu, dzięki temu utrwalisz część materiału zawartego w tym artykule. jeżeli masz pomysł na dalszy rozwój tego skryptu to śmiało go rozwijaj.
Projekt kalkulatora będziemy jeszcze rozwijać w kolejnym artykule, poprzez jego refaktoryzację tak by bazował na klasach oraz dołożymy do niego kolejne opcje, które między innymi pozwolą na liczenie potęg oraz pierwiastków kwadratowych.
Mam nadzieję, iż lektura Ci się podobała i do zobaczenia w kolejnym artykule!