Напредак се не прати јер нисте улоговани.
Садржај

Гранање са if

У овој лекцији упознајемо се са основним гранањем помоћу наредбе if и поређењима (==, !=, <, >, <=, >=). За почетак ће бити довољно да „укључујемо“ и „искључујемо“ делове програма када је услов испуњен.

Шта ради if

Наредба if проверава да ли је неки услов истинит. Ако јесте, извршиће се увучени (увучен = померен удесно) блок кода испод ње. Ако није — ништа се не дешава.

Поређења: како питамо „да ли је…?“

За поређења користимо операторе:

  • == једнако

  • != није једнако

  • < мање од, > веће од

  • <= мање или једнако, >= веће или једнако

Приметићеш да резултати поређења често буду True или False. То су специјалне логичке вредности (енг. boolean): True значи „тачно“, а False значи „нетачно“. Ове вредности користи наредба if да одлучи да ли ће да изврши блок кода. Можеш их и чувати у променљивама, на пример: je_paran = (n % 2 == 0). Поређења у Пајтону увек исписују велика почетна слова: True, False.

Веома важно: разлика између == и =

Ово је једна од најважнијих ствари у Пајтону:

  • = се користи за доделу вредности променљивој (на пример, x = 3 поставља x на 3).

  • == се користи за поређење, да проверимо да ли су две вредности једнаке (на пример, x == 3 пита „да ли је x једнако 3?“).

Напомена: ако у услову покушаш да користиш = уместо ==, добићеш грешку, јер Пајтон очекује поређење унутар if.

Више самосталних if наредби

У коду можемо писати више одвојених if наредби једна испод друге. Свака се проверава независно. Ово понекад значи да ће се исписати више порука ако више услова важи.

Угнежђени if значи да један услов стављамо унутар другог. Унутрашњи део се проверава и извршава само ако је спољашњи услов тачан, а увлачење (померање удесно) показује да му припада.

Вежба 1 — парно или непарно

Унеси цео број и испиши да ли је његова карактеристика парно или непарно. Користи две одвојене if наредбе — једна проверава услов за парно, друга за непарно.

n = int(input("Unesi broj: "))
if n % 2 == 0:
        print("Paran")
if n % 2 != 0:
        print("Neparan")

Вежба 2 — угнежђени if

Унеси цео број n. Ако је ненегативан (n >= 0), провери да ли је у опсегу 0–100. Ако јесте, испиши U opsegu 0-100. Затим, ако је у опсегу, додатно провери да ли је паран и испиши Paran u opsegu. Користи угнежђене if наредбе.

n = int(input("Unesi ceo broj: "))
if n >= 0:
        if n <= 100:
                print("U opsegu 0-100")
                if n % 2 == 0:
                        print("Paran u opsegu")

Вежба 3 (са pygame) — медаља према резултату (статична слика)

Белешка

Савет за сложеније задатке: иако овај алат у прегледачу ради за једноставне pygame примере, за опширније/комплексније задатке препоручујемо да pygame покрећете у VS Code-у. Тамо је отклањање грешака (debugging) лакше: јасније поруке о грешкама, конзолни излаз, паузирање/поновно покретање и удобнији рад са датотекама. Осим тога, као што смо у некој од претходних лекција напоменули, важно је да се што пре привикавате на рад у окружењу на свом рачунару.

У овој вежби ћеш променити вредности променљивих помоћу if наредби, а ми ћемо те вредности искористити да нацртамо статичну слику у pygame прозору. Не очекујемо да знаш pygame — ти само подеси променљиве, ми ћемо цртати.

Правило:

  • ако је број поена бар 10, медаља је златна и велика

  • ако је бар 5, медаља је сребрна и средња

  • иначе је сива и мала

Користи if и обрати пажњу на редослед услова да би коначни резултат био исправан.

import pygame

pygame.init()
screen = pygame.display.set_mode((500, 600))
clock = pygame.time.Clock()

# Ovde napisi svoj kod
# Postavi podrazumevane vrednosti
poeni = int(input("Unesi broj poena: "))

# Podrazumevano: siva mala medalja
r, g, b = 160, 160, 160
radius = 40

# Pazi na redosled uslova
if poeni >= 5:
        # srebrna i srednja
        r, g, b = 192, 192, 192
        radius = 60
if poeni >= 10:
        # zlatna i velika
        r, g, b = 255, 215, 0
        radius = 80

# Pripremi vrednosti koje koriste crtanje iznad
color = (r, g, b)
R = radius

# Crtanje medalje kao krug u centru
pygame.draw.circle(screen, color, (250, 300), R)
# tanak tamni obruc
pygame.draw.circle(screen, (80, 80, 80), (250, 300), R, 3)

for i in range(120):
        clock.tick(30)
        pygame.display.flip()

pygame.quit()

Неки оператори које можемо користити у наредби if

У самој функцији није неопходно да стоји стриктна провера да ли су неке ствари једнаке/различите… већ може бити и комплекснији израз који ће програм израчунати и закључити да ли је израз тачан(True) или нетачан(False)

Ако нам је потребно да више израза буду тачни у исто време или ако је неки од два израза тачан док други може, а не мора бити користе се оператори and и or респективно

ДОДАТАК! Ако нам је потребно да проверимо да ли је нека променљива дефинисана(има неку додељену вредност) користи се оператер is None или is not None. Ако смо дефинисали ту променљиву онда она више није None и проћи ће услов is not None док у супротном би прошао други.

Тема

Prijavi problem


Obeleži sve kategorije koje odgovaraju problemu

Još detalja - opišite nam problem


Uspešno ste prijavili problem!
Status problema i sve dodatne informacije možete pratiti klikom na link.
Nažalost nismo trenutno u mogućnosti da obradimo vaš zahtev.
Molimo vas da pokušate kasnije.