Jason. Cała informatyka w jednym miejscu!

Witam wszystkich na pierwszym prawdziwym wpisie na temat języka Python. Na sam początek będą same podstawy, tak żeby zachęcić każdego do rozpoczęcia przyswajania wiedzy. Operatory w Pythonie mogą pochwalić się nieco większą gamą, bo wśród nich znajdziecie takie, których nie ma w większości języków programowania. Ponadto, są również zapisane w sposób mniej powszechny. Zatem zaprezentuję Wam dwa rodzaje operatorów: arytmetyczne i logiczne. Zapraszam!

OPERATORY W PYTHONIE Z PODZIAŁEM NA RODZAJE

Pozwoliłem sobie podzielić zagadnienie na dwie sekcje.

OPERATORY ARYTMETYCZNE

Język Python, jak każdy inny język, wspiera klasyczne dodawanie, odejmowanie, mnożenie i dzielenie. Jest jednak więcej do zaprezentowania, gdyż są również takie, których nie ma w innych językach wysokiego poziomu. Co więcej, niektóre z tych "klasycznych" umożliwiają dokonanie pewnych operacji niekonwencjonalnych. Pójdziemy sobie po kolei.

DODAWANIE (+)

Standardowy znak "plusika" pozwala na sumę podanych liczb w przypadku, gdy wszystkie argumenty są liczbami całkowitymi (ewentualnie zmiennoprzecinkowymi). Efekt może pojawić się w różnych formach:

  1. Jeśli wszystkie argumenty są liczbami całkowitymi, zwracana jest suma w postaci liczby całkowitej.
  2. Jeśli którykolwiek z argumentów jest liczbą zmiennoprzecinkową, a cała reszta jest liczbami całkowitymi, otrzymujemy sumę w postaci liczby zmiennoprzecinkowej.
  3. Jeśli wszystkie argumenty są łańcuchami znaków, dochodzi do konkatenacji łańcuchów, czyli połączenia wszystkich łańcuchów znaków w jeden.
  4. Jeśli typy danych argumentów są pomieszane, próba ich dodania zakończy się zgłoszeniem wyjątku.
Dodawanie liczb całkowitych w Pythonie Dodawanie liczb zmiennoprzecinkowych Konkatenacja łańcuchów

Operator dodawania pozwala nie tylko na sumowanie wielu liczb, ale również na połączenie (skonkatenowanie) łańcuchów znaków.

Niektóre operatory w Pythonie mają "rozszerzone" pole możliwości. Dodawanie jest jednym z nich.

ODEJMOWANIE (-)

"Minus" to symbol różnicy wszystkich podanych liczb lub też zmiany znaku liczby na przeciwny (jeśli odgrywa rolę operatora jednoargumentowego, unarnego). W tym przypadku nie ma żadnych ekskluzywnych cech. Odejmowanie nie wpływa w żaden sposób na łańcuchy, więc wszelkie próby operowania na łańcuchach skończą się zgłoszeniem wyjątku.

  1. Gdy wszystkie argumenty są liczbami całkowitymi, otrzymujemy zwrot różnicy jako liczba całkowita.
  2. Gdy którykolwiek z argumentów jest liczbą zmiennoprzecinkową, a cała reszta jest liczbami całkowitymi, zwracana jest różnica jako liczba zmiennoprzecinkowa.
Odejmowanie liczb całkowitych w Pythonie

Operator odejmowania wykonuje jedynie klasyczne odejmowanie od siebie liczb całkowitych i zmiennoprzecinkowych.

MNOŻENIE (*)

Tak zwana "gwiazdka" (choć tak naprawdę to "asterysk") to wszystkim znany znak oznaczający iloczyn. Tu jest dodatkowe zastosowanie! Oprócz klasycznego mnożenia ze sobą liczb i zwrócenia liczby całkowitej lub zmiennoprzecinkowej (w zależności od argumentów), można również "przemnożyć" podany łańcuch znaków i tego nie znajdziecie w żadnym innym języku programowania! Stąd operatory w Pythonie mają kolejną niespotykaną funkcję i jest ona zawarta właśnie w znaku mnożenia.

  1. Następuje zwrot iloczynu w postaci liczby całkowitej gdy wszystkie podane argumenty są liczbami całkowitymi.
  2. Otrzymamy iloczyn w postaci liczby zmiennoprzecinkowej w sytuacji, gdy jeden lub więcej argumentów jest liczbami zmiennoprzecinkowymi, a cała reszta jest liczbami całkowitymi.
  3. Tylko w Pythonie dostępna jest operacja przemnożenia łańcucha znaków przez liczbę, w efekcie czego otrzymamy na wyjściu podany łańcuch napisany podaną liczbę razy, znak po znaku.
  4. Możliwe jest też "sklonowanie" zawartości listy przy użyciu znaku mnożenia, co również jest dostępne tylko w Pythonie.
Mnożenie liczb całkowitych w języku Python Mnożenie łańcuchów znaków w Pythonie

Mnożenie w Pythonie ma kilka postaci. Oprócz zwykłego mnożenia liczb przez siebie, umożliwia również "klonowanie" danych w łańcuchu i w liście.

DZIELENIE ZMIENNOPRZECINKOWE (/)

Ukośnik czyli "slash", reprezentuje znak dzielenia. W innych językach programowania dochodzi do pewnej dezorientacji co do oczekiwanego wyniku. Na przykład w języku C dochodzi do "obcinania" części ułamkowej, jeżeli zarówno dzielna jak i dzielnik, są liczbami całkowitymi, a w Javie jest ścisły rygor "trzymania się" zwracania zawsze liczby zmiennoprzecinkowej na mocy tzw. silnej typizacji. W Pythonie rozstrzygnięto to inaczej. Pojedynczy "slash" oznacza otrzymanie WYŁĄCZNIE liczby zmiennoprzecinkowej. Aby otrzymać liczbę całkowitą na wyjściu, stosuje się "podwójny" ukośnik opisany poniżej.

  1. Przy podaniu argumentów liczbowych niezależnie od tego, czy całkowite, czy zmiennoprzecinkowe, otrzymamy na wejściu zawsze iloraz zmiennoprzecinkowy.
  2. Dzielenie przez zero skutkuje zgłoszeniem wyjątku!
Dzielenie zmiennoprzecinkowe

Iloraz w Pythonie odbywa się poprzez skorzystanie z pojedynczego ukośnika, gdy chcemy żeby wynik był w postaci zmiennoprzecinkowej.

Tak się kończy pierwsza część artykułu. Teraz pokażę coś wyjątkowego! Poniższe operatory w Pythonie są unikatowe, czyli nie znajdziecie ich we wszystkich językach programowania, przynajmniej przygotowanych od razu "na tacy".

DZIELENIE CAŁKOWITE (//)

Podwójny ukośnik bez spacji umożliwia skonwertowanie oczekiwanej wartości wyjściowej na liczbę całkowitą. Pamiętajcie o tym, że dochodzi wówczas do "obcięcia" ułamka, a nie jego zaokrąglenia, stąd (5 // 2) da na wyjściu 2, a nie 3, jak po zaokrągleniu 2.5.

Dzielenie całkowite w Pythonie

Dzielenie bez części ułamkowej zostało "przydzielone" do osobnego operatora w postaci dwóch ukośników bez spacji celem rozróżnienia od dzielenia zwykłego.

POTĘGOWANIE (**)

Drugi unikatowy operator to potęgowanie rozpoznawalne jako dwa asteryski ustawione obok siebie. To znaczy, że w tym języku możecie ominąć pętlę "for" i spotęgować sobie dowolną liczbę posługując się przyjemnym skrótem :D.

Potęgowanie w Pythonie

Potęgowanie może zostać wykonane w Pythonie poprzez operator dwóch asterysków ustawionych obok siebie bez spacji.

OPERATORY LOGICZNE

A teraz prezentacja operatorów logicznych. Operatory logiczne w Pythonie są wykorzystywane w instrukcjach warunkowych, a ich rezultaty mogą być przechowywane w zmiennych boolowskich. W nim jest o tyle fajnie, że zamiast osobnej partii kombinacji znaków, stosowane są słowa kluczowe. Operatory w Pythonie tak mocno odbiegają od większości standardów widocznych u innych języków programowania, że zwracam na to szczególną uwagę!

KONIUNKCJA (AND)

Koniunkcja to zdanie złożone będące prawdziwym wtedy i tylko wtedy, gdy wszystkie zdania (warunki) są prawdziwe. Bez względu na to, czy znajduje się jedno, dwa czy osiem warunków, WSZYSTKIE BEZ WYJĄTKU muszą być spełnione, aby koniunkcję uznać za prawdziwą. W dowolnym programie Pythona rozpoznamy koniunkcję po słowie kluczowym "and" (oraz).

ALTERNATYWA (OR)

Alternatywa jest logicznym zdaniem polegającym na tym, że wystarczy spełnienie dowolnego z warunków (zdań), żeby móc uznać je prawdziwe. Słowo kluczowe "or" (lub / albo) - to wszystko, żebyście zidentyfikowali alternatywę w kodzie.

NEGACJA (NOT)

Jednoargumentowy operator logiczny pozwala na zamianę wyniku zdania na przeciwny (zanegowanie). W praktyce oznacza to tyle, że każde zdanie złożone zostaje "odwrócone" i wówczas każda "prawda" jest "fałszem", a każdy "fałsz" jest "prawdą". W języku angielskim jest to słówko "not" (nie) i po takim samym słowie odnajdziecie w kodzie negację bez problemu.

Operatory logiczne w Pythonie

W Pythonie występują trzy operatory logiczne: AND (koniunkcja), OR (alternatywa) oraz NOT (negacja).

Nie zdziwcie się jeśli nie znajdziecie operatora XOR, czyli alternatywy wykluczającej. W Pythonie nie ma czegoś takiego w przeciwieństwie do innych języków. Być może dlatego, że z reguły jest rzadko wykorzystywane, ale to są tylko moje gdybania.


To jest koniec zaznajamiania się z niniejszym wątkiem. Operatory w Pythonie są zdecydowanie bardziej rozbudowane w stronę zwiększenia wygody użytkowania. Zapraszam jutro po kolejną porcję wiedzy ;)!

PODOBNE ARTYKUŁY