publikuj: Opublikuj w wykop.pl Opublikuj we flaker.pl Opublikuj na OSnews.pl Opublikuj w delicious wydrukuj
14 skomentuj »

TAGI: python , programowanie

2010-02-03 08:00  |  Jan Koprowski

Python: kurs programowania. Część III: pętle i instrukcja warunkowa

Python: kurs programowania. Część III: pętle i instrukcja warunkowa

Prawie każdy język programowania ma możliwość cyklicznego przetwarzania instrukcji i podejmowania decyzji. Mechanizmy te zwane popularnie pętlami oraz instrukcjami warunkowymi występują również w Pythonie. Stanowią one podstawę dla programowania imperatywnego. W tej części kursu dowiesz się, jak wykorzystać ich potencjał.

Instrukcja warunkowa

Z instrukcją warunkową zapoznałeś się już w części pierwszej. Zawiera ona jednak pewne rozszerzenia. Aby je przedstawić, rozpatrzmy program, który pobiera od użytkownika wartość siły wiatru w skali Beauforta.

 

skala = int(input('Podaj liczbę opisującą intensywność wiatru w skali Beauforta: '))

if skala <= 4:
print('Spokojnie. Możesz wypływać!')
else:
print('Zostań w porcie!')

Program sprawdzi, czy stopień wzburzenia akwenu jest mniejszy lub równy od czterech. Jeżeli tak, zezwoli na wypłynięcie z przystani. W każdym innym wypadku wyświetli komunikat "Zostań w porcie!". Klauzla else wykona się zawsze, gdy warunek nie zostanie spełniony. Nasz program mógłby być jednak bardziej zabawny i zawierać różne komunikaty dla różnych skali. Do sprawdzania kolejnych warunków służy instrukcja elif.

skala = int(input('Podaj liczbę opisującą intensywność wiatru w skali Beauforta: '))

if skala == 0:
print('Że niby będziesz wiosłować?')
elif skala <= 4:
print('Spokojnie. Możesz wypływać!')
elif skala >= 8 and skala <= 12:
print('To sobie wybrałeś pogodę na żeglowanie.')
elif skala < 0 or skala > 12:
print('Chyba za dużo dzisiaj wypiłeś.')
else:
print('Zostań w porcie!')

Warunki są sprawdzane jeden po drugim (od góry do dołu), do momentu aż Python natrafi na prawdziwy. Wtedy zaprzestaje dalszego szukania i wykonuje przypisany do prawdziwego warunku kod. W przypadku nieznalezienia żadnego wykonuje instrukcje zawarte w klauzuli else. Zauważ, że ponieważ Python zaprzestaje dalszego sprawdzania, gdy natrafi na spełniony warunek, ważna jest kolejność, w której zapisujemy nasze warunki.

Warunki można łączyć z użyciem instrukcji or (pol. lub) i and (pol. i). Działają one jak logiczna alternatywa i koniunkcja dla wartości Booleana.

Logiczne "i" zwraca prawdę wyłącznie wtedym gdy oba warunki są prawdziwe. Logiczne "lub", gdy spełniony jest przynajmniej jeden z nich.

Innym zastosowaniem instrukcji warunkowych prezentującym je w całej krasie może być chęć pogratulowania rocznicy ślubu z wyświetleniem jej nazwy.


rocznica = int(input('Podaj, którą rocznicę ślubu będziecie teraz obchodzili: '))

nazwa = ''
if (rocznica == 25):
nazwa = 'srebrnej'
elif (rocznica == 30):
nazwa = 'perłowej'
elif (rocznica == 35):
nazwa = 'koralowej'
elif (rocznica == 40):
nazwa = 'rubinowej'
elif (rocznica == 45):
nazwa = 'szafirowej'
elif (rocznica == 50):
nazwa = 'złotej'
else:
nazwa = str(rocznica) + '.'

print('Wszystkiego najlepszego z okazji', nazwa, 'rocznicy ślubu!')

Powyższy program pobiera od użytkownika liczbę wskazującą obchodzoną rocznicę ślubu. Aby móc sprawdzić przynajmniej kilka rocznic, instrukcja if rozbudowana została o kolejne warunki. W wypadku gdy podana rocznica ślubu nie mieści się wśród przewidzianych przez nas przypadków (klauzula else), jako nazwę traktujemy numerek z dopisaną kropką.

Klauzuli else można bardzo często uniknąć, nadając początkowo domyślną wartość zmiennej. W naszym przypadku nazwa była przed wykonaniem bloku if pusta. Nic nie stoi jednak na przeszkodzie nadania jej wartości domyślnej, a później ewentualnego jej nadpisania.

rocznica = int(input('Podaj, którą rocznicę ślubu będziecie teraz obchodzili: '))

nazwa = str(rocznica) + '.'
if (rocznica == 25):
nazwa = 'srebrnej'
elif (rocznica == 30):
nazwa = 'perłowej'
elif (rocznica == 35):
nazwa = 'koralowej'
elif (rocznica == 40):
nazwa = 'rubinowej'
elif (rocznica == 45):
nazwa = 'szafirowej'
elif (rocznica == 50):
nazwa = 'złotej'

print('Wszystkiego najlepszego z okazji', nazwa, 'rocznicy ślubu!')

W tej formie domyślnie nadajemy nazwie formę "liczba". Jeżeli jednak jest to okrągła rocznica, którą zna nasz program, nadpisujemy ją odpowiednią nazwą. To, które rozwiązanie zastosujesz, zależy od Ciebie.

«poprzednia 1 2 3 4 ... 5 następna »

publikuj: Opublikuj w wykop.pl Opublikuj we flaker.pl Opublikuj na OSnews.pl Opublikuj w delicious wydrukuj
14 skomentuj »

Polecane książki

Czytaj Webhosting

Chcesz być na bieżąco z naszymi informacjami? Zapisz się na Newsletter.

Zarejestruj domenę

Sprawdź dostępność swojej domeny:

.pl: 0 zł   .com: 19.90 zł
.com.pl: 0 zł   .eu: 19.90 zł