Zajęcia Python III nr 3 - notatki

Zajęcia Python III nr 3 - notatki
Photo by David Clode / Unsplash



1. Warunkowanie w Pythonie, logika

Jakie porównania (w formie pytania zamkniętego) wykonujemy w Pythonie:

  • pytanie czy coś jest równe
==
  • czy coś jest nierówne
!=
  • czy coś jest większe
>
  • czy jest większe lub równe
>=
  • czy jest mniejsze
<
  • czy jest mniejsze lub równe
<=

W naszej wiki: https://wiki.robisz.to/books/python/page/podejmowanie-decyzji

  1. Operatory logiczne

Przy korzystaniu z wartości logicznych możemy posługiwać sie dodatkowo operatorami.

  • AND - jeżeli choć jeden z parametrów jest fałszem, to and zwróci nam fałsz
  • OR - jeżeli choć jeden z parametrów będzie prawdą to or zwróci nam prawdę
  • NOT - odwraca nam wartość logiczną (czyli np. prawdę zamienia w fałsz) wartość

Istnieje kolejność działań przy operatorach logicznych. Najpierw rozstrzygany jest operator not, potem and i na końcu or.


WARUNKI

  • if - jeżeli
  • elif - jeśli nie to
  • else - wtedy i tylko wtedy

Przykład warunku i bloków kodu:

wiek = int(input("Podaj swój wiek: ")

if wiek < 18
    print("Jesteś niepełnoletni/-a)")
    print("Potrzebujesz zgody opiekuna/-ki na korzystanie z naszego serwisu.")
    print("*********")
    zgoda = input("Czy masz zgodę? t/n: ")
    if zgoda == "t"
        print("Dziękuję, miłego korzystania z aplikacji")

print("Koniec programu.")

Warto zwrócić uwagę na wcięcia. Jeżeli warunek w danym wcięciu nie został spełniony, Python może opuścić tą linijkę kodu. Wcięcie pokazuje Pythonowi, że może wykonywać pewne instrukcje tylko w przypadku gdy jakiś warunek zostanie spełniony i pomijać gdy nie jest.

Dzięki wcięciom Python wie co jest blokiem kodu. Kolejne bloki mogą być zagjnieżdżone - może być więcej takich wcięć jedno w drugim, do tworzenia bardziej skomplikowanych elementów.

Warunki można używać równocześnie. Przykład:

wiek = int(input("Podaj wiek: "))

if wiek < 18:
    print("Jesteś niepełnoletni/-a")
    print("Potrzebujesz zgody opiekuna/-ki na korzystanie z naszego serwisu.")
    zgoda = input("Czy masz zgodę? t/n: ")
    if zgoda == "t":
        print("Dziękuję, miłego korzystania z aplikacji.")
elif wiek > 70:
    print("Nasz serwis jest dedykowany dla osób poniżej 70 lat.")
    zgoda1 = input("Czy na pewno chcesz kontynuować? t/n: ")
    if zgoda1 == "t":
        print("Dziękuję, miłego korzystania z aplikacji.")
else:
    print("Witamy w naszym serwisie!")

print("Koniec programu.")

Możemy używać wielu warunków elif, co oszczędza pracy komputerowi:


skrót programistyczny - linijka 61 i 62 mają takie same znaczenie w tym przypadku.

Wbudowane funkcje zwiemy metodami. Przykład, split (który dzieli tekst na osobne wyrazy), a także len (który zlicza elementy w kolekcji)

tekst_uzytkownika = input("Wpisz tekst: ")
podzielony_tekst = tekst_uzytkownika.split()
ilosc_wyrazow = len(podzielony_tekst)
if ilosc_wyrazow < 10
    print("Tekst jest za krótki.")

"Prawie prawda"

Każda wartość "niepusta", różna od 0 to prawda. 0 lub pusta zawartość (null) to fałsz.

bohater_filmu = ""

if not bohater_filmu:
    print("nie wpisano bohatera. ")

To rozwiązanie skraca konstruowanie instrukcji warunkowych, ale wymaga szczególnej uwagi aby nie popełnić błędów.


Funkcja lower - zamienia wszystkie litery na małe. Np.

if odpowiedz.lower() == "c":
    punkty += 1
 else:
    punkty -= 0.5

Nie trzeba cały czas pisać print() aby mieć kilka linijek tekstu naraz. Wystarczy jeden print() i więcej cydzysłowiów (tyle ile jest stringów). Np.

print("""Która z poniższych metod zabezpieczenia 2FA uznawana jest za najbezpieczniejszą?")
a. SMS
b. kod z aplikacji (TOTP)
c. klucz sprzętowy""")

Funkcja która od razu zaokrągla do drugiego miejsca po przecinku (tu gdzie jest 2f)

wzrost = float(input("Wpisz wzrost (w metrach): "))
waga = float(input("Wpisz ile ważysz(w kg): "))
indeks_bmi= waga / (wzrost*wzrost)
print(f"Twoj indeks BMI to: {indeks_bmi: .2f}")