PyTraning 2.0 #3: Miłość, Pyhon, logika i stringi

29

Transcript of PyTraning 2.0 #3: Miłość, Pyhon, logika i stringi

Page 1: PyTraning 2.0 #3: Miłość, Pyhon, logika i stringi
Page 2: PyTraning 2.0 #3: Miłość, Pyhon, logika i stringi

PyTraning2.0 #3:Miłość, Pyhon, logika i stringi

if, or, and, is, not, in

Page 3: PyTraning 2.0 #3: Miłość, Pyhon, logika i stringi

Porównanie

Porównanie to zestawienie wskazujące na podobieństwo pod jakimś względem dwóch rzeczy,

zmiennych etc.

Nas interesuje wynik tego porównania.

Page 4: PyTraning 2.0 #3: Miłość, Pyhon, logika i stringi

Porównanie>>> 2 > 1>>> 2 < 1>>> 1 == 2>>> 1 == 1.0>>> 10 >= 10>>> 13 <= 1 + 3>>> -1 != 0

Page 5: PyTraning 2.0 #3: Miłość, Pyhon, logika i stringi

Porównanie

>>> x = 5>>> x < 10>>> 2 * x > x>>> (x < 10) and (2*x > x)>>> (x != 5) and (x != 4)>>> (x != 5) and (x != 4) or (x == 5)

Page 6: PyTraning 2.0 #3: Miłość, Pyhon, logika i stringi

Ćwiczenie: co Wąż wie o miłości ☺

>>> import this>>> love = this>>> love is this>>> love is not True or False>>> love is love

Page 7: PyTraning 2.0 #3: Miłość, Pyhon, logika i stringi

Porównanie - podsumowanieW Pythonie możemy użyć następujących operatorów do porównań:

==is!=

not>=<=In

Oraz do ich łączenia:andor

Page 8: PyTraning 2.0 #3: Miłość, Pyhon, logika i stringi

Warunkowość

Składnia:if WARUNEK:zrob_cos_tam()

Przykład:if 2 > 1:print("OK")

Page 9: PyTraning 2.0 #3: Miłość, Pyhon, logika i stringi

Indentacja !

ERROR !IndentationError: expected an indented block

Page 10: PyTraning 2.0 #3: Miłość, Pyhon, logika i stringi

Indentacja - wcięcia

Składnia:if WARUNEK:

zrob_cos_tam()Przykład:

if 2 > 1:print("OK")

Page 11: PyTraning 2.0 #3: Miłość, Pyhon, logika i stringi

Warunkowość – jeśli nie

Składnia:if WARUNEK:

zrob_cos_tam()else:

zrob_coś_innego()

Przykład:if 2 > 1:print("OK")else:print(“FOCH”)

Page 12: PyTraning 2.0 #3: Miłość, Pyhon, logika i stringi

Warunkowość – jeśli coś innego

Składnia:if WARUNEK:

zrob_cos_tam()elif WARUNEK_2:

zrob_cos_tam_2()else:

zrob_cos_innego()

Przykład:if x > 1:print("OK")elif x < 1:print(“Och”)else:print(“FOCH”)

Page 13: PyTraning 2.0 #3: Miłość, Pyhon, logika i stringi

Zadanie: Python dietetyk – BMI 2

Wykorzystując kod z poprzednich zajęć, napisz listę warunków, która określi stan użytkownika zgodnie z poniższą tabelką:

BMI OCENA< 18,5 niedowaga

18,5 – 24,99 norma

25,0 – 29,99 nadwaga

≥ 30,0 otyłość

Page 14: PyTraning 2.0 #3: Miłość, Pyhon, logika i stringi

BMI 2 - Rozwiązanieheight = float(input("Enter your height in meters:"))weight = float(input("Enter your weight in kilograms:”))bmi = weight / height**2 # Calculate BMI

Page 15: PyTraning 2.0 #3: Miłość, Pyhon, logika i stringi

BMI 2 - Rozwiązanieheight = float(input("Enter your height in meters:"))weight = float(input("Enter your weight in kilograms:”))bmi = weight / height**2 # Calculate BMI

if bmi < 18.5: print(”niedowaga")elif bmi < 25.0: print(”norma")elif bmi < 30.0: print(”nadwaga")else: print(”otylosc")

Page 16: PyTraning 2.0 #3: Miłość, Pyhon, logika i stringi

Zadanie: Python dietetyk – BMI 3

Wykorzystując kod z poprzedniego zadania, dodaj określenie wyniku na podstawie płci użytkownikaKobiety:Mężczyźni:

BMI OCENA< 18,5 Niedowaga

18,5 – 22,49 norma

22,50 – 27,49 nadwaga

≥ 27,50 otyłość

BMI OCENA< 20 Niedowaga

20 – 24,99 norma

25,0 – 29,99 nadwaga

≥ 30,0 otyłość

Page 17: PyTraning 2.0 #3: Miłość, Pyhon, logika i stringi

BMI 3 - Rozwiązanieheight = float(input("Enter your height in meters:"))weight = float(input("Enter your weight in kilograms:”))sex = input(‘podaj swoja plec – m/k’)bmi = weight / height**2 # Calculate BMI

if (bmi < 18.5 and sex == ‘k’) or (bmi < 20 and sex == ‘m’): print(”niedowaga")elif (bmi < 22,5 and sex == ‘k’) or (bmi < 25 and sex == ‘m’): print(”norma")elif (bmi < 27,5 and sex == ‘k’) or (bmi < 30 and sex == ‘m’): print(”nadwaga")else: print(”otylosc")

Page 18: PyTraning 2.0 #3: Miłość, Pyhon, logika i stringi

Formatowanie stringów

Składnia:„{}”.format(zmienna)Przykład:print(„Twoja waga wynosi {}”.format(waga))

print(„{} * {} = {}”.format(2, 2, wynik))

Page 19: PyTraning 2.0 #3: Miłość, Pyhon, logika i stringi

Zadanie: Python dietetyk – BMI 4

Zmodyfikuj poprzedni skrypt do liczenia BMI, aby wyświetlał odpowiedź w taki sposób:

>>> “Przy wadze 80kg i wzroście 185cm Twoje BMI wynosi 24,5, więc mieścisz się w normie.”>>> “Przy wadze 50kg i wzroście 185cm Twoje BMI wynosi 14,5, więc musisz zacząć jeść.”

Page 20: PyTraning 2.0 #3: Miłość, Pyhon, logika i stringi

BMI 4 - Rozwiązanieheight = float(input("Enter your height in meters:"))weight = float(input("Enter your weight in kilograms:”))

sex = input(‘podaj swoja plec – m/k’)bmi = weight / height**2 # Calculate BMIresp = “Przy wadze {}kg i wzroście {}cm Twoje BMI wynosi {} więc

“.format(weight, height, bmi)

if (bmi < 18.5 and sex == ‘k’) or (bmi < 20 and sex == ‘m’): print(resp + ”masz niedowage, zacznij jesc")elif (bmi < 22,5 and sex == ‘k’) or (bmi < 25 and sex == ‘m’): print(resp + ”jestes w normie”)elif (bmi < 27,5 and sex == ‘k’) or (bmi < 30 and sex == ‘m’): print(”{} masz nadwage, jedz troche mniej”.format(resp))else: print(“{} jesteś otyły, udaj się do lekarza ☹”. format(resp))

Page 21: PyTraning 2.0 #3: Miłość, Pyhon, logika i stringi

Trolle

Dobrze, ale co się stanie, jeśli użytkownik:1. Poda inną literkę niż M lub K ?2. Co jeśli poda wielką literę zamiast małej?3. Co jeśli poda słownie wzrost a nie cyfrą ?

Page 22: PyTraning 2.0 #3: Miłość, Pyhon, logika i stringi

Metody

Metoda – to funkcja obiektu. Z reguły użyteczna tylko dla tego konkretnego obiektu. W Pythonie wywołujemy ją “bezpośrednio” na obiekcie, np:

>>> ‘test’.upper()>>> text = ‘cos ciekawego’>>> text.title()

Page 23: PyTraning 2.0 #3: Miłość, Pyhon, logika i stringi

Metody - StringiModyfikujące:capitalize()count(str)find(str)lower()replace(old, new)rfind() strip([chars]) swapcase() title()upper()

Sprawdzające:endswith(str)isalnum() isalpha() isdigit() islower()isnumeric() isspace()istitle()isupper() startswith(str)

Page 24: PyTraning 2.0 #3: Miłość, Pyhon, logika i stringi

Metody - StringiModyfikujące:capitalize()count(str)find(str) lower()replace(old, new)rfind(str) strip([chars]) swapcase() title()upper()

Sprawdzające:endswith(str)) isalnum() isalpha() isdigit() islower() isnumeric() isspace() istitle()isupper() startswith(str)>>> text = ‘ala ma kota’

>>> text.upper()>>> text.replace(‘l’, ‘ni’)>>> text.strip(‘a’)

>>> text = ‘ala ma kota’>>> text.startswith(‘ala’)>>> text.endswith(‘ala’)>>> text.isalpha()

Page 25: PyTraning 2.0 #3: Miłość, Pyhon, logika i stringi

Co jeszcze można zrobić ze stringamiOprócz wywoływania na nich metod, łączenia (+), czy mnożenia przez liczby, możemy jeszcze je ciąć na różne sposoby.Ważne: komputery liczą od zera!>>> text = “ala ma kota”>>> text[0] - string[int]>>> text[2:] - string[int:]>>> text[:5] - string[:int]>>> text[3:7] - string[int:int]>>> text[::2] - stirng[::int]>>> text[::-1] - stirng[::int]

Page 26: PyTraning 2.0 #3: Miłość, Pyhon, logika i stringi

BMI 5: antytroll edition

Naszą aplikację do liczenia BMI uodpornij na złośliwych użytkowników:- Sprawdź, czy waga i wzrost są liczbami i czy są one

większe od 0- Zabezpiecz aplikacje przed podaniem złej literki oraz

podaniem wielkiej zamiast małej.- Sprawdź, czy możesz popsuć swoja aplikację i pochwal

się jak można ją zabezpieczyć.

Page 27: PyTraning 2.0 #3: Miłość, Pyhon, logika i stringi

ZADANIE 5: Kalkulator

Napisz kalkulator, który pobiera dwie liczby i wykonuje na nich operację podaną przez użytkownika(*, +, -, /). Wynik wypisz w przyjemnej dla oka formie przykład:

>>> ’Podaj Pierwsza cyfre: '10>>> ’Podaj dzielanie (+, -, *, /): '+>>> ’Podaj druga cyfre: ‘5'10 + 5 = 15'

Page 28: PyTraning 2.0 #3: Miłość, Pyhon, logika i stringi

ZADANIE 5 rozwiazanieliczba_1 = int(input(‘Podaj pierwsza cyfre: ‘))dzialanie = (input(‘Podaj dzielanie (+, -, *, /): ‘)liczba_2 = int(input(‘Podaj druga cyfre: ‘))

if dzialanie == ‘+’: wynik = liczba_1 + liczba_2 elif dzialanie == ‘*’: wynik = liczba_1 * liczba_2 dzialanie == ‘-’: wynik = liczba_1 - liczba_2else: wynik = liczba_1 / liczba_2

print(‘{} {} {} = {}’.format(liczba_1, dzialanie, liczba_2, wynik))

Page 29: PyTraning 2.0 #3: Miłość, Pyhon, logika i stringi