js lab2


Język skryptowy:
Laboratorium 2.
Kontrola przepływu. Funkcje.
Kontrola przepływu
Ze względu na specyficzną składnię języka Python, wykorzystującą wcięcia jako definicję
bloku, zostanie zaprezentowana składnia instrukcji warunkowych i instrukcji pętli przed
przejściem do omówienia zagadnienia funkcji.
Instrukcja warunkowa if
Konstrukcja if w Pythonie jest typowa, podobna jak w wielu popularnych językach (C++,
Java). Przyjmuje formę testu wyrażenia logicznego (if), po którym występuje jedna lub więcej
opcjonalnych sekcji elif ('else if'). Sekcja else jest również opcjonalna.
if test1: # if test
statements1 # Associated block
elif test2: # Optional elifs
statements2
else: # Optional else
statements3
Instrukcje te można zagnieżdżać. Pamiętaj, że sekcje elif oraz else nie są konieczne.
Minimalnym prawidłowym wyrażeniem jest na przykład:
if test: # if test
statements # Associated block
Uwaga dla programujących w C/C++
W Pythonie nie istnieje wyrażenie switch. Możesz używać konstrukcji if...elif...else z tym
samym skutkiem.
Instrukcja pętli while
Instrukcja while powtarza wykonanie bloku (uwzględniającego odpowiednie wcięcia) dopóki
warunek jest prawdziwy:
while test: # Loop test
statements # Loop body
else: # Optional else
statements # Run if didn't exit loop with break
break
Wykonanie instrukcji break powoduje przerwanie wykonywania najściślej otaczającej
ją pętli, z pominięciem występującej w niej ew. klauzuli else.
continue
Instrukcja continue może się pojawić tylko w miejscu, które składniowo jest
zagnieżdżone w pętli for lub while, jednak nie bezpośrednio w zagnieżdżonej definicji klasy,
czy funkcji lub też instrukcji try. Wykonanie instrukcji powoduje przejście do następnego
cyklu iteracji najściślej otaczającej ją pętli.
pass
Instrukcja ta nie wykonuje żadnej operacji i powinniśmy stosować ją, gdy chcemy
zostawić funkcję lub klasę pustą.
Loop else block
Wykonywane tylko i wyłącznie wtedy gdy wyjście z pętli było spowodowane
wynikiem 'fałsz' testu logicznego.
Instrukcja pętli for
Instrukcja for jest używana do iterowania po elementach sekwencji (np. napisu, krotki lub
listy) lub innego obiektu iterowalnego:
for target in object: # Assign object items to target
statements # Repeated loop body: use target
else: # Optional else part
statements # If we didn't hit a 'break'
Wykonaj przykłady:
for x in ["spam", "eggs", "ham"]:
print x
prod = 1
for item in [1, 2, 3, 4]:
prod *= item
print prod
Iteracje można wykonywać także na łańcuchach tekstowych i krotkach:
S = "Computer science"
T = ("is", "awesome")
for x in S:
print x, # Iterate over a string
for x in T:
print x, # Iterate over a tuple
Zwróć uwagę na zastosowanie przecinka po wyrażeniu print. Jaki jest tego efekt?
Funkcje
Funkcje definiuje się używając słowa def. Po nim następuje nazwa identyfikująca funkcję,
następnie para nawiasów, które mogą zawierać kilka nazw zmiennych, a na końcu
dwukropek.
def name(arg1, arg2,... argN):
statements
Parametry deklarujemy w nawiasach przy definiowaniu funkcji i oddzielamy przecinkami.
Podczas wywoływania funkcji przypisujemy im wartości w ten sam sposób. Zauważ, że to, co
wpisujemy podczas definiowania funkcji to parametry, zaś przypisywane im wartości to
argumenty.
Zmienne w definicji funkcji, nie są połączone w żaden sposób z innymi zmiennymi o tych
samych nazwach, ale użytych w innej części programu. Innymi słowy, te zmienne są lokalne
dla tej funkcji. Każda zmienna ma swój zakres, czyli blok, w którym została zadeklarowana,
zaczynając od miejsca zdefiniowania jej nazwy.
Wewnątrz funkcji można przypisać wartość do nazwy zdefiniowanej w głównym bloku
programu (czyli poza funkcjami i klasami). Można to zrobić za pomocą wyrażenia global.
def maximum(x, y):
if x > y:
return x
else:
return y
print maximum(2, 3)
Wyrażenia return używamy do wyjścia z funkcji. Możemy opcjonalnie zwrócić w tym
momencie jakąś wartość.
ZADANIA DO SAMODZIELNEGO WYKONANIA:
1. Napisz funkcję, która jako parametr przyjmuje napis tekstowy i zwraca histogram znaków
występujących w tym napisie (czyli pary znak-liczba wystąpień). Wynikiem powinna być lista
krotek, należy uwzględnić wszystkie znaki a-z:
[('a', 1), ('b', 3), ('c', 1), .., ('z', 0)]
2. Napisz funkcję, która sprawdza czy jej argumentem jest liczba pierwsza. Funkcja powinna
zwracać wartość logiczną True/False.
3. Napisz funkcję która wczytuje plik zawierający linie tekstu i zapisuje plik z tą samą nazwą
z przyrostkiem '-random'. (np. wejście: uczestnicy.txt, wyjście: uczestnicy-random.txt).
Funkcja do nowego pliku ma zapisać linie tekstu w losowej kolejności. Wykorzystaj generator
liczb losowych: https://docs.python.org/2.7/library/random.html
Bibliografia:
1. van Rossum, G. and Drake, F.: "Python 2.7.8 Reference Manual", 2014
2. Lutz, M.: "Learning Python, 5th Edition", O'Reilly Media, 2013.


Wyszukiwarka

Podobne podstrony:
Util js
js zegarek na www
Animation js
Lab2 4 R1 lab24
Format js
Map js
livehelp js
Tile js
PHP JS readme
Style js
Instrukcja lab2
lab2
b js
lab2 README
Rule js
js 6

więcej podobnych podstron