Przez lukasz 20 lipca, 2020 w Kurs Python'a dla początkujących

Python – bezpłatny kurs dla początkujących #2, Zmienne

Zmienne są podstawowym konceptem w programowaniu i dotyczą wielu języków – nie tylko Pythona. Służą nam do tego, aby przechować różne informacje niezbędne do działania programu. Wartość zmiennej może być ustawiana w trakcie działania programu, odczytywana i zmieniana.

Mam nadzieję, że to porównanie pomoże Ci zrozumieć je lepiej: możesz myśleć o zmiennych jak o pudełeczkach w których umieszczasz jakąś wartość, aby później z niej skorzystać. Ta wartość, nie może być jednak byle jaka. Zmienne posiadają typy, co znaczy, że wartość którą chcemy przypisać do zmiennej, musi spełniać kryteria danego typu. Python sam rozpoznaje jaki to jest typ.

Poniżej wymieniłem najważniejsze typy w Pythonie:

  • integer – liczba całkowita,
  • float – liczba zmiennoprzecinkowa,
  • bool – typ logiczny, czyli prawda (True) albo fałsz (False),
  • string – tekst, zestaw znaków przedstawiony w cudzysłowach.
# we create variable: age type int
age = 55

# we create variable: receipt type float
receipt = 2.49

# we create variable: is_summer type bool
is_summer = True

# we create variable: name type string
name = 'Fredzio'

# it is a mistake
# Python is unable to recognize the type
# after creating something like this
# our program will not work
nonsense = dsad7sa7dsadsa7

Konwencja nazewnictwa

Zanim przejdziemy do szczegółów, zwróć proszę uwagę na to, jak należy zapisywać nazwy zmiennych. Reguły do których musisz pamiętać to:

  • nazwy zmiennych zapisujemy z małych liter,
  • nazwa zmiennej musi opisywać to, jaką wartość ona ma przechowywać, to znaczy jeżeli chcemy, aby w naszej zmiennej była informacja o wieku, to nazywamy ją po angielsku „age”, a nie na przykład „x” albo „var1” czy jeszcze coś innego. Jeżeli nie będziemy się do tego stosować, to za miesiąc nikt nie będzie miał pojęcia co mieliśmy na myśli pisząc kod i będzie on kompletnie nieczytelny,
  • jeżeli nazwa zmiennej składa się z kilku wyrazów w Pythonie z reguły używa się między nimi _, więc również staraj się tego trzymać.
# correct variable names
city_name = 'Warsaw'
age = 40
favourite_programming_language = 'Python'

# wrong variable names
a = 'Janusz'
SoMeThInG = 14
var1 = 'Laughter is the best medicine'

Staraj się o tym pamiętać i budować w sobie nawyk stosowanie poprawnego nazewnictwa od samego początku. Wielu nawet doświadczonych programistów o tym zapomina, co skutkuje niską jakością kodu i problemami z wprowadzaniem późniejszych zmian.

Komentarze

Tak jak widzisz wyżej, niektóre linie kodu mają na początku znak ‘#’. Oznacza on, że dana linia jest komentarzem i nie ma żadnego wpływu na działanie programu – zostanie po prostu zignorowana. Jest to bardzo przydatne ponieważ w takich komentarzach można umieszczać opisy działania kodu, informacje czy wyjaśnienia.

Liczby (integer i float)

Na zmiennych liczbowych (int i float) możemy wykonać wszystkie operacje znane ze szkoły.

# addition
print(10 + 4)
# result: 14

# subtraction
print(10 - 4)
# result: 6

# multiplication
print(10 * 4)
# result: 40

# division (returns float)
print(10 / 4)
# result: 2.5

# division (returns int)
print(10 // 4)
# result: 2

# modulo operation returns the remainder after division
# so 10 / 4 is 2, and 2 left (this 2 left is the result)
print(10 % 4)
# result: 2

# exponent - 10 to the power of 4
print(10 ** 4)
# result: 10000

Do tych operacji możesz użyć skróconego zapisu, co oznacza dokładnie to samo, co zwykły.

my_number = 10
my_second_number = 5

my_number = my_number + 3
print(my_number)
# result: 13

# it's the same as: my_second_number = my_second_number + 3 but shorter
my_second_number += 3
print(my_second_number)
# result 8

Czasami może okazać się, że będziesz potrzebować wykonać bardziej złożone operacje – w tym celu najprościej użyć “math” modułu. Moduł jest to oddzielny plik z kodem przygotowanym do wykonywania wybranych czynności. Ten konkretny moduł zawiera gotowe funkcje (o funkcjach wspominałem krótko na poprzedniej lekcji) do operacji matematycznych z których możesz skorzystać.

# in order to use math module
# you need to place it at the top of your file
import math

# math in our code is an object
# that means when you type: math.
# you should see all available options you can use

# some examples:

# return the floor of x, the largest integer less than or equal to x.
print(math.floor(2.9))
# result: 2

# return the square root of x.
print(math.sqrt(9))
# result: 3.0

Moduł math posiada dużo wiele przykładów niż te, które wymieniłem wyżej. Szczegóły znajdziesz w dokumentacji: https://docs.python.org/3/library/math.html Nie ma sensu uczyć się ich na pamięć. Postaraj się jedynie zapamiętać, że coś takiego istnieje i że możesz do tego wrócić w przyszłości, jeżeli będziesz potrzebować.

Boolean

Boolean może posiadać tylko jedną z dwóch wartości: True albo False. Jest on bardzo mocno związany z instrukcjami warunkowymi w programie, to znaczy część kodu wykona się tylko wtedy gdy zostanie spełniony jakiś warunek, na przykład: „jeżeli ktoś wpisał prawidłowe hasło (warunek) to zaloguj go do programu” – więcej będziemy o nich mówili na późniejszych lekcjach.

# examples:
python_is_easy = True
sky_is_green = False

String

Typ danych który służy do przechowywania zestawu znaków które zapisujemy w cudzysłowie. Cudzysłów może być pojedynczy czyli ’, lub podwójny czyli „. Poniżej znajdziesz przykłady często wykonywanych na nich akcji.

Często chcemy sprawdzić jak długi jest nasz string – przykładowo możemy chcieć by hasło w naszym serwisie zawierało minimum 8 znaków.

# new variable called: welcome_message
welcome_message = 'hello'

# len() is a build in function which counts
# the number of characters in a string
message_length = len(welcome_message)
print(message_length)
# result: 5

Zdarza się również, że chcemy jak dostać się do części stringa, wyciąć literkę lub część tekstu albo sprawdzić czy tekst zawiera jakiś ciąg znaków. Przykłady jak to zrobić znajdziesz po prawej stronie.

# To get an access to a specific character
# in a string we use []

welcome_message = 'hello'

# in programming we start couting from 0
# it returns the first letter from the string
print(welcome_message[0])
# result: h

# returns the last letter
print(welcome_message[-1])
# result: o

# returns selecter part from the string
print(welcome_message[1:4])
# ell

# check if our string contains 'foo'
# and return boolean type
contains = 'foo' in welcome_message
# check if our string does not contain 'foo'
# and return boolean type
not_contains = 'foo' not in welcome_message
print(contains) # False
print(not_contains) # True

Możemy również chcieć połączyć ze sobą tekst, wystarczy, że wpiszemy wtedy +. Jeżeli łączy się ze sobą sporo zmiennych czasami taki zapis może być mało czytelny. Wtedy warto użyć tak zwanego „formatted stringa” którego oznaczamy pisząc f przed cudzysłowem i wtedy zamiast pisać wszędzie +, to możemy umieszczać zmienne bezpośrednio w tekście otaczając je nawiasem klamrowym (jak na przykładzie poniżej).

# combining strings

welcome_message = 'hello'
name = 'Fredzio'

combined_welcome_message = welcome_message + ' ' + name + '!'
print(combined_welcome_message)
# result: hello Fredzio!

# this is more convenient way to combine the strings
# but it does the same as the example above
# pay attention that you need to place f before quote
combined_welcome_message_v2 = f'{welcome_message} {name}!'
print(combined_welcome_message_v2)
# result: hello Fredzio!

Kolejną ciekawostką jest to, jeżeli stworzysz sobie jakąś zmienną która jest stringiem, to na tej zmiennej możesz wywołać różne wbudowane metody. Metoda jest to właściwie zwykła funkcja jak print(), ale związana z wybranym obiektem (oczywiście co to jest obiekt opowiemy sobie później ;). Aby zobaczyć jakie masz dostępne funkcje na swoim stringu, wpisz nazwę swojej zmiennej i daj kropkę na końcu np. welcome_message. Z popularniejszych metod, możesz zamieniać tekst na wielkie bądź małe litery, szukać czy coś występuje w naszym tekście, albo podmieniać zawartość. Przykłady poniżej.

welcome_message = 'hello my friend'

# transforms our string to upper case
print(welcome_message.upper())
# result: HELLO MY FRIEND

# transforms every first letter in our string to upper case
print(welcome_message.title())
# result: Hello My Friend

# retuns the index where is the letter 'e' in our string
# if it not there it returns -1
print(welcome_message.find('e'))
# result: 1

# converts any letter e to G
print(welcome_message.replace('e', 'G'))
# result: hGllo my friGnd

Ćwiczenie

Tutaj zaczyna się najważniejsza część kursu 🙂 Aby nauczyć się programowania, trzeba siedzieć, programować, próbować i robić swoje programy. Często one zwyczajnie nie działają, mamy z czymś problemy, coś nie działa. Nigdy nie możesz się jednak zrażać! Tak właśnie wygląda prawdziwa nauka! Im więcej wysiłku będzie Cię kosztowało na początku, tym łatwiej będzie Ci później tworzyć programy w codziennym życiu. Dasz sobie radę!

Odpocznij po przeczytaniu tego posta i jak poczujesz się na siłach przejrzyj go jeszcze raz, a potem zrób kilka programów:

  • program 1 – stwórz kilka zmiennych z liczbami: 2.5, 8, 11, 3.49. Wykonaj z nimi różne działania:
    • dodaj je wszystkie do siebie,
    • oblicz z nich pierwiastek,
    • pomnóż razy 4,
    • zaokrąglij wynik i wypisz go za pomocą funkcji print(),
  • program 2 – stwórz zmienne ze swoim imieniem i nazwą miejscowości w której mieszkasz, następnie:
    • połącz je ze sobą w kolejnej zmiennej,
    • stwórz nową zmienną w której będzie znajdowała się, zawartość stworzonego, połączonego stringa, prócz pierwszej i ostatniej litery,
    • sprawdź czy nowy string zawiera literę 'x’ (używając odpowiedniej funkcji),
    • użyj funkcji len() do policzenia ilości znaków. Wynik wypisz w konsoli funkcją print().

Jeżeli masz problem z wykonaniem zadania to się nie martw. Odpowiedź na praktycznie każde pytanie, możesz znaleźć w wyszukiwarce google.com więc postaraj się tam poszukać. Możesz też wrzucić swoje pytanie do komentarza poniżej.

Wow! Dużo tego, ale to w koniec tej lekcji 🙂 Była zdecydowanie najtrudniejsza jak do tej pory. Mnóstwo informacji i nowości. Gratulacje, że udało Ci się ją ukończyć!

Kolejna lekcja będzie jeszcze ciekawsza! Skupimy się na pisaniu różnych programów i nauczymy się przesyłać dane z terminala 🙂

Nie zapomnij polubić stronę na facebooku i zapisać się do newsletter’a aby dostać informację o kolejnych świetnych lekcjach!

Leave a reply

pl_PLPolski