Lekcja 2 - zmienne, typy i proste operacje (notatki)

Zmienna
Zmienna - "etykieta" służąca do oznaczania miejsca gdzie przechowywane są wartości. W ich nazewnictwie: nie używamy polskich znaków, spacji, znaków specjalnych (!, @ itd.) oraz samych cyfr - tylko w kombinacji z literami (ale cyfra nie może być na początku). Mile widziane jest nie używanie dużych liter i rozdzielanie wyrazów podłogą ("_"), ale nie jest to obligatoryjne.
Po zmiennej stawiamy znak równości (rozdzielony spacjami lub nie), po czym następuje przypisana do etykiety wartość, zapisana w cudzysłowie (jeśli to wyraz) lub nawiasie kwadratowym (gdy ciąg liczb). Zgodnie ze wzorem: zmienna = wartość.
PRZYKŁADY
moj_zwierzak = "pies"
mojzwierzak = "pies"
moj_zwierzak="pies"
moj_zwierzak2="pies"
POPRAWNE zapisy
Moj_Zwierzak = "pies"
POPRAWNE, choć nie zaleca się stosowania dużych liter w nazwie zmiennej
moj_zwierzak : "pies"
BŁĄD, ponieważ zamiast znaku równości użyto dwukropka
mój_zwierzak = "pies"
BŁĄD, ponieważ użyto polskich znaków
moj-zwierzak = "pies"
BŁĄD, ponieważ użyto znaku specjalnego [-]
2moj_zwierzak = "pies"
BŁĄD, ponieważ rozpoczęto od liczby
UWAGA! W wartości można używać zarówno dużych liter, spacji, znaków specjalnych jak i polskich znaków (choć w przypadku tych ostatnich musimy się liczyć z tym że nie każdy system odczyta je w jednakowy sposób). Zatem każdy z poniższych zapisów jest poprawny:
moj_zwierzak = "Azor"
moj_zwierzak = "Indiana Jones"
moj_zwierzak = "Ślicznotka!"
W przypadku gdy chcemy użyć znaku cudzysłowie w tekście wydrukowanym konieczne jest zastosowanie pojedynczego cudzysłowie:
zmienna2 = '"Lubie" szpinak'
print(zmienna2)
Wyświetli się: "Lubie" szpinak
Gdy chcemy aby tekst wyświetlał się w kolejnych linijkach, a nie ciągiem musimy rozdzielić go przy pomocy znaku \n lub stosując potrójny cudzysłów na początku i końcu frazy.
print("Stoi na stacji lokomotywa, \nCiężka, ogromna i pot z niej spływa:\nTłusta oliwa")
print("""Stoi na stacji lokomotywa,
Ciężka, ogromna i pot z niej spływa
Tłusta oliwa""")
Do jednej wartości można przypisać kilka zmiennych np.
moj_zwierzak = "pies"
najwiekszy_rozrabiaka = moj_zwierzak
Istnieje też możliwość "przeklejenia" zmiennej na inną wartość. Wtedy będzie wyświetlana ostatnia wartość, jaką przypisano do nazwy. Należy jednak pamiętać, że python czyta polecenia od góry do dołu, od lewej do prawej. Zatem jeśli nowa wartość przypisana do zmiennej będzie się znajdowała poniżej komunikatu o wydruku, otrzymamy poprzednią przypisaną do zmiennej wartość.
PRZYKŁADY

Jaką wartość wydrukuje python? Nemo, ponieważ ostatnią przypisaną do zmiennej [bohater_filmu] wartością jest ta przypisana do zmiennej rybka.

Jaką wartość wydrukuje python? Luke Skywalker, ponieważ czyta po kolei, a zatem do zmiennej bohater_fantastyka przypisuje znajdującą się powyżej wartość. Aby wyświetlało się Aragorn dane z wiersza 6, powinny być ponad wierszem 5.
Istnieje możliwość wprowadzania danych przez użytkownika. W tym celu po znaku równości dajemy polecenie input(). W nawiasach można podać polecenie dla użytkownika, choć nie jest to obligatoryjne. Zgodnie ze wzorem:
moj_zwierzak = input("Podaj imię swojego zwierzaka: ")
UWAGA! Jeśli chcemy dodać w programie komentarz, którego pyton nie będzie "widział" należy na początku wersu dać hasztag #. Aby dezaktywować większą ilość wierszy w ten sposób należy zaznaczyć wersy i nacisnąć CTRL i /.
Typy
Istnieją różne rodzaje wartości przypisywanych do zmiennej, są to:
1) teksty (zawsze podawane w cudzysłowie) – str (string)
bohater filmu = "Nemo"
moj_zwierzak = input("Podaj imię swojego zwierzaka: ")
2) liczby całkowite np. 1, 2 lub ciągi liczb, zwane listami (zapisywane w nawiasie kwadratowym) – int (integer)
moja_liczba = 1
Typ niemodyfikowalny, nie możemy uzupełnić zbioru o inne wartości
moja_liczba = [1, 2]
Typ modyfikowalny, możemy dodać inne wartości do listy
3) liczby wymierne / zmiennoprzecinkowe czyli ułamki (zapisywane zgodnie z angielską nomenklaturą, a zatem 1.2 nie 1,2) – float (floating point number)
moja_liczba = 1.2
UWAGA! Jeżeli zapiszemy liczbę w cudzysłowie, zostanie potraktowana jako wyraz.
print("1" + "1")
BŁĄD Wynik 11, bo pyton traktuje jedynki jaki wyrazy.
print(1+1)
POPRAWNE Wynik 2, bo postrzega wartość liczbową jedynek.
Podobnie potraktowane zostaną cyfry wpisane po input, dlatego może okazać się konieczna konwersja:
liczba_wprowadzona = input("Podaj liczbę: ")
liczba_przekonwertowana = float(liczba_wprowadzona)
print(liczba_przekonwertowana + 2)
Jeżeli pominiemy konwersję, pokaże nam się błąd, ponieważ nie dodaje się liczb i wyrazów (więcej o tym w sekcji operacje).
Operacje
Dodawanie [+]
print(1+1)
print("Mój" + "pies")
Wyświetli się: Mójpies. Dodawanie podobnie jak mnożenie możemy wykonywać także na znakach, nie tylko cyfrach.
print("Mój" + " " + "pies")
Wyświetli się: Mój pies
print("Mam" + 2 + "psy")
BŁĄD! Nie wolno łączyć w tej samej operacji różnych typów.
Odejmowanie [-]
print(2-1)
Mnożenie [*]
print(1*3)
print("ha" * 3)
Wyświetli się: hahaha. Mnożenie możemy wykonywać także na znakach, nie tylko cyfrach, nawet w jednej formule.
Dzielenie [/]
print(12/6)
Potęga [**]
print(3**2)
Wyświetli się: 9. Najpierw zapisujemy liczbę, potem do jakiej potęgi ma być podniesiona.
Reszta z dzielenia tzw. modulo [%]
print(11%2)
Wyświetli się: 1. W ten sposób można najszybciej określić czy liczba jest parzysta (gdy wynik dzielenia przez 2 to 0).
Ćwiczenie
Stwórz kalkulator BMI
wzrost = float(input("Podaj swój wzrost w metrach: "))
waga = float(input("Podaj swoją wagę w kilogramach: "))
BMI = waga/(wzrost**2)
print(f"Twoje BMI to {BMI}")
Podpowiedź: Jeśli chcesz w tekst wpisać wartość zmiennej dodajesz tzw. f-stringa, czyli f"Twój tekst {zmienna}".