Programuj w Pythonie… nie znając Pythona!

Staram się rozwijać swoje umiejętności najczęściej jak tylko potrafię. Czasami poprzez kursy stacjonarne, innym razem z podręczników, ostatnio pochłonąłem sporo wiedzy z kursu wideo on-line. Kolejnym etapem w moim rozwoju programistycznym jest Python, którego będę chciał nauczyć się w przeciągu najbliższych tygodni. Tutaj jednak skusiłem się na inne podejście do tematu, a dokładniej naukę poprzez poznawanie konkretnych przykładów. Zacząłem więc szukać gotowych skryptów wykonujących proste czynności, ale wszystko wydawało się zbyt nieczytelne z perspektywy osoby, która nigdy nie miała styczności z Pythonem. Już miałem się poddać i wrócić do klasycznych metod nauki, gdy wpadł mi do głowy kolejny pomysł.

ChatGPT

Pomysłem, który zmienił moje podejście do tematu było skorzystanie z dobrodziejstw strony ChatGPT. Słyszałem, że potrafi radzić sobie z problemami matematycznymi, tworzyć algorytmy i pisać kod, dlatego uznałem, że to dobry pomysł sprawdzić go na prostych zadaniach. Samo uzyskanie dostępu do aplikacji jest bardzo proste – wystarczy utworzyć konto w systemie, zalogować się i rozpocząć nowy chat klikając przycisk “+ New chat” po lewej stronie ekranu. Co prawda usługa jest dość mocno obciążona i czasami trzeba odczekać swoje w kolejce, ale naprawdę warto.

Co musisz wiedzieć na początku?

Zanim uruchomisz jakikolwiek skrypt napisany w języku programowania Python musisz upewnić się, że w Twoim systemie zainstalowane są odpowiednie biblioteki. Aby sprawdzić, czy posiadasz w systemie Pythona uruchom Terminal i wpisz polecenie:

python3 –version

Terminal powinien wyświetlić komunikat:

Jeśli jednak konsola zwraca błąd, informujący o braku Pythona w systemie wystarczy zainstalować go wpisując komendę:

sudo apt install python3

Powyższe polecenie dotyczy oczywiście instalacji w systemach opartych o Debiana (lub Ubuntu). Jeśli korzystasz z Fedory będzie to “sudo dnf install python3” a dla Arch wpisz “sudo pacman -S python“. W przypadku innych dystrybucji zerknij w dokumentację, tam uzyskasz odpowiedź jakiego polecenia powinieneś użyć do zainstalowania pakietu “python3” w systemie.

W kolejnych etapach może okazać się, że konieczne będzie doinstalowanie konkretnych bibliotek. Wykorzystywany jest do tego instalator “pip”, który należy doinstalować do systemu wpisując polecenie:

sudo apt install python3-pip

Konkretne biblioteki opiszę podczas korzystania z wygenerowanych przykładów kodu. Jak łatwo zauważyć nie jest to wiedza tajemna i bardzo łatwo jest przygotować się do pracy ze skryptami Pythona. Nie pozostaje nic innego jak przejść do pomysłu, a następnie wygenerowania skryptu.

Pierwszy pomysł

Pierwszy pomysł, jaki wpadł mi do głowy to stworzenie prostego narzędzia, w którym po wprowadzeniu adresu IP jest on pingowany 5 razy, po czym efekt pingu zostanie wyświetlony użytkownikowi. Efekt pingowania wraz z czasem przeprowadzenia operacji (timestamp) będzie można wyeksportować do pliku *.txt we wskazanej lokalizacji po wciśnięciu przycisku “Eksportuj”. Przycisk “Eksportuj” będzie nieaktywny dopóki nie zostanie przeprowadzony test. Istnieją już podobne narzędzia, lecz tutaj chciałbym uruchamiać go w dowolnym momencie, a przede wszystkim poznać składnię skryptu i wykorzystane funkcje.

Generowanie prostego kodu

Teraz najlepsza część – powyższy opis aplikacji przepisuję do okna programu ChatGPT i proszę go o wygenerowanie skryptu z prostym interfejsem graficznym. Po wysłaniu wiadomości zaczyna się prawdziwa magia…

Po przesłaniu wiadomości aplikacja wygeneruje gotowy skrypt, który wykona opisane czynności poprzez prosty interfejs graficzny. To jednak nie koniec niespodzianek. Oprócz samego skryptu ChatGPT generuje wyjaśnienie, w którym opisuje z jakich bibliotek korzysta i w jaki sposób skrypt działa. Informuje także o potencjalnych zagrożeniach, których skrypt nie uwzględnia. Z mojej perspektywy to coś niesamowitego.

Opisy elementów kodu

Coś, co absolutnie mnie rozbroiło, to możliwość wprowadzania zmian w wygenerowanym wcześniej kodzie. Mój ulubiony przykład, dzięki któremu poznaję składnię oraz działanie poszczególnych elementów kodu to poproszenie o opisanie kodu komentarzami.

Możliwości są ogromne i ogranicza nas jedynie nasza wyobraźnia. Oczywiście nie można poprosić bota o napisanie nowego systemu operacyjnego czy zaawansowanego programu, ale do sprawdzenia jak działa prosty kod i za co są odpowiedzialne jego elementy narzędzie sprawdza się idealnie.

Test kodu w praktyce

Nie zostaje nic innego jak przerzucenie kodu do pliku, zapisanie jako skrypt Pythona i uruchomienie go w systemie. Aby to zrobić należy otworzyć Edytor Tekstu (np. Notepadqq), wkleić kod i zapisać go w wybranej lokalizacji jako “nazwa_pliku.py”. Zanim jednak zapiszesz plik muszę opisać jedną rzecz. Na początku każdego skryptu należy wskazać interpretatorowi jakich bibliotek powinien użyć do zinterpretowania kodu. W naszym przypadku będzie to python3, więc w pierwszej linii kodu należy dopisać:

#!/usr/bin/env python3

Kod po zapisaniu (u mnie pod nazwą ippinger.py) powinien wyglądać mniej więcej tak:

To jeszcze nie koniec zmian, jakie należy wprowadzić. Domyślnie pliki zapisywane są jako pliki z możliwością otwierania i edycji, nie posiadają możliwości wykonywania instrukcji. Aby to zmienić należy przejść do lokalizacji, w której został zapisany plik, a następnie należy kliknąć w katalogu prawym przyciskiem myszy na wolne pole. Z rozwijanego menu należy wybrać opcję “Otwórz w Terminalu“.

Po wpisaniu polecenia “ls -al” zobaczymy, że plik posiada jedynie uprawnienia odczytu i zapisu, bez możliwości wykonywania.

Aby to zmienić należy wpisać polecenie:

sudo chmod +x ippinger.py

Plik zyska po tym możliwość bycia uruchamianym jako plik wykonywalny.

Zostało juz tylko jedno – uruchomienie skryptu. W tym celu należy wpisać w terminalu polecenie:

./ippinger.py

Możliwe, że w tym momencie w oknie terminala ujrzysz błędy, które wskazują na braki bibliotek. Aby się ich pozbyć wpisz polecenia:

pip install tkinter

Jeśli wszystko wykonałeś poprawnie ponów polecenie “./ippinger.py“, a Twoim oczom powinien ukazać się interfejs graficzny wygenerowany przez skrypt Python.

Oczywiście ciekawość była silniejsza ode mnie i po wprowadzeniu kilku[nastu] zmian w kodzie z pomocą ChatGPT otrzymałem cudowne narzędzie, w którym mogę wybrać pingowanie adresu IP lub domeny, wpisanie liczby pingów, które ma wysłać, a całość okrasiłem logiem StrefaLinux.pl. Wszystko to nie ucząc się programowania w Pythonie nawet przez 5 minut.

Tak jak wspominałem wcześniej z narzędziem ChatGPT jedynym ograniczeniem jest nasza wyobraźnia. Resztę wygeneruje sztuczna inteligencja. W ciągu dwóch wieczorów wygenerowałem najróżniejsze narzędzia sieciowe, narzędzia do zrzutów ekranu, narzędzia wykrywające uruchomienie procesu w systemie i wiele innych. Każde narzędzie przeglądam dokładnie od strony skryptu ucząc się powoli jak działa Python i jak mogę wykorzystać komendy pisząc kod samodzielnie.

Przyszłość programowania

Jeśli zastanawiasz się, czy generatory AI mogą w przyszłości zastąpić programistów, to z dużą dozą pewności odpowiadam “Nie, ale będą mogły im znacząco ułatwić / przyspieszyć pracę”. Podczas wielu prób wygenerowania skryptów spotykałem się z niedziałającym kodem, niekompletnymi skryptami czy po prostu zawieszaniem się narzędzia. Wiele razy AI źle zinterpretowało moje potrzeby i generowało skrypt robiący coś całkiem innego niż zakładałem, że zrobi. Dlatego właśnie nadzór człowieka, żywego programisty, który rozumie co dzieje się w skrypcie będzie zawsze niezbędny.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *