{"id":299,"date":"2020-03-10T15:09:42","date_gmt":"2020-03-10T14:09:42","guid":{"rendered":"https:\/\/stachura-terlecka.pl\/?page_id=299"},"modified":"2020-03-10T15:11:09","modified_gmt":"2020-03-10T14:11:09","slug":"funkcje","status":"publish","type":"page","link":"https:\/\/stachura-terlecka.pl\/?page_id=299","title":{"rendered":"Funkcje"},"content":{"rendered":"<h2> Funkcje<\/h2>\n<h4> Do przygotowania przed zaj\u0119ciami<\/h4>\n<p>* Python dla ka\u017cdego. Podstawy programowania. &#8211; Michael Dawson &#8211; Helion **R** &#8211; Rozdzia\u0142 5. Wprowadzenie. Koniec gry.<\/p>\n<h4> Cel i tematyka zaj\u0119\u0107<\/h4>\n<p>Drugie laboratorium ma na celu utrwalenie wiadomo\u015bci z trzeciego laboratorium oraz wprowadzenie nast\u0119puj\u0105cych element\u00f3w:<br \/>\n* sekwencje zagnie\u017cd\u017cone,<br \/>\n* funkcje,<br \/>\n* projekt,<\/p>\n<h3> &#8211; Zadanie przypominaj\u0105ce<\/h3>\n<p>* Napisz program wczytuj\u0105cy z klawiatury 10 liczb ca\u0142kowitych, zapisuj\u0105cy je do listy, a nast\u0119pnie wy\u015bwietlaj\u0105cy je na ekranie.<br \/>\n* Napisz program Kto jest twoim tat\u0105, kt\u00f3ry umo\u017cliwia wpisanie imienia i nazwiska osoby p\u0142ci m\u0119skiej i przedstawia imi\u0119 i nazwisko jej ojca. Program rozbuduj tak aby umo\u017cliwia\u0142 znalezienie dziadka, przy czym nadal w programie maj\u0105 si\u0119 znajdowa\u0107 pary syn ojciec.<\/p>\n<h3> &#8211; Sekwencje zagnie\u017cd\u017cone<\/h3>\n<p>Podczas tworzenia oprogramowania niejednokrotnie b\u0119d\u0105 potrzebowali Pa\u0144stwo zastosowa\u0107 sekwencje zagnie\u017cd\u017cone, prosz\u0119 jednak pami\u0119ta\u0107, \u017ce dobr\u0105 praktyk\u0105 jest stosowanie nie wi\u0119cej ni\u017c trzech poziom\u00f3w zagnie\u017cd\u017cenia.<\/p>\n<p>Przyk\u0142ady sekwencji zagnie\u017cd\u017conych:<br \/>\n<code python=\"\"><br \/>\nscores = [(name0, score0), (name1, score1), (name2, score2)]<br \/>\n<\/code><\/p>\n<p>np.<br \/>\n<code python=\"\"><br \/>\nscores = [(\"Alfred\", 10), (\"Janek\", 5), (\"Krystian\", 15)]<br \/>\n<\/code><\/p>\n<p>Sekwencje zagnie\u017cd\u017cone mo\u017cemy rozpakowywa\u0107 je\u017celi wiemy ile element\u00f3w zawiera sekwencja:<\/p>\n<p><code python=\"\"><br \/>\nname, score = scores[1]<br \/>\n<\/code><\/p>\n<p>Dost\u0119p do poszczeg\u00f3lnych element\u00f3w sekwencji zagnie\u017cd\u017conych<\/p>\n<p><code python=\"\"><br \/>\na_score = scores[2]<br \/>\n<\/code><\/p>\n<h3> &#8211; Gra w skojarzenia<\/h3>\n<p>Struktury z\u0142o\u017cone mo\u017cna w sobie zagnie\u017cd\u017ca\u0107. Poni\u017cej w programie wyst\u0119puje s\u0142ownik skojarze\u0144.<br \/>\nZ ka\u017cdym s\u0142owem w s\u0142owniku powi\u0105zana jest lista jego skojarze\u0144.<br \/>\nU\u017cytkownik ma za zadanie poda\u0107 swoje skojarzenia do podanego s\u0142owa.<br \/>\nJe\u015bli jego skojarzenia s\u0105 podobne do tych zawartych w li\u015bcie zdobywa punkt.<\/p>\n<p><code python=\"\"><br \/>\nassociations = {'zwierze': ['pies','kot','chomik'],<br \/>\n'owoc': ['jablko','gruszka','pomara\u0144cza'],<br \/>\n'roslina': ['kaktus','storczyk','drzewo']<br \/>\n}<br \/>\npoints = 0<\/code><\/p>\n<p><code python=\"\">for word in associations:<br \/>\nguess = input('Co ci sie kojarzy ze slowem {}? '.format(word))<br \/>\nif guess in associations[word]:<br \/>\npoints += 1<\/code><\/p>\n<p><code python=\"\"><br \/>\n<\/code><code python=\"\"><\/code><code python=\"\">print(\"Masz\", points, \"punkty\")<br \/>\n<\/code><\/p>\n<h4> Funkcje<\/h4>\n<p>Z czasem b\u0119dziecie Pa\u0144stwo tworzy\u0107 coraz bardziej rozbudowane programy i tworzenie ich poprzez wpisywanie instrukcji pod instrukcjami w jednym ci\u0105gu spowoduje du\u017ce trudno\u015bci ze zrozumieniem kodu i wyszukiwaniem w nim b\u0142\u0119d\u00f3w. Z pomoc\u0105 przychodz\u0105 nam w tedy funkcj\u0119.\\\\<br \/>\nWykorzystanie funkcji wprowadza do programu pewien poziom abstrakcji.\\\\<br \/>\nAbstrakcja pozwala my\u015ble\u0107 o og\u00f3lnym obrazie bez troszczenia si\u0119 o szczeg\u00f3\u0142y (u\u017cywaj\u0105c funkcji programista nie martwi si\u0119 jak jest ona zbudowana).\\\\<br \/>\nFunkcja stworzona przez programist\u0119 tak samo jak i te wbudowane powinny wykonywa\u0107 dobrze jedno zadanie.\\\\<br \/>\nFunkcj\u0119 tworzymy w nast\u0119puj\u0105cy spos\u00f3b:<br \/>\n<code python=\"\"><br \/>\ndef nazwaFunkcji():<br \/>\n\"\"\"opis funkcji\"\"\"<br \/>\ninstrukcje wewn\u0105trz funkcji<br \/>\n<\/code><\/p>\n<p>np.:<\/p>\n<p><code python=\"\"><br \/>\ndef instructions():<br \/>\n\"\"\"Wy\u015bwietl instrukcj\u0119 gry.\"\"\"<br \/>\nprint(<br \/>\n\"\"\"<br \/>\nWitaj w najwi\u0119kszym intelektualnym wyzwaniu wszech czas\u00f3w, jakim jest<br \/>\ngra 'K\u00f3\u0142ko i krzy\u017cyk'. B\u0119dzie to ostateczna rozgrywka mi\u0119dzy Twoim<br \/>\nludzkim m\u00f3zgiem a moim krzemowym procesorem.  <\/code><\/p>\n<p><code python=\"\">    Swoje posuni\u0119cie wska\u017cesz poprzez wprowadzenie liczby z zakresu 0 - 8.<br \/>\nLiczba ta odpowiada pozycji na planszy zgodnie z poni\u017cszym schematem:<\/code><\/p>\n<p><code python=\"\">0 | 1 | 2<br \/>\n---------<br \/>\n3 | 4 | 5<br \/>\n---------<br \/>\n6 | 7 | 8<\/code><\/p>\n<p><code python=\"\"><br \/>\n<\/code><code python=\"\"><\/code><code python=\"\"><\/code><code python=\"\">    Przygotuj si\u0119, Cz\u0142owieku.  Ostateczna batalia niebawem si\u0119 rozpocznie. \\n<br \/>\n\"\"\"<br \/>\n)<br \/>\n<\/code><\/p>\n<h3> &#8211; Wywo\u0142anie funkcji<\/h3>\n<p>Funkcj\u0119 wywo\u0142ujemy poprzez podanie jej nazwy:<\/p>\n<p><code python=\"\"><br \/>\n#main<br \/>\ninstructions()<br \/>\n<\/code><\/p>\n<h3> &#8211; Dokumentowanie funkcji<\/h3>\n<p>Do dokumentowania funkcji wykorzystujemy tzw. \u0142a\u0144cuch dokumentuj\u0105cy &#8211; zapisujemy go zaraz po deklaracji funkcji:<br \/>\n<code python=\"\"><br \/>\ndef instructions():<br \/>\n\"\"\"Wy\u015bwietl instrukcj\u0119 gry.\"\"\"  #\u0142a\u0144cuch dokumentuj\u0105cy<br \/>\n<\/code><\/p>\n<h3> &#8211; Pobieranie warto\u015bci przez funkcj\u0119<\/h3>\n<p>Funkcje mog\u0105 pobiera\u0107 warto\u015bci na kt\u00f3rych maj\u0105 operowa\u0107:<br \/>\n<code python=\"\"><br \/>\ndef display(message):<br \/>\n''' funkcja wy\u015bwietlaj\u0105ca wiadomo\u015b\u0107'''<br \/>\nprint(message)<br \/>\n<\/code><\/p>\n<h3> &#8211; Zwracanie warto\u015bci przez funkcj\u0119<\/h3>\n<p>Funkcje mog\u0105 r\u00f3wnie\u017c zwraca\u0107 pewne warto\u015bci:<\/p>\n<p><code python=\"\"><br \/>\ndef give_me_five():<br \/>\n'''Funkcja zwracaj\u0105ca warto\u015b\u0107'''<br \/>\nfive = 5<br \/>\nreturn five<br \/>\n<\/code><\/p>\n<h3> -Argumenty nazwane oraz domy\u015blne warto\u015bci parametr\u00f3w<\/h3>\n<p>Argumenty wykorzystujemy, aby przekaza\u0107 do funkcji warto\u015bci.\\\\<\/p>\n<h6> Parametry pozycyjne<\/h6>\n<p><code python=\"\"><br \/>\ndef birthday1(name, age):<br \/>\nprint(\"Szcz\u0119\u015bliwych urodzin,\", name, \"!\", \" Masz ju\u017c\", age, \"lat.\\n\")<br \/>\n#wywolania<br \/>\nbirthday1(\"Ada\u015b\", 3)<br \/>\nbirthday1(3, \"Ada\u015b\")<br \/>\nbirthday1(name = \"Ada\u015b\", age = 3)<br \/>\nbirthday1(age = 3, name = \"Ada\u015b\")<br \/>\n<\/code><\/p>\n<h6> Parametry z warto\u015bciami domy\u015blnymi<\/h6>\n<p><code python=\"\"><br \/>\ndef birthday2(name = \"Janusz\", age = 5):<br \/>\nprint(\"Szcz\u0119\u015bliwych urodzin,\", name, \"!\", \" Masz ju\u017c\", age, \"lat.\\n\")<br \/>\nbirthday2()<br \/>\nbirthday2(name = \"Katarzyna\")<br \/>\nbirthday2(age = 12)<br \/>\nbirthday2(name = \"Katarzyna\", age = 12)<br \/>\nbirthday2(\"Katarzyna\", 12)<br \/>\n<\/code><\/p>\n<h4> &#8211; Zadania do samodzielnego wykonania na laboratorium<\/h4>\n<p>* Napisz funkcj\u0119 SUMA wyznaczaj\u0105c\u0105 sum\u0119 dw\u00f3ch zadanych liczb ca\u0142kowitych. Napisz program wykorzystuj\u0105cy funkcj\u0119 SUMA<br \/>\n* Napisz funkcj\u0119, kt\u00f3ra ma trzy parametry formalne a, b, c b\u0119d\u0105ce liczbami ca\u0142kowitymi. Warto\u015bci\u0105 funkcji jest jeden, je\u015bli zadane liczby s\u0105 liczbami pitagorejskimi oraz zero w przeciwnym wypadku. Liczby pitagorejskie spe\u0142niaj\u0105 warunek: a*a+b*b=c*c.<br \/>\n* Napisz funkcj\u0119, kt\u00f3ra wyznacza n-t\u0105 (n jest liczba naturaln\u0105) pot\u0119g\u0119 zadanej liczby rzeczywistej x. Funkcja ma wykorzystywa\u0107 iteracj\u0119.<\/p>\n<h3> &#8211; Przyk\u0142ady u\u017cywane na laboratoriach<\/h3>\n<p>Przyk\u0142ady pochodz\u0105 z ksi\u0105\u017cki<br \/>\n* Podstawow\u0105 ksi\u0105\u017ck\u0105 wykorzystywan\u0105 na laboratorium b\u0119dzie: \u201ePython dla ka\u017cdego. Podstawy programowania Wydanie III\u201d, autor Michael Dawson, Wydawnictwo Helion **(R)**<\/p>\n<h4> Zadanie domowe<\/h4>\n<p>**Wszystkie zadania domowe nale\u017cy archiwizowa\u0107 poniewa\u017c w dalszej cz\u0119\u015bci laboratori\u00f3w b\u0119dziecie je Pa\u0144stwo rozbudowywa\u0107**<br \/>\n* Zobacz: https:\/\/www.youtube.com\/watch?v=ybRVhUtdHs8<br \/>\n* Stw\u00f3rz funkcj\u0119 &#8220;menu&#8221; dla swojej gry umo\u017cliwiaj\u0105ce co najmniej:<br \/>\n* wy\u015bwietlenie najlepszych wynik\u00f3w<br \/>\n* dodawanie wynik\u00f3w<br \/>\n* rozpocz\u0119cie nowej gry<br \/>\n* Napisz funkcj\u0119 posta\u0107, kt\u00f3ra realizuje tworzenie postaci<br \/>\n* Python dla ka\u017cdego. Podstawy programowania. &#8211; Michael Dawson &#8211; Helion **R** &#8211; Rozdzia\u0142 6.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Funkcje Do przygotowania przed zaj\u0119ciami * Python dla ka\u017cdego. Podstawy programowania. &#8211; Michael Dawson &#8211; Helion **R** &#8211; Rozdzia\u0142 5. Wprowadzenie. Koniec gry. Cel i tematyka zaj\u0119\u0107 Drugie laboratorium ma na celu utrwalenie wiadomo\u015bci z trzeciego laboratorium oraz wprowadzenie nast\u0119puj\u0105cych element\u00f3w: * sekwencje zagnie\u017cd\u017cone, * funkcje, * projekt, &#8211; Zadanie przypominaj\u0105ce * Napisz program wczytuj\u0105cy [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":[],"_links":{"self":[{"href":"https:\/\/stachura-terlecka.pl\/index.php?rest_route=\/wp\/v2\/pages\/299"}],"collection":[{"href":"https:\/\/stachura-terlecka.pl\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/stachura-terlecka.pl\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/stachura-terlecka.pl\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/stachura-terlecka.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=299"}],"version-history":[{"count":2,"href":"https:\/\/stachura-terlecka.pl\/index.php?rest_route=\/wp\/v2\/pages\/299\/revisions"}],"predecessor-version":[{"id":301,"href":"https:\/\/stachura-terlecka.pl\/index.php?rest_route=\/wp\/v2\/pages\/299\/revisions\/301"}],"wp:attachment":[{"href":"https:\/\/stachura-terlecka.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=299"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}