if…, else…, elif…
Najprościej rzecz ujmując instrukcje warunkowe tj. if…, elif…, else… pozwalają, w trakcie pisania programu, na rozważanie wielu możliwości odpowiadając na pytania co jeżeli?
Podam wam teraz prosty przykład:
Jeżeli liczba jest większa od zera, to wypisz że jest dodatnia
zapis tego stwierdzenia za pomocą instrukcji if będzie wyglądał następująco:
UWAGA!!! PAMIĘTAJCIE O WCIĘCIACH!!!
liczba = 10
if liczba>0:
print("jest dodatnia")
Jeżeli potrzebujemy rozwinąć naszą myśl o zapytanie „a co gdy warunek nie jest spełniony?” – używamy else.
Jeżeli liczba jest większa od zera, to wypisz że jest dodatnia – w przeciwnym wypadku napisz, że nie jest dodatnia
liczba = 10
if liczba>0:
print("jest dodatnia")
else:
print("jest ujemna")
Oczywiście instrukcje możemy zagnieżdżać jedna w drugiej.
Może zajść sytuacja, że przed użyciem else chcemy sprawdzić jeszcze jakieś inne warunki, wtedy przychodzi nam z pomocą instrukcja elif. (możemy stosować wiele elif)
liczba = 10
if liczba>0:
print("jest dodatnia")
elif liczba==0:
print("podano 0")
else:
print("jest ujemna")
Python nie posiada konstrukcji switch.
Operator in oraz not
#przykład z wykorzystaniem listy
odp = input("Wybierz: papier, kamień lub nożyce: ")
odp = odp.lower()
options = ["papier", "kamień", "nożyce"]
if odp in options:
print(f"Wybrałeś: {odp}")
else: print("Podałeś niepoprawną wartość.")
cos = False
if not cos: print("nie jest") #jeżeli cos nie jest prawdą (if not True)
name = "Kama"
if name not in ["Ania","Kasia","Zosia"]:
print("Nie ma na liście")
Zadania do wykonania:
Zadanie 1: Napisz program sprawdzający czy liczba jest parzysta.
Rozwiązanie:
a = 5
if a==0:
print("podano 0")
elif a%2==0:
print("liczba jest parzysta")
else:
print("liczba jest nieparzysta")
Zadanie 2: Porównaj ze sobą 2 dowolne liczby i wypisz która jest większa.
Rozwiązanie:
print("Zadanie 2: Porównaj ze sobą 2 dowolne liczby i wypisz która jest większa.")
a,b = 10, 5
warunek = a > b
print(f"porównujemy liczby {a} i {b}")
if warunek:
print(f"większa jest liczba a={a}")
else:
print(f"większa jest liczba b={b}")
Zadanie 3: Porównaj ze sobą 4 nie równe sobie liczby i wypisz największą.
Rozwiązanie:
print("Zadanie 3: Porównaj ze sobą 4 nie równe sobie liczby i wypisz największą.")
a,b,c,d = 10, 5, 18, 1
m=a
print(f"porównujemy liczby {a}, {b}, {c}, {d}")
if b>m: m=b
if c>m: m=c
if d>m: m=d
print(f"największa liczba to {m}")
Zadanie 4: Porównaj ze sobą 3 nie równe sobie liczby i wypisz je w kolejności od największej do najmniejszej.
Rozwiązanie:
print("Zadanie 4: Porównaj ze sobą 3 nie równe sobie liczby i wypisz je w kolejności od największej do najmniejszej.")
a,b,c = 10, 5, 18
print(f"porównujemy liczby {a}, {b}, {c}")
min=a#zakładamy, że jest najmniejsza
if b<a and b<c: min=b
if c<a and c<b: min=c
max=a#zakładamy, że jest największa
if b>max: max=b
if c>max: max=c
if a!=min and a!=max: mid=a
if b!=min and b!=max: mid=b
if c!=min and c!=max: mid=c
print(f"Posortowane liczby to: {max}, {mid}, {min}")
Zadanie 5: Porównaj ze sobą 4 nie równe sobie liczby i wypisz je w kolejności od największej do najmniejszej.
Rozwiązanie:
print("Zadanie 5: Porównaj ze soba 4 nie równe sobie liczby i wypisz je w kolejności od największej do najmniejszej.")
a,b,c,d = 10, 5, 18, 1
print(f"porównujemy liczby {a}, {b}, {c}, {d}")
print("Szukamy najmniejszej z liczb")
if a<b and a<c and a<d: l1=a #litera małe "l" jak liczba - to jest liczba 1 w skrócie: l1
elif b<a and b<c and b<d: l1=b
elif c<a and c<b and c<d: l1=c
else: l1=d
l4=a #zakładamy, że jest to ostatnia liczba
if b>l4: l4=b
if c>l4: l4=c
if d>l4: l4=d
if a!=l1 and b!=l4: m2=a
if b!=l1 and b!=l4:
m1=b
if m2 is None:
m2=b
else: m2=m2
if c!=l1 and c!=l4:
m1=c
if m2 is None:
m2=b
else: m2=m2
if d!=l1 and d!=l4: m1, m2 = d, m2 = m2
if m1>m2: l2=m2
else: l2=m1
if m1<m2: l3=m2
else: l3=m1
print(f"Posortowane liczby to: {l4}, {l3}, {l2}, {l1}")
Zadanie 6: Zrealizuj kalkulator, który dla zadanych liczb w zależności od wartości zmiennej „wybor” wykonuje: mnożenie, dzielenie, odejmowanie, dodawanie.
Rozwiązanie:
print("kalkulator")
liczba1, liczba2 = 4,2
wybor = "/"
if wybor=="+": print(f"{liczba1}+{liczba2}={liczba1+liczba2}")
if wybor=="-": print(f"{liczba1}-{liczba2}={liczba1-liczba2}")
if wybor=="*": print(f"{liczba1}*{liczba2}={liczba1*liczba2}")
if wybor=="/": print(f"{liczba1}/{liczba2}={liczba1/liczba2}")
Zadanie 7: Napisz program, który dla danego punktu na płaszczyźnie sprawdzi, w której ćwiartce układu współrzędnych się on znajduje. Może jednak być tak, że punkt nie znajduje się w żadnej ćwiartce – leży na jednej z osi lub w środku układu współrzędnych. Wówczas program powinien to stwierdzić. Na wejściu znajdują się dwie liczby całkowite oddzielone spacją, x i y(−1 000 000 000≤x, y≤1 000 000 000), oznaczające współrzędne danego punktu. Jeżeli podany punkt nie leży na żadnej z osi, Twój program powinien wypisać: I, II, III lub IV, w przypadku gdy punkt należy do, odpowiednio, pierwszej, drugiej, trzeciej lub czwartej ćwiartki układu współrzędnych. Jeżeli punkt leży w środku układu współrzędnych, program powinien wypisać liczbę 0. W przeciwnym razie, program powinien wypisać OX (duże O i duże X), jeśli punkt leży na osi X, a OY – jeśli punkt leży na osi Y.
Przykład
Dla danych wejściowych:
5 7
poprawnym wynikiem jest:
I
a dla danych wejściowych:
0 -1000000000
poprawnym wynikiem jest:
OY
natomiast dla danych wejściowych:
0 0
Zadanie 8: Twoim zadaniem jest stwierdzić, czy z trzech odcinków o podanych długościach można zbudować trójkąt o dodatnim polu. Pierwszy i jedyny wiersz wejścia zawiera trzy liczby naturalne a,b,c(1≤a, b, c≤1 000 000 000), oddzielone spacjami. Liczby te oznaczają długości trzech odcinków. Twój program powinien wypisać jedno słowo TAK lub NIE, w zależności od tego, czy z odcinków o długościach takich jak na wejściu można zbudować niezdegenerowany trójkąt, czyli trójkąt o dodatnim polu.
Przykład
Dla danych wejściowych:
8 7 5
poprawnym wynikiem jest:
TAK
a dla danych wejściowych:
1 10 2
poprawnym wynikiem jest:
NIE
oraz dla danych wejściowych:
4 4 8
poprawnym wynikiem jest:
NIE
filename =’01012020_sales.xlsx’
Sprawdź, czy nazwa pliku jest z rozszerzeniem 'xlsx’. Wydrukuj do konsoli 'TAK’ jeśli to prawda, przeciwnie 'NIE’.
code = 'DSVNDOICSN’
Sprawdź czy zmienna code składa się tylko z dużych liter. Jeśli tak wydrukuj do konsoli 'TAK’.
number =0
Zbadaj czy zmienna number jest obiektem typu int (instancją klasy wbudowanej int). Wydrukuj 'TAK’ jeśli to prawda, przeciwnie 'NIE’.
Wskazówka: Użyj funkcji isinstance().
password =’cskdnjcasa#!’
Sprawdź, czy hasło ma wymaganą długość 11 znaków. Jeżeli tak, wydrukuj 'Hasło poprawne’, w przeciwnym razie 'Hasło zbyt krótkie’.
password =’cskdnjcasa#!’
Sprawdź, czy hasło ma wymaganą długość 11 znaków oraz zwiera znak specjalny ’!’. Jeżeli tak, wydrukuj 'Hasło poprawne’, w przeciwnym razie 'Hasło niepoprawne’.
project_ids = [’02134′, '24253′]
Sprawdź czy następujące id projektu:
project_id = '02135′
występuje w liście project_ids. Jeśli nie dodaj id tego projektu do listy. Następnie wydrukuj listę project_ids do konsoli.
Podany jest słownik:
project_ids = {
’01’: 'open’,
’02’: 'new’,
’03’: 'in progress’,
’04’: 'completed’
}
Wykorzystując instrukcję warunkową sprawdź, czy status projektu z id = ’02’ jest ustawiony na 'new’. Jeśli tak, zmień ten status na 'open’.
W odpowiedzi wydrukuj słownik project_ids do konsoli.
item = '001′
występuje w liście:
items = [’001′, '000′, '003′, '005′, '006′]
Jeżeli tak, to usuń ten element z listy. W odpowiedzi wydrukuj otrzymaną listę do konsoli.