2022-04-16

Myśląc o Pythonie: Zmienne, wartości i funkcja print

Wreszcie! Możemy na serio zacząć naukę, nie bawiąc się w jakieś konfiguracje! No to jedziemy, uruchommy sobie Naszego Pycharma lub inny edytor kodu (jeśli nie wiesz o co chodzi to odsyłam tutaj). I jedziemy z kodem!

Zmienne i ich wartości

Młodość, lekcja matematyki i pamiętne obliczanie X, pamiętasz to? Chyba każdy, z Nas, pamięta iksy i igreki z matematyki - były to tzw. zmienne, czyli znaczki, pod jakimi mogła się kryć dowolna liczba. Tak samo jest ze zmiennymi w programowaniu, są to po prostu nazwy, dzięki którym możemy się odwołać do jakichś konkretnych wartości. Innymi słowy, zmienna to nazwane pudełeczko w pamięci komputera, w którym możemy coś trzymać.

Wizualizacja zmiennych jako pudełka w pamięci komputera

Jak takie pudełko zrobić w Pythonie? Bardzo prosto, wystarczy napisać: x = 1 - przy czym w programowaniu zwracamy uwagę na wielkość znaków, x - to nie jest to samo co X. I tak oto mamy Nasze pudełko w formie zmiennej, przechowywanej w pamięci komputera.

Składnie tworząca zmienną x, w Pythonie

Zmienna to liczba...

No dobrze, wiemy jak stworzyć zmienną, i pewnie domyślamy się także, że może ona przechowywać liczby. Bardzo dobrze, tak trzymać! Natomiast sprawa jest ciekawsza, bowiem zmienne mogą przechowywać liczby, a jakże! Natomiast w komputerze liczby dzielimy podstawowo na całkowite - int (liczby integralne, niepodzielne - integer) i zmiennoprzecinkowo - float (ang. floating point - zmiennoprzecinkowe). Dlaczego tak? No, komputer ma ograniczone zasoby i nie może np. przechowywać liczby o nieskończonej dokładności - musimy go przygotować na to ile przykładowo planujemy mieć w liczbie miejsc po przecinku, tak z grubsza - bowiem trzeba zarezerwować pamięć.

Zmienne przechowujące liczby całkowite (int) i zmiennoprzecinkowe (float)

...jak również tekst

Prócz zmiennych typu (bo tak to profesionalnie nazywamy) int i float, mamy jeszcze przykładowo zmiene typu string (popularnie zwane stringami, czego proszę nie mylić z damską bielizną 😉 ). Co to jest? String, to nic innego jak łańcuch znaków - czyli tekst. Bo tak jak kolejne ogniwa w łańcuchu tworzą kolejne elementy, tak w stringu kolejnymi elementami są litery. Zapiszemy to tak:

tekst = 'to jest jakiś mój tekst'

czyli tworzymy zmienną o nazwie tekst i przypisujemy jej wartość 'to jest jakiś mój tekst' - i tutaj ważna sprawa, koniecznie tekst musi być otoczony znakami ' lub " , dlaczego? Z prostego powodu, komputer musi wiedzieć gdzie jest początek tekstu, a gdzie koniec. Bez tego nie wiedziałby jak potraktować znaki jakie wpisaliśmy. Innymi słowy, by tekst był tekstem i komputer wiedział, że jest tekstem i ma go potraktować jako tekst - zapisujemy ten tekst w specjalnych znakach, które mówią komputerowi (a dokładniej interpreterowi Pythona), "hej! Tu zaczyna się tekst" i "Hej! Tutaj kończy się tekst!". Tak jak robią to ludzie z cytatami 🙂

Po co zmienne?

Dlaczego potrzebne Nam zmienne? Proste: do przechowywania dane, bowiem każdy program musi gdzieś przechowywać dane na jakich operuje. Każdy, nawet najprostszy program składa się z jakichś danych - musi dane gdzieś np. odbierać - od użytkownika, z jakiegoś zewnętrznego źródła - dane musimy w jakichś sposób przechować, musimy je przetwarzać. Dane musimy w końcu wyprowadzić gdzieś na zewnątrz w formie wyniku jakiejś operacji - jakby nie było, każdy program musi dane różnego typu przechowywać w jakiś sposób. I to jest taki temat fundamentalny.

Sprawa skomplikowana - zmienne to referencje

Zmienne natomiast to podstawowy typ przechowywania danych, który w danym momencie przechowuje jedną wartość. I z technicznego punktu widzenia jest to prawda, ale nie do końca. Bowiem, okazuje się, że zmienna nie tyle przechowuje wartość, co wskazuje na tą wartość - jest jakby identyfikatorem, który pozwala się Nam odwołać do wartości np. jeden, będącej gdzieś w pamięci. Czyli tworząc zmienną x = 1, tak naprawdę tworzymy gdzieś w pamięci miejsce przechowujące wartość 1, a także tworzymy zmienną x, która wskazuje na to miejsce.

Jeszcze o tym powiemy, na razie w każdym razie, możemy przyjąć, że mamy zmienną nazwaną x, z wartością jeden: x = 1

Co możemy z taką zmienną robić? No możemy ją po prostu wyświetlić, pisząc w Naszym kodzie instrukcje print z wartością x:

print(x)

Wyświetlenie zmiennej x, za pomocą instrukcji print

Jak widzimy, Naszym oczom ukazała się wartość jeden. Oczywiście Nasza zmienna może mieć inny typ, a co więcej możemy mieć w programie wiele zmiennych (praktycznie nieskończoną liczbę - znaczy tyle na ile pozwalają zasoby komputera).

Różne rodzaje zmiennych w Pythonie, wyświetlane pokolei

Zauważmy także, że kod jest wykonywany z góry na dół, i linia po linii - dlatego też najpierw widzimy wartość zmiennej x, później y, a na końcu tekst.

Więcej o funkcji print

Nasze wyświetlanie funkcją print, nie musi być tak ograniczone - funkcja ta może przyjmować więcej niż jedną wartość na raz. Zobaczmy to na przykładzie poniżej, działając z poprzednim zestawem zmiennych:

print(x,y,tekst)

Funkja print z więcej niż jednym argumentem

Podaliśmy więcej niż jedną zmienną do print, wymieniliśmy nazwy kolejnych zmiennych po przecinku, czyli podaliśmy zmiennej print więcej niż jeden tzw. argument - teraz funkcja print ma trzy argumenty i wyświetla je kolejno, każdy po spacji. Takie jest domyślne zachowanie funkcji print.

Wyrażenia

Zmienne nie muszą też być ustawione na stałe - wartości zmiennych to mogą być dowolne wyrażenia, przykładowo mamy zmienną x=2 i y=3, możemy stworzyć zmienną c = x+y i ją wyświetlić:

Wartość zmiennej jako wyrażenie

I tak otrzymujemy w wartości zmiennej c, wynik sumowania zmiennych x i y, czyli liczbę 5. Jak więc widzimy, możemy dynamicznie wyliczać wartości zmiennych. Można powiedzieć też, że możemy mieć zmienne, których wartością jest wynik ewaluacji jakiegoś wyrażenia.

Kolejność deklaracji

Jak już wspomnieliśmy, kod jest wykonywany linia po linii, zatem kolejność deklaracji zmiennych ma ogromne znaczenie, nie możemy bowiem wyświetlić zmiennej, której jeszcze nie stworzyliśmy. Gdy spróbujemy takiego działania, natychmiast otrzymamy błąd, co można zaobserwować na ilustracji:

Błąd wynikający z próby wyświetlenia zmiennej, której jeszcze nie zadeklarowaliśmy

Widoczny na obrazku błąd wynika z tego, że w pierwszej linii chcemy wyświetlić zmienną o nazwie a, tyle, że deklarujemy ją w linnii następnej, co powoduje błąd - bowiem dla interpretera, w momencie wykonywania funkcji print, zmienna o nazwie a, nie istnieje. Na co wskazuje komunikat "NameError: name 'a' is not definied" - mówiące, że nazwa 'a' nie została zdefiniowana, więc nie mam pojęcia czym jest.

Na zadanie domowe mamy więc naprawić powyższy błąd 😉

4 comments on “Myśląc o Pythonie: Zmienne, wartości i funkcja print”

Dodaj komentarz

linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram