Dzisiaj chciałbym, abyśmy wspólnie wykonali trzy proste programy w Python z wykorzystaniem Mu. W ten sposób nauczymy się zarówno języka programowania, jak i obsługi środowiska Mu.
Oczywiście o Mu pisałem już trochę – możesz przeczytać.
Na początek wyjaśnię podstawowe funkcje przycisków:
* Tryb – służy do zmiany trybu działania Mu; mamy do wyboru kilka trybów, ale w naszych działaniach będziemy wykorzystywali Tryb Python 3
* Nowy, Otwórz, Zapisz – te funkcje chyba nie wymagają opisu
* Wykonuj – ten przycisk uruchamia skrypt, wówczas zmienia się na „Zatrzymaj”
* Debuguj – wówczas uruchamiamy tryb „odpluskiwania” (testowania), widzimy wówczas wszystkie zmienne i ich wartości
* REPL – Tryb wykonywania instrukcji za instrukcją (uruchamia środowisko Jupyter IPython Console)
* Plotter – pozwala na tworzenie aktywnych wykresów danych zmieniających się w czasie – świetna funkcja, której poświęcę inny artykuł
* Sprawdź – to ciekawa funkcja, która pozwala sprawdzić, czy nie popełniliśmy błędu przy pisaniu kodu, czasami też podpowiada dobre praktyki programistyczne (zgodne ze standardem PEP)
Najpierw proste zadanie: mamy 3 zmienne (obiekty) typu znakowego (string), które chcemy wyświetlić jako jeden napis. Kod do tego jest prosty:
napis_1 = „to jest ” napis_2 = „nasz „ napis_3 = „napis.” print( napis_1 + napis_2 + napis_3 )
Proste – prawda? Oto, jak wygląda nasz program uruchamiany w środowisku Mu – krótki film, który nagrałem, aby zobrazować proces uruchamiania skryptów napisanych przez nas.
A teraz zadanie dla chętnych – może spróbujmy dodać linię:
print( napis_1 + 2 * napis_2 + napis_3 )
Wynik jest ciekawy… tak, w Pythonie można mnożyć napisy… z napisami można robić jeszcze ciekawsze rzeczy.
Ponieważ w Pythonie wszystko jest obiektem, zatem i zmienne są obiektami.
Możemy zatem zapisać nasz przykład jeszcze inaczej:
print( napis_1.capitalize() + napis_2 + napis_3 )
lub jeszcze inaczej:
print( napis_1.capitalize() + napis_2.upper() + napis_3 )
Proszę – pamiętaj, aby za każdym razem wykonać „URUCHOM”
Co z tego wynika? Niby nic, ale przypatrzmy się różnym metodom – bo te dziwne funkcje za kropką nazywamy metodami w Pythonie i innych obiektowych językach programowania. Mamy do dyspozycji np.:
.find(znak) .count(znak) .lower() .upper() .swapcase()
Jak ich użyć, aby sprawdzić, co robią, jakie dają wyniki? Możemy do tego celu użyć trybu REPL, a w nim po prostu wykonać kilka instrukcji, potwierdzając za każdym razem klawiszem ENTER. To tryb, gdzie każde nasze polecenie jest od razu wykonywane. Przepatrzmy się filmikowi – nagrałem kilka takich poleceń, aby pokazać, jak działa ten tryb, jak możemy testować składnię Pythona.
A teraz czas na bardziej skomplikowany program – zapytamy użytkownika o imię, a następnie się z nim przywitamy.
imie = input('Podaj swoje imię... ') print('Część ' + imie + ' - Ja mam ksywkę Python...')
Zobaczmy, co się tu dzieje… do zmiennej (obiektu) o nazwie imie „wczytujemy” wartość podaną przez użytkownika z klawiatury – to w podstawie programowej opisane jest jako stosowanie instrukcji wejścia/wyjścia, a konkretnie jest to „wejście” danych do komputera, podczas gdy funkcja print pozwala na „wyjście” danych z komputera, tym razem na ekran monitora.
Zatem mamy zrealizowane treści zgodnie z Podstawą Programową, a o to nam właśnie chodzi.
Teraz trzecie wyzwanie, dodamy do tego wszystkiego różne obliczenia – to również może być zadanie związane z treściami w podstawie programowej.
Pobierzemy, a więc „wczytamy” napis, najlepiej losowy, następnie dwukrotnie zapytamy się o szukane litery/znaki. Następnie zliczymy ilość ich wystąpień w tekście oraz sprawdzimy, na którym miejscu pojawiają się pierwszy raz. To jest przykład wykorzystania metod, które Python udostępnia nam dla zmiennych tekstowych. Przy okazji wprowadzamy dwie funkcje:
str(liczba) – zamienia liczbę całkowitą int na tekst string, a więc pozwala na dodanie tego w funkcji print
len(tekst) – zlicza długość tekstu (uwaga na przyszłość! zlicza długość zmiennej dowolnego typu, także tablic)
tekst = input('Podaj długi tekst: ') szuk_1 = input('A teraz podaj pierwszą szukaną literę: ') szuk_2 = input('A teraz podaj drugą szukaną literę, inną niż pierwsza : ') ile_1 = tekst.count(szuk_1) gdzie_1 = tekst.find(szuk_1) ile_2 = tekst.count(szuk_2) gdzie_2 = tekst.find(szuk_2) print('Twój ciąg znaków liczy ' + str(len(tekst)) + ' znaków.') print('Szukany znak: ' + szuk_1 + ' jest na pierwszej pozycji ' + str(gdzie_1) + ' > ' + str(ile_1) + ' razy.') print('Szukany znak: ' + szuk_2 + ' jest na pierwszej pozycji ' + str(gdzie_2) + ' > ' + str(ile_2) + ' razy.')
Jak widzimy, pewne elementy się powtarzają (w końcu liczymy kilka rzeczy tak samo), i mam nadzieję, że kod jest zrozumiały.
To są moje subiektywne przykłady dla początkujących. Wiem, że zapewne można by lepiej, ładniej, szybciej, krócej, dłużej – inaczej. Dlatego też informatyka i programowanie ma swoją ideę – wolność – wolność tworzenia i dobierania sposobu rozwiązania. Jeśli – czytelniczko/czytelniku, uważasz, że masz lepsze pomysły niż ja na pokazywanie podstaw Pythona – zapraszam, napisz do mnie, założę Ci konto tu i będzie publikować – to otwarte miejsce dla każdej osoby chętnej.
A następnym razem (nie wiem kiedy, bo czasu zbyt wiele nie posiadam) postaram się coś z pętlami, tablicami….
Super samouczek. Proszę o szybki ciąg dalszy.
Dziękuje, super pomocnik, czekam na więcej
pozdrawiam
Bardzo pomocny materiał!
Proszę o więcej. W sam raz żeby od czegoś zacząć w klasie 8. Uczniowie są wymagający. Czekam na cd.
pozdrawiam