Przez lukasz 2 sierpnia, 2020 w Kurs Python'a dla początkujących

Python – bezpłatny kurs dla początkujących #4, Instrukcje warunkowe

Hej! Czasami chcemy, aby jakaś cześć naszego kodu uruchamiała się tylko i wyłącznie wtedy kiedy zostanie spełniony jakiś warunek. Jest to super przydatne, ponieważ dzięki temu możemy dodać logikę.

Chcemy pobrać imię i następnie jeżeli składa się z mniej niż 6 liter, wypiszemy informację, że jest krótkie, a jeżeli ma 6 lub więcej, to nie zrobimy nic.

Skorzystamy do tego z funkcji len() która policzy nam ilość liter – czyli na przykład len(’John’) zwróci wynik 4.

# we ask for the name
name = input('Your name: ')

# if name has less than 6 letters we print a message
if len(name) < 6:
    # pay attention to the indentation!
    # this code is in the 'if' scope
    print('Your name is short')

# code below is outside if scope
print('program finished')

Warunki

Istotnym wątkiem przy korzystaniu z if’a są operatory. Użycie ich zwraca wartość boolean, czyli:

  • True – wtedy to co znajduje się w środku if’a zostanie wykonane,
  • False – nie zostanie wykonane.
WarunekZnaczenie
>większy
>=większy lub równy
<mniejszy
<=mniejszy lub równy
==równy
<=różny

Operacje boolowskie - and, or, not

Warunków może być wiele, możemy je łączyć lub odwracać ich wartość zależnie od potrzeb. Do dyspozycji mamy:

  • and – łączy warunki, oba z nich muszą być prawdziwe (True), aby to co znajduje się w środku się wykonało,
  • or – łączy warunki, tylko jeden z nich musi być prawdziwy, inne mogą być False,
  • not negacja, odwraca wartość warunku, jeżeli mieliśmy False to otrzymamy True i odwrotnie.

Teraz kilka przykładów.

# temperature in celsius
temperature = 30
# chance for rain
rain_chance = 20

# both cases needs to be True
if temperature > 25 and rain_chance > 50:
    # remember about nesting!
    print('1. It is hot and it will rain')
# abbreviation of: else if
# only one of these cases needs to be True
# the second one can be False
elif temperature > 25 or rain_chance > 50:
    print('2. It is hot or it may rain')
# if none of our cases above was executed
# the code below else will run
else:
    # notice that I used \ sign to escape the end of sting
    # it allows to continue writing more texr after won
    print('3. It is not hot and probably won\'t rain')

# it's outside the scope and will always be printed
print('Program has finished')

Ternary operator

Warto wspomnieć o tak zwanym operator trójskładnikowy. Jest często spotykany skrót, który pozwala na warunku w jednej linii, zamiast pisania if-else zajmującego się co najmniej kilka, co czyni nasz kod zwyczajnie krótszym.

# value_if_true if condition else value_if_false

is_day = True
state = 'day' if is_day else 'night'

Ćwiczenie

Dzisiejsze ćwiczenia będziemy pisać wspólnie

Zadanie polega na stworzeniu prostego kalkulatora, który obsługuje dodawanie, odejmowanie, dzielenie i mnożenie. Typ operacji jak i liczby pobierane mają być za pomocą funkcji input(). Jeżeli wpisana zostanie nieprawidłowa akcja, to zostanie wyświetlona informacja, że nie można jej wykonać.

Zacznę, a Twoim zadaniem będzie dokończenie funkcjonalności. Pamiętaj, że jeżeli chcesz, to możesz też go oczywiście rozbudować jeszcze bardziej.

# Calculator

print('Please write the action you want to execute: +, -, * or /')
action = input('Action: ')

# we will use it for validation
allowed_actions = '+-*/'

# very simple validation to check if value we received may be used
# pay attention that we can receive also value like +- which also doesn't make sense
if action not in allowed_actions:
    print('Unknown action, program is terminated')
    # we finish our script here and code below won't be executed
    quit()

number_1 = int(input('Number 1: '))
number_2 = int(input('Number 2: '))

if action == '+':
    print(f'Result: {number_1 + number_2}')

Po tej lekcji musisz wiedzieć, jak zaimplementować logikę w kodzie przy użyciu różnych operatorów. Twój kalkulator również powinien być skończony 😉

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

Leave a reply

pl_PLPolski