tag:blogger.com,1999:blog-28438874113826986952024-02-19T00:10:37.800-08:00assa.logAssahttp://www.blogger.com/profile/10098467995716192485noreply@blogger.comBlogger20125tag:blogger.com,1999:blog-2843887411382698695.post-83228107294141864822012-03-03T14:17:00.000-08:002012-05-05T11:20:21.982-07:00Lynx for ForthWitam wszystkich!<br />
Oto nadeszła pamiętna chwila! Lynx obudzony ze snu, po 8 godzinach pracy ożywa!<br />
<span style="font-size: x-large;">Czym był Lynx?</span><br />
Lynx był kiedyś moim niespełnionym marzeniem. Od kiedy zacząłem "skrobać" swoje pierwsze programy, marzyłem o własnym języku. Dziś marzenia stają się rzeczywistością! Lynx był projektem rozwijanym zrywami, często zarzucanym, niszczonym(ostatnie kilka reinstali bez dostępu do środków zapisu...), no i ogólnie miał trudno. Niektórzy(zapewne większość nadal nie wie co to ten Lynx), a więc:<br />
<span style="font-size: x-large;">Czym jest Lynx?</span><br />
Lynx to wirtualna maszyna oparta o 2 stosy: stos parametrów i stos powrotu. Tego drugiego na razie nie tykam :P. Dlaczego stos? Bo czemu nie ;) Stos to najprzyjemniejsza struktura danych jednocześnie najbliższa człowiekowi ;) Językiem pośrednim, a jednocześnie wysoko poziomowym jest Forth. Wybrałem go ze względu na łatwą implementację i stosunkową bliskość z maszyną. Forth jest zaimplementowany jakoś w 50-60% : brakuje jedynie implementacji flow-control i słów(takie jakby funkcje\podprogramy w Forth'cie). Co mi pozostało do roboty po za maszyną? Cóż, nie wiele ;) Nie potrzebny mi chyba będzie dekompilator, choć pewnie go napiszę. Przyda się za to kompilator. Próbowałem z ANTLR3, ale chyba coś poknociłem więc odstawiam to na dłuższy termin i wzamian używam nasm'owych makr(dzięki Gyn za ten trik!).<br />
<span style="font-size: x-large;">Czym będzie Lynx?</span><br />
<span style="font-size: small;">Środowiskiem uruchomieniowym z lekka podobnym do NekoVM, jednak stworzonym przez człowieka(może ludzi? ;)) dla ludzi(wystarczy porównać source mojej maszyny z Neko...). Po za domyślnym Forth'em planuję jeszcze szereg innych języków. Po jakimś tam wstępie myśle nad JIT'em i bajerami.</span><span style="font-size: x-large;"><br />
</span><br />
<br />
Source można pobrać z mojego <a href="https://www.dropbox.com/sh/wwzcu7qq1fgg355/UFJME-Bvnt/Lynx" target="_blank">Dropboxa</a>.<br />
(Polecam obejrzeć przykładowy plik z makrami).<br />
<br />
<br />
@EDIT: Stwierdziłem, że Lynx'a na ten czas zawieszę i do życia powołam SimpleVM - prostą VMkę, którą będe opisywał krok po kroku we wpisach na blogu, yo!Assahttp://www.blogger.com/profile/10098467995716192485noreply@blogger.com1tag:blogger.com,1999:blog-2843887411382698695.post-42961718983967538222011-12-29T12:20:00.000-08:002011-12-29T12:20:35.058-08:00Jak uratować Polskę?Witam!<br />
Jest to mój pierwszy post "polityczny". Możliwe że takowych pojawi się więcej :)<br />
<span style="color: red;">DISCLAIMER:</span><br />
<div style="color: red;"> Ten post i każdy następny z tej serii reprezentuje jedynie moje własne i przez nikogo nie modyfikowane poglądy.</div><div style="color: red;"> Nie ma on także na celu nikogo obrazić etc. i nie jest żadną próbą ataku, która może wynikać jedynie z mojego stylu pisania.</div><span style="color: red;">END DISCLAIMER;</span><br />
Przepraszam za ten wstęp, ale zawsze lepiej się zabezpieczyć przed niekonstruktywną krytyką.<br />
Przejdźmy dalej:<br />
<span style="font-size: x-large;">Czy trzeba ratować Polskę?</span><br />
Zacznijmy od samego przedstawienia problemu - co i dlaczego powinniśmy ratować?<br />
Co? To już wiemy. Polska to dla większości z nas ojczyzna. Ale czy wiemy co wiąże się z tym imieniem? Są to ludzie, ziemia, zwierzęta etc. ale i również jej dobre imię czy gospodarka jeżeli potraktujemy tę naszą Polskę jako kraj. I właśnie chciałbym poruszyć te problemy związane bardziej z dobrym imieniem czy gospodarką. Ale dlaczego powinniśmy ratować nasz kraj? Dlatego choćby że jest to nasza ojczyzna, że jesteśmy obywatelami tego kraju etc. Ale czy trzeba ją ratować? Czy grozi nam jakieś niebezpieczeństwo? Ostatnie lata były raczej łaskawe dla nas - przynajmniej tak twierdzą media. Propaganda jest była i będzie. Zawsze jest to nieodłączny element "sterujący" władzy. Ale teraz na jaw wychodzą różne dziwne problemy - choćby te z KRUS.<br />
<span style="font-size: x-large;">Czy warto?</span><br />
Na pewno. Tu raczej nie powinniśmy mieć wątpliwości. Ale czy wśród kłamstw rządu możemy się odnaleźć? Teraz dopiero wychodzi na jaw wiele dziwnych sprawek, a w dodatku mamy stać się częścią dziwnego wytworu wyobraźni "specjalistów" z Unii.<br />
<span style="font-size: x-large;">Jak?</span><br />
Doszliśmy do sedna tego postu - listy reform:<br />
<ol><li> Stopniowa likwidacja KRUSu i ZUSu. ZUS okrada pracowników już od lat, tylko po to by na emeryturze wydawać nam niewielkie pieniądze, a sam mógł inwestować w "ZUSowe pałace". Czy nie lepiej byłoby oddawać ludziom te pieniądze które ZUS i KRUS zabierają, niech sami zadbają o swoją emeryturę. ZUS z pensji zabiera, uwaga, 45%! Przecież to kupa pieniędzy! Ile dostaniemy na emeryturze? Jeśli dobrze pójdzie i obejdzie się bez kryzysu będzie to nie cała połowa.</li>
<li>Stopniowa likwidacja NFZ. Czemu? Bo to tzw. leczenie za darmo nie ma sensu, a leczenie prywatne jest za drogie. Po likwidacji NFZ powstawałaby konkurencja dla prywatnych lekarzy.</li>
<li>Pilnowanie takich idiotów jak choćby ten pan co podpala koty(a może z nimi pali? ;)) </li>
<li>Obrona dobrego imienia przez każdego z nas. To reforma której wprowadzenie jest możliwe, ale egzekwowanie już raczej trudne do spełnienia. To prośba o dbanie przez każdego z nas. Imię naszej ojczyzny świadczy o jej mieszkańcach.</li>
</ol>Jak wprowadzić do wszystko? Prosto! Wystarczy dokonać przewrotu i zostać dyktatorem na co najmniej 50 lat(plan likwidacji ZUS i KRUS oraz NFZ przy jednoczesnej wstecznej "kompatybilności") :).Assahttp://www.blogger.com/profile/10098467995716192485noreply@blogger.com4tag:blogger.com,1999:blog-2843887411382698695.post-12681862045270495402011-11-05T13:32:00.000-07:002011-11-05T13:32:43.421-07:00Co mi się podoba w...Javie?Hai all!<br />
<br />
Piszę sobie od niedawna w Javie, praktycznie całkowicie się na nią przerzucając. I muszę przyznać jestem zadowolony. Nawet bardzo.<br />
<br />
Po pierwsze:<br />
W Javie mam zdefiniowane wszystko, absolutnie wszystko czego potrzebuję do programowania. Rzeczy których nie ma łatwo można samemu zaimplementować. Chwilami programowanie wygląda jak uzupełnianie formularza ;)<br />
Po drugie:<br />
Niby w Javie mamy mocne typowanie. A jednak. Nic nie broni by zrobić z niej język "dynamiczny". Wszystko dzięki typowi object. Zamiast robić 10 zmiennych różnych typów wystarczy jedna(choć to też marne tłumaczenie-zazwyczaj korzysta się ze stosów czy kolejek i linked list-a te już muszą mieć typ object :)). Jest to również lekarstwo na typy generyczne(jak ktoś jest uczulony) i chwilami na overrloading'i metod.<br />
Po trzecie:<br />
Pełna obiektowość. No może nie pełna, bo nie mamy możliwości zrobienia czegoś takiego jak w Ruby'm:<br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">5.</span><span class="Apple-style-span" style="color: magenta; font-family: Georgia, 'Times New Roman', serif;">toStr</span><br />
ale bardzo się przydaje. Np.wyrabia dobre nawyki etc.<br />
Po czwarte:<br />
Przenośność. Tutaj chyba nie trzeba zbyt dużo tłumaczyć.<br />
Po piąte:<br />
Prawie każdy obiekt posiada iterator, a to pozwala na znaczne ułatwienia.<br />
Po szóste:<br />
Prędkość. Wbrew powszechnej opini, Java nie jest wolnym językiem. Potrafi wykonać niektóre operacje dużo szybciej niż gcc! Po za tym nie jesteśmy zmuszeni do kompilowania kodu non-stop, a dzięki projektowi gcj możemy tworzyć natywne dla systemu binarki. btw. jeszcze ta opinia o prędkości, którą wiele osób propaguje pochodzi z czasów pierwszych edycji Javy, czyli jeszcze bez JIT'a i hot-swapping'u.<br />
<br />
Hm... to już chyba koniec iteracji...tfu, wyliczania :)<br />
PS: Rozpoczyna się seria bardziej sensownych wpisów :) Niedługo opowiem jak skonstruować bardzo przejrzysty parser dowolnego języka oraz jak stworzyć maszynę witrualną. Niestety zanim to się stanie chcę ukończyć Lynx'a.Assahttp://www.blogger.com/profile/10098467995716192485noreply@blogger.com2tag:blogger.com,1999:blog-2843887411382698695.post-79498316872645757902011-10-27T07:19:00.000-07:002011-11-03T12:53:41.998-07:00ReklamyWitam!<br />
Dostałem dzisiaj bardzo śmiesznego maila. Hmm...może zamiast opisywać co takiego w nim było wrzuce tutaj ocenzurowaną wersję ;)<br />
Pan Dmytro(lol, coś translator nawalił mu) pisze:<br />
<blockquote class="tr_bq">Witam!<br />
Chcialbym tylko podziekowac ci za super blog <a href="http://assalog.blogspot.com/">assalog.blogspot.com</a>.<br />
Przeczytałem post "Lynx32 published!", i spędziłem na twoim blogu jeszcze godzinę z przyjemnością :) Piszesz dobre, ciekawo i łatwo do czytania. Bardzo ładny jest post "while i...when".<br />
Generalnie pracuję w firmie XXX, wyszukiwarce ofert pracy na całym świecie.<br />
Moim zadaniem jest przekonanie blogerów o umieszczenie linków do naszej strony.<br />
Kocham swoją pracę, mamy przyjazny zespół i dobre kierownictwo, ale niestety nie mam pojęcia jak przekonać bloggera umieścić do nas link, obawiam się, mogę zostać wyrzucony za to z pracy :(<br />
I teraz, zamiast wysyłania mailów do tysięcy różnych blogów, czytam twój.<br />
Szczerze mówiąc, nie jestem bardzo pewien, że link do naszej strony w Polsce X(link do strony), będzie odpowiednia do twego bloga, ale jeśli jest to możliwe, masz ode mnie ogromne PODZIĘKOWANIA! Strona jest naprawdę super, bardzo pomaga w wyszukiwaniu pracy.<br />
Życzę miłego dnia i dobry nastrój! Jeszcze raz dziękuję za fajny blog. Pisz więcej.<br />
P.S. Twój znak Zodiaku jest Baran?! Tacy ludzi są zdolne!<br />
My best,<br />
Dmytro Ivanenko</blockquote><div>Account Manager <span style="color: #2a2a2a; font-family: Arial; font-size: x-small; line-height: normal;"></span><br />
<div align="left" style="line-height: 17px;"></div>Jak widać tekst wygląda co najmniej szablonowo. Nie wiem czy to jest jakiś blogger'owy spam czy co, ale powiem szczerze: gdyby nie drobne wpadki z translatorem to dałbym się nabrać i zamieścił ową reklamę.<br />
No cóż trzeba pogratulować jenteligencji i sztuki operowania ludzkimi uczuciami-dałem się nabrać na tą litość! </div>Assahttp://www.blogger.com/profile/10098467995716192485noreply@blogger.com1tag:blogger.com,1999:blog-2843887411382698695.post-63695674357069654942011-10-15T12:47:00.000-07:002011-10-16T01:13:15.108-07:00Lynx32 published!<span class="Apple-style-span" style="font-size: large;"><b>Hai all!</b></span><br />
It's my first post in english :D Sorry if i speak everything wrong but my english is medium to low :P<br />
You may have heard something about Lynx32 but most people have never heard about it.<br />
Lynx32 is easy project. It sounds awful if you are a complete layman, or programming from the recently, but it really is a simple project.<br />
<b><span class="Apple-style-span" style="font-size: large;">The simple architecture </span></b><br />
<div>Lynx has 4 registers: two 16 bits, two 8 bits and a common set of two 8-bit.In the future I plan to implement a stack. I want to use it for functions and procedures as a "container" to the arguments. While we're on the list, todo, it would be to provide:</div><div><b><span class="Apple-style-span" style="font-size: large;">TODO list:</span></b></div>My task list is simple: in the future I plan to Implement "green threads" (as in the JVM),Procedures and functions and variables. The Latter is planning to keep the code as aseparate segment, however, as in assembler. I thought also of the use for that purpose registers, but scares me the amount of such records in such a Parrot(32 for all of 4 types!).<br />
<div><b><span class="Apple-style-span" style="font-size: large;">End</span></b><br />
<div>This entry is short because it is in English. I hope that you are interested in this project. If so go to<a href="http://code.google.com/p/lynx32/"> this site</a></div><div>and help me(eg. leave a comment or tell me about errors).</div></div>Assahttp://www.blogger.com/profile/10098467995716192485noreply@blogger.com0tag:blogger.com,1999:blog-2843887411382698695.post-18361681218173931842011-10-15T05:44:00.000-07:002011-10-15T05:44:16.130-07:00while i...whenWitam!<br />
Rzadko się spotyka języki tak zaprojektowane, że implementują funkcyjność bez szkody dla obiektowości. Takim językiem na pewno nie jest OCaml gdyż bardzo upośledza on sam siebie...(F# jest już ładniejszy).<br />
Nemerle zaś bardzo dobrze radzi sobie z obiektowością(używając stałych!). Bardzo ciekawym przypadkiem rozwiązania pewnego problemu na 2 sposoby jest liczenie linii w pliku tekstowym:<br />
<span class="Apple-style-span" style="background-color: white; font-family: sans-serif; font-size: 13px; line-height: 19px;"></span><br />
<pre class="nemerle" style="background-color: #f9f9f9; border-bottom-color: rgb(47, 111, 171); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(47, 111, 171); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(47, 111, 171); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(47, 111, 171); border-top-style: dashed; border-top-width: 1px; color: black; line-height: 1.1em; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em;"><span style="color: red;">class</span> LineCounter
<span style="color: black;">{</span>
<span style="color: #0600ff;">public</span> <span style="color: #0600ff;">static</span> Main <span style="color: black;">(</span><span style="color: black;">)</span> : <span style="color: #0600ff;">void</span>
<span style="color: black;">{</span>
<span style="color: teal; font-style: italic;">// Open a file.</span>
<span style="color: #0600ff;">def</span> sr = <span style="color: black;">System</span>.IO.StreamReader <span style="color: black;">(</span><span style="color: grey;">"SomeFile.txt"</span><span style="color: black;">)</span>;
<span style="color: #0600ff;">mutable</span> line_no = <span style="color: red;">0</span>;
<span style="color: #0600ff;">mutable</span> line = sr.ReadLine <span style="color: black;">(</span><span style="color: black;">)</span>;
<span style="color: #0600ff;">while</span> <span style="color: black;">(</span>line != <span style="color: #0600ff;">null</span><span style="color: black;">)</span> <span style="color: black;">{</span>
<span style="color: black;">System</span>.Console.WriteLine <span style="color: black;">(</span>line<span style="color: black;">)</span>;
line_no = line_no + <span style="color: red;">1</span>;
line = sr.ReadLine <span style="color: black;">(</span><span style="color: black;">)</span>;
<span style="color: black;">}</span>;
<span style="color: black;">System</span>.Console.WriteLine <span style="color: black;">(</span><span style="color: grey;">"Line count: {0}"</span>, line_no<span style="color: black;">)</span>;
<span style="color: black;">}</span>
<span style="color: black;">}</span></pre>Jest to typowo imperatywne rozwiązanie problemu. Teraz zobaczmy sobie przykład wykorzystania when.<br />
<span class="Apple-style-span" style="background-color: white; font-family: sans-serif; font-size: 13px; line-height: 19px;"></span><br />
<pre class="nemerle" style="background-color: #f9f9f9; border-bottom-color: rgb(47, 111, 171); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(47, 111, 171); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(47, 111, 171); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(47, 111, 171); border-top-style: dashed; border-top-width: 1px; color: black; line-height: 1.1em; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em;"><span style="color: red;">class</span> LineCounterWithoutLoop
<span style="color: black;">{</span>
<span style="color: #0600ff;">public</span> <span style="color: #0600ff;">static</span> Main <span style="color: black;">(</span><span style="color: black;">)</span> : <span style="color: #0600ff;">void</span>
<span style="color: black;">{</span>
<span style="color: #0600ff;">def</span> sr = <span style="color: black;">System</span>.IO.StreamReader <span style="color: black;">(</span><span style="color: grey;">"SomeFile.txt"</span><span style="color: black;">)</span>;
<span style="color: #0600ff;">mutable</span> line_no = <span style="color: red;">0</span>;
<span style="color: #0600ff;">def</span> read_lines <span style="color: black;">(</span><span style="color: black;">)</span> : <span style="color: #0600ff;">void</span> <span style="color: black;">{</span>
<span style="color: #0600ff;">def</span> line = sr.ReadLine <span style="color: black;">(</span><span style="color: black;">)</span>;
<span style="color: #0600ff;">when</span> <span style="color: black;">(</span>line != <span style="color: #0600ff;">null</span><span style="color: black;">)</span> <span style="color: black;">{</span>
<span style="color: black;">System</span>.Console.WriteLine <span style="color: black;">(</span>line<span style="color: black;">)</span>;
line_no = line_no + <span style="color: red;">1</span>;
read_lines <span style="color: black;">(</span><span style="color: black;">)</span>
<span style="color: black;">}</span>
<span style="color: black;">}</span>;
read_lines <span style="color: black;">(</span><span style="color: black;">)</span>;
<span style="color: black;">System</span>.Console.WriteLine <span style="color: black;">(</span><span style="color: grey;">"Line count: {0}"</span>, line_no<span style="color: black;">)</span>;
<span style="color: black;">}</span>
<span style="color: black;">}</span></pre>Jak widać mamy bardzo ładny przykład :)<br />
When działa podobnie jak while jednak bez skoku :) Wykonuje kod dopóki, jednak nie skacze na początek(po wykonaniu kodu) jeżeli warunek jest prawdziwy. To bardzo ciekawy lukier składniowy, sprawiający, że można praktycznie odejść od imperatywizmów i skupić się na rekurencji :)Assahttp://www.blogger.com/profile/10098467995716192485noreply@blogger.com0tag:blogger.com,1999:blog-2843887411382698695.post-28511288235867889162011-09-30T08:23:00.000-07:002011-10-02T07:18:44.213-07:00Kombinatoryka okiem programisty cz. I<style type="text/css">
.keywordpy {
color: #FF8000;
font-weight: bold;
}
.keyword3py {
color: #4179C5;
font-weight: bold;
}
.default {
font-family: Courier New, Trebuchet, Tahoma, sans-serif;
font-size: 10;
color: #000000;
background-color: #FFFFFF;
}
.comment {
color: #008000;
font-weight: bold;
}
.number {
color: #DD0101;
}
</style><br />
Witam!<br />
Dziś i nie tylko dziś opowiemy sobie o kombinatoryce. Czym jest więc ta kombinatoryka?<br />
<br />
<blockquote><b>Kombinatoryka</b> to teoria obliczania liczby elementów <a href="http://pl.wikipedia.org/wiki/Zbi%C3%B3r">zbiorów</a> skończonych. Powstała dzięki grom hazardowym, a swój rozwój zawdzięcza rachunkowi prawdopodobieństwa, teorii grafów, teorii informacji i innym działom matematyki stosowanej. Stanowi jeden z działów matematyki dyskretnej.</blockquote><br />
Dla programistów stanowi rzecz równie ważną co algorytmika czy teoria grafów.<br />
Mówiąc w skrócie kombinatoryka zajmuję się zbiorem wyrażeń uporządkowanym. Przykładów zastosowania kombinatoryki jest sporo zwłaszcza w wymienionych powyżej dziedzinach. Opłaca się znać choć jej podstawy by móc powiedzieć ile np. jest możliwych kombinacji liczb w Dużym Lotku. A więc zaczynajmy!<br />
Przykłady będę podawał w 2 językach: Pythonie oraz Haskell'u.<br />
<span class="Apple-style-span" style="font-size: x-large;">0. Silnia</span><br />
Ten rozdział jest niejako przypomnieniem czym jest podstawowa funkcja kombinatoryki czyli silna.<br />
<blockquote>Silnią <b>n!</b> liczby naturalnej <i>n</i> nazywamy iloczyn <i>1 * 2 * 3 * ... * n, </i>gdzie zakłada się, że<i> 1! =1 </i>i<i> 0! = 1.</i></blockquote>Czyli na przykład silnią n równemu 4 jest 24, bo:<br />
<i>4! = 1 * 2 * 3 * 4 = 24</i><br />
<span class="Apple-style-span" style="font-size: x-large;">1. Rozmieszczenia(wariacje)</span><br />
Rozmieszczeniami z <i>n</i> elementów po <i>k</i> nazywamy ciągi k-wyrazowe, w których każdej z liczb <i>1, 2, ..., k</i> odpowiada jeden z <i>n </i>danych przedmiotów. Rozmieszczenia te mogą się różnić bądź elementami, bądź przypadkiem elementów.<br />
<div>Na przykład rozmieszczenia z trzech elementów <i>a, b ,c</i> po 2: <i>ab, ac, bc, ba, ca, cb.</i></div><div>Ilość wszystkich rozmieszczeń z <i>n</i> różnych elementów po <i>k</i> wyraża się wzorem:<br />
<div class="separator" style="clear: both; text-align: center;"></div><div style="text-align: center;"><span class="Apple-style-span" style="font-size: large;"><br />
</span></div></div><div class="separator" style="clear: both; text-align: center;"></div><div><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEii4HUkSa3uUwTdZI7pzm47UQxQHmG-whNMz6-TXtj9svjfWAO4Q5EIR0jiufke5cyF4odvfqwbW8qBK9-Xo5TIIP9MzJsiG5VR-r-jYV8v827vHcbtEiCTFoqn6BjuhW5b9RL62RNlxYmJ/s1600/abf242b57837d6ccb15a7b44ac7f9bd5.bmp" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEii4HUkSa3uUwTdZI7pzm47UQxQHmG-whNMz6-TXtj9svjfWAO4Q5EIR0jiufke5cyF4odvfqwbW8qBK9-Xo5TIIP9MzJsiG5VR-r-jYV8v827vHcbtEiCTFoqn6BjuhW5b9RL62RNlxYmJ/s1600/abf242b57837d6ccb15a7b44ac7f9bd5.bmp" /></a></div><br />
Np:<br />
<div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7xZPHZykmE5onixh1jeVBecHAu7px6DuztzqJ5AWqJd8nS6FhwNPHOHp1fG7ODlM3ImnsxIQRDp2jJ7Q6zS4NPyU8gSbCR_mMQgyg51-0Itshirpf7ovo3NflPesg86ze_k4N9WufM574/s1600/V32.bmp" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7xZPHZykmE5onixh1jeVBecHAu7px6DuztzqJ5AWqJd8nS6FhwNPHOHp1fG7ODlM3ImnsxIQRDp2jJ7Q6zS4NPyU8gSbCR_mMQgyg51-0Itshirpf7ovo3NflPesg86ze_k4N9WufM574/s1600/V32.bmp" /></a></div><br />
<div style="text-align: center;"><div style="text-align: left;">Kod w Haskell'u:</div><div style="text-align: left;"><pre><span class="comment">-- Funkcja Silnia</span>
silnia::Int ->Int
silnia <span class="number">0</span> = <span class="number">1</span>
silnia n = n * silina (n-<span class="number">1</span>)
<span class="comment">-- Funkcja V</span>
v::Int -> Int -> Int
v k n = silnia(n) / silnia(n-k)
</pre></div></div>Kod w Python'ie:<br />
<pre><span class="keywordpy">def</span> <span class="keyword3py">silnia</span>(n):
<span class="keywordpy">return</span> init(<span class="userkw">reduce</span>(<span class="keywordpy">lambda</span> x,y: x*y, <span class="userkw">range</span>(<span class="number">2</span>, n+<span class="number">1</span>) <span class="keywordpy">or</span> [<span class="number">1</span>]))
<span class="keywordpy">def</span> <span class="keyword3">v</span>(k,n):
<span class="keywordpy">return</span> silnia(n) / silnia(n-k)
</pre>Wiemy jak obliczać ilość możliwych kombinacji, ale bardziej interesujące wydaję się jak je tworzyć.</div><div>C.D.N.<br />
<span class="Apple-style-span" style="font-size: x-large;">2. Permutacje</span><br />
Permutacjami z<i> n </i>elementów nazywamy ciągi<i> n-wyrazowe</i>, w których każdej z liczb <i>1,2,...,n</i> odpowiada jeden z <i>n</i> danych przedmiotów. Permutacje różnią się tylko porządkiem elementów. Na przykład permutacje z trzech elementów <i>a, b, c</i>: <i>abc, bca, cab, cba, bac, acb.</i> Ilość wszystkich permutacji z<i> n</i> różnych elementów wyznacza się wzorem:<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgG0bFUkNuHlvpZOOHlQAM-cKtCN_9PieV6k-TGFm75Tr9EM2X-VvNsiZ2qhXME-beIOecOVWNOWl5A7zDjty_PNQiz-Zix2TL47mFZ9AfDxbwueyAnZyXfCguEuo67Nmjg3UcEqLoaWpxz/s1600/permutacje.bmp" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgG0bFUkNuHlvpZOOHlQAM-cKtCN_9PieV6k-TGFm75Tr9EM2X-VvNsiZ2qhXME-beIOecOVWNOWl5A7zDjty_PNQiz-Zix2TL47mFZ9AfDxbwueyAnZyXfCguEuo67Nmjg3UcEqLoaWpxz/s1600/permutacje.bmp" /></a></div><div class="separator" style="clear: both; text-align: left;">Jeżeli wśród<i> n</i> elementów a, b, c, ... znajdują się jednakowe elementy:</div><div class="separator" style="clear: both; text-align: left;">a występuje α, b występuje β razy, c występuje γ razy itd., to:</div><div class="separator" style="clear: both; text-align: left;"><br />
</div><br />
</div>Assahttp://www.blogger.com/profile/10098467995716192485noreply@blogger.com11tag:blogger.com,1999:blog-2843887411382698695.post-62787765735371306742011-09-26T13:27:00.000-07:002011-09-26T13:27:51.478-07:00Trudne programowanie w C++Witam!<br />
<br />
Jako że ostatni przepisuję dosyć długaśśnyy kod z C# na C++ natknąłem się, a raczej spostrzegłem pewną hm... jak by to nazwać...odstępstwo(?). Chodzi mi tutaj o język C++ i programowanie obiektowe. W każdym chyba dziś bardziej poważanym języku mamy możliwość projektowania obiektowego. Wd. mnie w C++ jest ono NAJBARDZIEJ SKOPANE. Dlaczego? Ponieważ brak mi tutaj jakiegoś uporządkowania, wygody... Gdy piszę jakiś projekt zazwyczaj rzadko zaglądam do manuali języka ponieważ no nie muszę. Jako że dosyć często piszę w C i Python nie jest mi obcy, raczej w tych językach się skupiam. W C do manuli nie zaglądam w sumie w ogóle(ew. jeżeli potrzebuję korzystać z bibliotek typu string etc.), w Pythonie coraz rzadziej...Natomiast w C++ przy manualu spędzam więcej czasu niż zajmuje mi pisanie! Problemy sprawiane przez dziwną dosyć składnię i niepełną obiektowość są poprostu przybijające! Dziwne wypełnianie metod, wirtualny(!) destruktor, pliki nagłówkowe ze strażnikami, bezsensowne RTTI zwiększające wagę binarek...Można wymieniać latami. Szkoda że mam trochę zbyt dużo roboty bo całkiem rozbudowany jest mój system obiektowości oraz klasa string którą przy jej pomocy w C napisałem. Efekt przedstawię w miarę wolnej chwili :)Assahttp://www.blogger.com/profile/10098467995716192485noreply@blogger.com0tag:blogger.com,1999:blog-2843887411382698695.post-9096539292920049392011-09-13T09:25:00.000-07:002011-09-24T07:12:49.645-07:00Supremacy 1914 - strategia czasu rzeczywistego osadzona w realiach I Wojny Światowej<a href="http://www.supremacy1914.pl/index.php?id=177&L=4&lp=2&lpv=1&uid=881654#.Tm-D6V0zi2c.blogger">Supremacy 1914 - strategia czasu rzeczywistego osadzona w realiach I Wojny Światowej</a>: Zagraj w Supremacy 1914, darmową strategię czasu rzeczywistego oraz laureata nagrody Gry Przeglądarkowej Roku 2009Assahttp://www.blogger.com/profile/10098467995716192485noreply@blogger.com0tag:blogger.com,1999:blog-2843887411382698695.post-81559985073882770502011-09-08T09:26:00.000-07:002011-09-08T09:26:10.617-07:00Clojure-Lisp na JVM?Hai All!<br />
<br />
Otóż niedawno zainteresowałem się przepięknym językiem jakim jest Lisp :). Szukając implementacji odpowiedniej dla mojego systemu oraz upodobań trafiłem najpierw na Scheme(bardzo fajnie sie piszę zwłaszcza pod schemik'iem :D). Wczoraj znalazłem Clojure. Znalazłem w sumie przez przypadek ponieważ szukałem jakiejś biblioteki graficznej pod Scheme. Nie znalazłem, za to pooglądałem sobie src kilku gierek napisanych w Clojure z wykorzystaniem JOGL oraz AWT i Swing'a. Ogólnie muszę jeszcze obczaić AWT i Swinga w szczególności operacje na obrazach, a więc czeka mnie długie debuggowanie .clj :) Myślę że nie potrwa to jakoś potwornie długo i niedługo pojawi się jakaś gierka sygnowana moim imieniem :)Assahttp://www.blogger.com/profile/10098467995716192485noreply@blogger.com1tag:blogger.com,1999:blog-2843887411382698695.post-50104375512085133952011-08-30T10:51:00.000-07:002011-09-24T05:01:55.594-07:00{Work-in-progress}[Megatutorial]Ada<style type="text/css">
.comment {
color: #00A115;
font-style: italic;
}
.default {
font-family: monospace, Trebuchet, Tahoma, sans-serif;
font-size: 10;
color: #F8F8F8;
background-color: #0C1021;
}
.keyword {
color: #00FF00;
font-weight: bold;
}
.string {
color: #61CE3C;
}
.number {
color: #D8FA3C;
}
.keyword2 {
color: #4179C5;
font-weight: bold;
}
</style><br />
Witam wszystkich w moim mega tutorialu dotyczącym programowania w języku Ada!<br />
Po pierwsze chciałbym zaznaczyć że tutorial jest wieloplatformowy i nie dotyka rzeczy specyficznych dla danej platformy systemowej. Aczkolwiek nie gwarantuje że każdy przedstawiony tu kod/porada będzie działać.<br />
Tutorial piszę dla średnio zaawansowanych programistów. Jeżeli będzie to potrzebne mogę go rozszerzyć o pewne komentarze.<br />
<b><span class="Apple-style-span" style="font-size: x-large;">1. Dlaczego Ada?</span></b><br />
W pierwszym rozdziale wypadałoby powiedzieć dlaczego warto poznać Adę?<br />
Powodów może być kilka:<br />
<br />
<ul><li>pracujesz w wojsku jako programista :P</li>
<li>musisz pisać niezawodny kod </li>
<li>potrzebujesz języka który umożliwia łatwe utrzymanie kodu</li>
<li>piszesz aplikacje rozproszone</li>
<li>szukasz wygodnego, obiektowego i w pełni kompilowalnego języka</li>
</ul>Coś tam na pewno się jeszcze znajdzie ;)<br />
Ogólnie mówiąc Ada jest świetnym wyborem dla programisty solidnego, dbającego o użytkowników etc.<br />
Może te wszystkie zalety nadal cię nie przekonały, ja jednak uważam że jest to świetny język posiadający własną filozofię pisania kodu :)<br />
<b><span class="Apple-style-span" style="font-size: x-large;">2. Historia Ady</span></b><br />
Jak wszyscy wiemy pierwszym programistą była Augusta Ada King, hrabina Lovelace. Jako hołd pierwszej programistce nazwano na jej cześć język opracowany przez amerykański departament obrony.<br />
<b><span class="Apple-style-span" style="font-size: x-large;">3. Cechy języka</span></b><br />
<br />
<ol><li>Pierwsze co da się zauważyć to składnia przypominająca wyglądem składnie Fotrana(swoją drogą bardzo przyjemna i miła dla oka :))</li>
<li>Wartościowanie leniwe</li>
<li>non-case sensitive(nieczułość na wielkość znaków)</li>
<li>Cały program to jedna wielka procedura zawierająca podprocedury. W przeciwieństwie do C może się nazywać dowolnie :)</li>
<li>Brak funkcji w stylu print-format etc. Uniemożliwia to dodatkowe błędy związane z nadmiarem lub niedoborem argumentów</li>
<li>"Zabezpieczenie" kolejności rzutowania.</li>
</ol><b><span class="Apple-style-span" style="font-size: x-large;">4. Instalacja kompilatora GNAT. Pierwszy program.</span></b><br />
<span class="Apple-style-span" style="font-size: large;">4.1 Windows</span><br />
Ściągamy pakiet portów MinGW.<br />
<span class="Apple-style-span" style="font-size: large;">4.2 Linux</span><br />
Uruchamiamy instalator pakietów i szukamy gcc-ada(ew. może być zapisane jako GNAT). Aby sprawdzić czy GNAT jest w repozytoriach piszemy:<br />
cnf gnat<br />
<span class="Apple-style-span" style="font-size: large;">4.3 Hello World</span><br />
Aby sprawdzić czy nasz kompilator działa skompilujmy przykładowy program<br />
<pre><span class="keyword">with</span> ada.text_io;
<span class="keyword">use</span> ada.text_io;
<span class="keyword">procedure</span> Hello <span class="keyword">is</span>
<span class="comment">-- Hello example
</span> <span class="comment">-- Tutaj deklarować będziemy zmienne
</span>
<span class="keyword">begin</span>
Put_Line(<span class="string">"Hello World!"</span>);
<span class="keyword">end</span> Hello;
</pre>Aby skompilować powyższy przykład uruchamiamy gnatmake:<br />
gnatmake <nazwa_pliku><br />
Uruchamiamy:<br />
Linux:<br />
./Hello<br />
Win:<br />
Hello<br />
(Możliwe że pod Windows będzie trzeba coś linkować...)<br />
<b><span class="Apple-style-span" style="font-size: x-large;">5. Podstawy składni</span></b><br />
Teraz przyszła pora omówić sobie ten nasz hello world.<br />
Pierwsza linijka informuje o korzystaniu z pakietu(tak biblioteki w Adzie są podzielone w pakiety podobne do tych znanych z Javy). Kolejna jest niejako synonimem C++'owego using namespace czy C# using. Chodzi o to by za każdym razem nie musieć pisać Text_IO(istnieje także wygodniejsze i czytelniejsze rename'owanie pakietów ;)). Jak już mówiłem program(czy też pakiet) w Adzie składa się z jednej wielkiej procedury. W tej procedurze deklarujemy zmienne i podprocedury. "Sekcję" kodu właściwego rozpoczyna słowo begin a kończy end z nazwą procedury. Put_Line wypisuje tekst na standardowe wyjście(nie ma przeszkód by tą procedurą "mówić" do drukarki czy innego urządzenia wyjściowego). Warto zauważyć że każde wyrażenie musi być zakończone średnikem. Komentarze występują jedynie w wersji jednolinijkowej(--).<br />
<span class="Apple-style-span" style="font-size: x-large;"><b>6.Struktury kontrolne</b></span><br />
<span class="Apple-style-span" style="font-size: large;">6.1 If-else</span><br />
<pre><span class="keyword">if</span> condition <span class="keyword">then</span>
statement;
<span class="keyword">else</span>
other statement;
<span class="keyword">end if</span>;</pre><span class="Apple-style-span" style="font-size: large;">6.2 If-elsif-else</span><br />
<pre><span class="keyword">if</span> condition <span class="keyword">then</span>
statement;
<span class="keyword">elsif</span> condition <span class="keyword">then</span>
other statement;
<span class="keyword">elsif</span> condition <span class="keyword">then</span>
other statement;
...
<span class="keyword">else</span>
another statement;
<span class="keyword">end if</span>;</pre><pre><span class="Apple-style-span" style="font-size: large;">6.3 case(odpowiednik switch w innych językach)</span></pre><pre><span class="keyword">case</span> X <span class="keyword">is</span>
<span class="keyword">when</span> <span class="number">1</span> =>
Walk_The_Dog;
<span class="keyword">when</span> <span class="number">5</span> =>
Launch_Nuke;
<span class="keyword">when</span> <span class="number">8</span> | <span class="number">10</span> =>
Sell_All_Stock;
<span class="keyword">when others</span> =>
Self_Destruct;
<span class="keyword">end case</span>;
</pre><pre>when others to odpowiednik default w C.</pre><pre><b><span class="Apple-style-span" style="font-size: x-large;">7. Pętle i skoki</span></b></pre><pre><span class="Apple-style-span" style="font-size: large;">7.1 goto</span></pre><pre><span class="keyword">goto</span> Label;
Dont_Do_Something;
<span class="keyword2"><<Label>></span>
...
</pre><pre><span class="Apple-style-span" style="font-size: large;">7.2 return</span></pre><pre>Dla procedur:</pre><pre><span class="keyword">return</span>;</pre><pre>Dla funkcji:
<span class="keyword">return</span> value;</pre><pre>7.3 Pętla nieskończona:</pre><pre>Endless_Loop:</pre><pre><span class="keyword"> loop</span>
Do_Something;
<span class="keyword">end loop</span> Endless_Loop;
</pre><pre>7.4 While</pre><pre>While_Loop :
<span class="keyword">while</span> X <= <span class="number">5</span> <span class="keyword">loop</span>
X := Calculate_Something;
<span class="keyword">end loop</span> While_Loop;
</pre><pre>7.5 Until</pre><pre>Until_Loop :
<span class="keyword">loop</span>
X := Calculate_Something;
<span class="keyword">exit</span> Until_Loop <span class="keyword">when</span> X > <span class="number">5</span>;
<span class="keyword">end loop</span> Until_Loop;
</pre><b><span class="Apple-style-span" style="font-size: x-large;">8. Zmienne</span></b><br />
W Ada mamy trzy typy zmiennych:<br />
Integer, Float oraz Access.<br />
Pierwsze dwa jak łatwo zauważyć to typy proste(odpowiednio całkowity i zmiennoprzecinkowy). Trzeci typ to wskaźnik. Jednak prawie w ogóle nie przypomina on wskaźnika znanego z C. Bardziej jest to "iterator" dla struktur i tablic.<br />
<div>Podstawy:</div>C:<br />
int i;<br />
<div>int a, b, c; </div><div>int j = 0; </div><div>int k, l = 1;<br />
Ada:<br />
i : Integer;<br />
<div>a, b, c : Integer; </div><div>j : Integer := 0; </div><div>k, l : Integer := 1;</div></div><div>Stałe deklarujemy w ten sposób:</div><div>lol : <b>constant</b> :=7;</div><div>lub z określeniem typu:</div><div>lol : <b>constant</b> Integer :=7;</div><b><span class="Apple-style-span" style="font-size: x-large;">9. Nowe typy:</span></b><br />
Ada posiada rozległy mechanizm typów zmiennych. Umożliwia on bardzo dokładne manipulowanie stworzonymi przez nas typami. Aby utworzyć nowy typ o nazwie INT piszemy:<br />
<div><pre><span class="keyword">type</span> INT <span class="keyword">is new</span> Integer;
</pre>Teraz utworzymy sobie zmienną typu INT:</div><div>a : INT;</div><div>Warto nadmienić iż nowy typ INT to coś zupełnie różnego od typu Integer!</div><div>Nie jest możliwe przypisanie zmiennej typu INT do zmiennej typu Integer i na odwrót!</div><div>Należy pamiętać również o tym, że nowy typ wymaga również nowych operatorów a więc nie mamy możliwości operowania na nim zbyt wielkiej!</div><div>Aby nie utrudniać sobie życia tworzeniem cały czas operatorów powstały podtypy(subtype po angielsku):</div><div><b><span class="Apple-style-span" style="font-size: x-large;">10. Podtypy:</span></b></div><div>Stwórzmy sobie podtyp INT "dziedziczący" z typu Integer:</div><div><pre><span class="keyword">subtype</span> INT <span class="keyword">is</span> Integer;
a : INT;
</pre>Teraz spokojnie możemy przypisać do zmiennej typu INT zmienną typu Integer lub na odwrót.<br />
W typach oraz podtypach możemy definiować ich "rozpiętość" czyli zakres z jakiego mogą przyjmować liczby. Np.:<br />
<pre><span class="keyword">subtype</span> INT <span class="keyword">is</span> Integer(0,100);
<span class="Apple-style-span" style="font-family: 'Times New Roman'; white-space: normal;">teraz stworzyliśmy typ INT o zakresie od 0 do 100.</span></pre><pre><span class="Apple-style-span" style="font-family: 'Times New Roman';"><span class="Apple-style-span" style="white-space: normal;">11. Podprocedury:</span></span></pre><pre><span class="Apple-style-span" style="font-family: 'Times New Roman';"><span class="Apple-style-span" style="white-space: normal;">Podprogramy, czy też podprocedury, funkcje, procedury etc. są bardzo użytecznym narzędziem.</span></span></pre><pre><span class="Apple-style-span" style="font-family: 'Times New Roman';"><span class="Apple-style-span" style="white-space: normal;">Stwórzmy funkcję suma która będzie dodawała A i B a wynik zwracała w zmiennej C:</span></span></pre><pre><span class="Apple-style-span" style="font-family: 'Times New Roman';"><span class="Apple-style-span" style="white-space: normal;"> </span></span></pre></div><pre><span class="keyword">procedure</span> Suma(A,B: <span class="keyword">in</span> Integer; C: <span class="keyword">out</span> Integer) <span class="keyword">is
begin</span>
C := A + B;
<span class="keyword">end</span> Suma;
</pre>Jak widać każdą procedurę tworzymy za pomocą keyword'a procedure. Następnie podajemy jej nazwę. Jako parametry przyjmuję zmienne A i B typu Integer. Warto zwrócić uwagę na poprzedzający typ keyword in. Oznacza on, że te dwa parametry będą używane jedynie wewnątrz procedury i ich wartość nie zostanie zmieniona tak jak dzieje się ze zmienną podaną jako C.<br />
<div><b><span class="Apple-style-span" style="font-size: x-large;">12. Procedure Funkcje() is</span></b></div><div>W Adzie funkcje jako takie praktycznie nie istnieją. Używa się ich jedynie do przeładowania operatorów przy tworzeniu nowego typu.</div><div><pre><span class="keyword">function</span> <span class="string">"+"</span> (Op1, Op2: <span class="keyword">in</span> Nowy_typ) <span class="keyword">return</span> Nowy_typ <span class="keyword">is</span>
<span class="keyword">begin</span>
<span class="comment">-- Definicja operatora dodawania
</span> <span class="keyword">end</span> <span class="string">"+"</span>;
</pre><pre></pre>13. Procedure Wywoływanie_procedur() is</div><div>Procedury w Adzie możemy wywoływać na 2 sposoby:</div><pre><span class="comment">-- Sygnatura procedury
</span><span class="keyword">procedure</span> Write ( Text: String, X, Y: Integer )
<span class="comment">-- Wywołanie
</span>Write (<span class="string">"Hello"</span>, <span class="number">5</span>, <span class="number">10</span>);
<span class="comment">-- lub
</span>Write ( Text => <span class="string">"Hello"</span>, X => <span class="number">5</span>, Y => <span class="number">10</span> );
</pre><pre></pre>Assahttp://www.blogger.com/profile/10098467995716192485noreply@blogger.com0tag:blogger.com,1999:blog-2843887411382698695.post-46938592057031461952011-08-29T12:07:00.000-07:002011-08-29T12:07:25.788-07:00Jak nie być script kiddem?W społeczności "hackerskiej" określenie <i>script kidd </i>oznacza osobę korzystającą z programów używanych do różnego rodzaju ataków nie znając ich działania. Nie jest to zatem określenie hakera korzystającego z cudzego oprogramowania, zamiast je napisać. Nawet najsławniejsi w swym czasie Anonymous korzystali z Low Orbit Ion Cannon które przecież nie jest ich dziełem, a nikt nie nazywa ich script kiddami.<br />
Pojęcie script kidda zatem mamy wytłumaczone. Teraz powiedzmy sobię jak takim script kiddem nie być:<br />
<br />
<ol><li>Po pierwsze-ucz się jak najwięcej. Żeby nie lamić musisz wiedzieć jak najwięcej. Nie ważne czy będzie to mniej lub bardziej związane z hackingiem.</li>
<li>lrn google. Tam jest wszystko czego tylko sobie życzysz :)</li>
<li>Programuj jak najwięcej. Script kidd nie potrafi napisać aplikacji podobnej do tej z której korzysta-dlatego jest lamerem.</li>
<li>Jeżeli korzystasz z jakiejś aplikacji spytaj się jego twórcy lub sam pomyśl jak ona może działać :)</li>
<li>Use source, Luke :)</li>
</ol>No to byłoby na tyle :)Assahttp://www.blogger.com/profile/10098467995716192485noreply@blogger.com2tag:blogger.com,1999:blog-2843887411382698695.post-61213709456351063162011-08-21T10:48:00.000-07:002011-08-27T12:42:48.433-07:00Wykłady na #coding-gods.orgWitam!<br />
Na forum coding-gods.org stworzyliśmy nowy projekt społeczny pt.wykłady na IRC.<br />
Każdy kto jest zainteresowany od dziś może na<a href="http://webchat.quakenet.org/?channels=%23coding-gods&Login=Login&nick=LOL"> naszym irc</a> prowadzić wykłady :). Wystarczy napisać do mnie lub adwiego :)<br />
Terminy spotkań dostępne są na naszym <a href="https://www.google.com/calendar/embed?src=widelec0700880%40gmail.com&ctz=Europe/Warsaw">kalendarzu.</a><br />
<br />
Assahttp://www.blogger.com/profile/10098467995716192485noreply@blogger.com4tag:blogger.com,1999:blog-2843887411382698695.post-57823741014104451142011-08-20T04:53:00.000-07:002011-11-14T07:30:10.062-08:00Konwencje wywołań<style type="text/css">
.default {
font-family: Courier New, Trebuchet, Tahoma, sans-serif;
font-size: 10;
color: #F8F8F8;
background-color: #0C1021;
}
.keyword2 {
color: #4179C5;
font-weight: bold;
}
.keyword {
color: #FBDE2D;
}
.number {
color: #D8FA3C;
}
</style><br />
Witam!<br />
Chyba każdy programista spotkał się z funkcjami. Mają one nazwę, argumenty, ramkę stosu etc. W ich skład wchodzą również tajemnicze konwencje wywołań. Jest ich 4 z czego tylko 3 są wykorzystywane. Ich działanie omówię poniżej:<br />
<span class="Apple-style-span" style="font-size: large;">cdecl</span><br />
Dosyć enigmatyczna nazwa ;) Oznacza ona C (style) Declare(Function).<br />
Aby wywołać taką funkcję w asemblerze caller(wywołujący funkcje) musi umieścić argumenty na stosie, wywołać funkcje a potem obliczyć wielkość argumentów i zdjąć je ze stosu. Wszystkie funkcje ze standardowej biblioteki C są właśnie wywoływane w tej konwencji. Warto nadmienić, że argumenty wrzucamy na stos od tyłu. Wynika to z budowy stosu.<br />
Przykład:<br />
<pre><b><span class="keyword">push</span> arg2
<span class="keyword">push</span> arg1
<span class="keyword">call</span> [Foo]
<span class="keyword">sub</span> <span class="keyword2">esp</span>,<span class="number">2</span>*<span class="number">4</span></b>
</pre>Jak widać wrzucamy argumenty "od tyłu". Następnie wywołujemy funkcje, po czym czyścimy stos(każdy argument na stosie ma 4 bajty dlatego 2*4). W kompilatorach C możemy narzucić tą konwencję na naszą funkcję pisząc _cdecl(lub __cdecl w bcc32 i kompilatorze M$)<br />
<div><span class="Apple-style-span" style="font-size: large;">Pascal</span></div><div>To bardzo stara konwencja używana w bardzo starych kompilatorach języka Pascal. Cechą szczególną jest wrzucanie argumentów na stos od przodu(!). Uniemożliwia to znaną z cdecl zmienną liczbę argumentów. Był to główny powód zaprzestania implementacji tej konwencji.<br />
#edit Konwencji tej używały: QuickBasic i Windows 3.1 API. Jest możliwość wymuszenia jej w niektórych kompilatorach(np. we FreeBasic'u).</div><div><span class="Apple-style-span" style="font-size: large;">stdcall</span></div><div>To chyba najwygodniejsza z konwencji wywołań. Argumenty podajemy od tyłu na stos i wywołujemy funkcję. Nie martwimy się czyszczeniem stosu ponieważ zajmuję się tym calle. Również uniemożliwia podawanie zmiennej ilości argumentów(tzn. umożliwia jednak jest to dosyć problematyczne). Przykład:</div><div><pre><b><span class="keyword">push</span> arg2
<span class="keyword">push</span> arg1
<span class="keyword">call</span> [StdBoo]</b>
</pre></div><div><span class="Apple-style-span" style="font-size: large;">Fastcall</span></div><div>Najbardziej zależna od kompilatora konwencja wywołań. Argumenty umieszczamy w rejestrach. To w jakich rejestrach oraz w jakiej kolejności zależy od używanego kompilatora.<br />
Istnieje jeszcze kilka pomniejszych konwencji wywołań które są raczej mniej popularne jak np. safecall czy thiscall<br />
Więcej info na:<br />
<a href="http://en.wikipedia.org/wiki/X86_calling_conventions">http://en.wikipedia.org/wiki/X86_calling_conventions</a></div>Assahttp://www.blogger.com/profile/10098467995716192485noreply@blogger.com0tag:blogger.com,1999:blog-2843887411382698695.post-79501283272821948052011-08-19T11:50:00.000-07:002011-08-19T11:50:10.822-07:00Lynx32Witam!<br />
Tytuł dzisiejszego wpisu to jednocześnie nazwa mojego największego do tej pory projektu.<br />
<span class="Apple-style-span" style="font-size: large;">O projekcie</span><br />
Lynx32 to maszyna wirtualna oraz asembler do jej obsługi ;) <br />
Maszyna posiada 4 rejestry:<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7r5LDecRW5HgaAzgxwGWSfhEqeeFvz6Ryz4YnRK17MpFmyL-sEk_LnDbvQ-kwzkulzsldY41J1lMdSFkoXZ5epAu_XFVp_J8O6uWzdIQxPHFRdQtJI0Jd7_BQ_jZvWar8FB5KqmzEdU8h/s1600/VMRegisters.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="312" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7r5LDecRW5HgaAzgxwGWSfhEqeeFvz6Ryz4YnRK17MpFmyL-sEk_LnDbvQ-kwzkulzsldY41J1lMdSFkoXZ5epAu_XFVp_J8O6uWzdIQxPHFRdQtJI0Jd7_BQ_jZvWar8FB5KqmzEdU8h/s320/VMRegisters.png" width="320" /></a></div><br />
Trochę problematycznie rozwiązałem operowanie na maszynie z poziomu asemblera-skonstruowałem coś na wzór przerwań:<br />
<span class="Apple-style-span" style="color: red;"><b>LDA</b></span> <span class="Apple-style-span" style="color: lime;"><b>#</b></span><span class="Apple-style-span" style="color: #274e13;"><i>'Hello World'</i></span> <span class="Apple-style-span" style="color: blue;"><b>!Assign value to A register</b></span><br />
<span class="Apple-style-span" style="color: red;"><b>LCALL</b></span> <span class="Apple-style-span" style="color: lime;"><b>#</b></span>1 <b><span class="Apple-style-span" style="color: blue;">!Lynx Call</span></b><br />
Powyższy kod na(jeszcze nie dokończonej ;P)maszynie powinien wyświetlić zawartość rejestru A.<br />
Ogólnie pisanie(a raczej uzupełnianie przepisywanej przeze mnie maszyny z C# na C++ :P)sprawia mi niebywałą przyjemność :).<br />
<span class="Apple-style-span" style="font-size: large;">TODO:</span><br />
Do napisania została mi jeszcze spora porcja kodu,<br />
Muszę napisać kompilator języka wysokiego poziomu(btw. ma ktoś pomysł na nazwę?),<br />
Wypadałoby przepisać na nowo asembler, tym razem do C\C++\D whatever :P(wypadało by zrobić również implementację pod Java i .NET)<br />
<br />
<br />
Assahttp://www.blogger.com/profile/10098467995716192485noreply@blogger.com0tag:blogger.com,1999:blog-2843887411382698695.post-73015602177441337272011-08-12T07:28:00.000-07:002012-05-04T08:30:24.434-07:00VPython<style type="text/css">
.default {
font-family: Courier New, Trebuchet, Tahoma, sans-serif;
font-size: 10;
color: #F8F8F8;
background-color: #0C1021;
}
.keyword {
color: #FBDE2D;
}
.number {
color: #D8FA3C;
}
</style><br />
Hai all!<br />
Od niedawna bawię się bardzo ciekawym silniczkiem 3D. Stworzony został na potrzeby tworzenia symulacji fizycznych. Nie jest to więc silnik gier, aczkolwiek jest kilka ciekawych* ;) Boli mnie jednak jak słabo stworzona jest dokumentacja: kilka "lekcji" o podstawach, dość dobre jednak nieliczne video-tutoriale...<br />
Jedno z "zadań domowych" które dla treningu zrobiłem:<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVAfZ1wzMhc7pV9a-rbxyCscHeP6q9B1AUDiPP8Xy_A4rKzR7QkQ5T8dWp3vtaUzJF0JRcjyX-c6Lyq2dC010D2UDgxMnaMlXD5zQtvYq-E-8t9I_lYiFjT3RDikCLHwUrgjNiyz3-PU8j/s1600/zd.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVAfZ1wzMhc7pV9a-rbxyCscHeP6q9B1AUDiPP8Xy_A4rKzR7QkQ5T8dWp3vtaUzJF0JRcjyX-c6Lyq2dC010D2UDgxMnaMlXD5zQtvYq-E-8t9I_lYiFjT3RDikCLHwUrgjNiyz3-PU8j/s320/zd.png" width="304" /></a></div>
Kod:<br />
<pre class="brush: python">from visual import *
ball1=sphere(pos=vector(2,0,0),radius=0.25,color=color.red)
ball2=sphere(pos=vector(1,2,0),radius=0.25,color=color.orange)
ball3=sphere(pos=vector(0,0,0),radius=0.25,color=color.blue)
arrow(pos=vector(0,0,0), axis=ball1.pos-ball3.pos,color=color.yellow)
arrow(pos=vector(2,0,0), axis=ball2.pos-ball1.pos,color=color.white)
arrow(pos=vector(1,2,0), axis=ball3.pos-ball2.pos,color=color.red)
</pre>
<a href="http://vpython.org/">Linczek do strony projektu</a><br />
<hr />
*np. pewna demonstracja <a href="http://vpython.org/contents/contributed/vspace.py">vspace</a>Assahttp://www.blogger.com/profile/10098467995716192485noreply@blogger.com0tag:blogger.com,1999:blog-2843887411382698695.post-12833851708227557672011-08-06T13:43:00.000-07:002011-08-07T06:01:07.673-07:00Jak dziala pop i push?<style type="text/css">
.comment {
color: #00A115;
font-style: italic;
}
.keyword {
color: #FBDE2D;
font-weight: bold;
}
.default {
font-family: monospace, Trebuchet, Tahoma, sans-serif;
font-size: 10;
color: #F8F8F8;
background-color: #0C1021;
}
.number {
color: #D8FA3C;
}
.keyword2 {
color: #4179C5;
font-weight: bold;
}
</style><br />
Jeżeli zawsze byłeś ciekawy jak działa pop i push oraz jak można je zastąpić, to zapraszam do czytania ;)<br />
<br />
Jeżeli miałeś kiedykolwiek styczność z asm'em to wiesz czym są segmenty oraz stos. Myślę jednak że warto by choć trochę zainteresować. Czym jest stos można spokojnie poczytać na wikipedii. O segmentach nic chyba nie było. Powiem tyle że dla nas najważniejszy jest segment stosu(SS-Stack Segment). Wskazuje on na początek stosu. W naszym przypadku będzie to 100h.Przyjmijmy że każdy argument wrzucany na stos ma 2 bajty(wiem nie jest tak ale zbyt długo rysowałem schemat żeby tera zmieniać :P). Wszystko wrzucamy "od tyłu"(lub od góry, różnie można interpretować). Operowanie na stosie czyli push wrzucające coś na stos oraz pop ściągające z rejestru do stosu to po prostu odejmowanie i dodawanie adresów. Push można zamienić na:<br />
<span class="comment">;PUSH</span><br />
<span class="keyword">sub</span> <span class="keyword2">esp</span>, wielkosc<br />
<span class="keyword">mov</span> [<span class="keyword2">ss</span>:<span class="keyword2">esp</span>], co<br />
Gdzie wielkość w naszym przypadku bedzie miała wartość 2. ss:esp to adres ostatniego elementu stosu.<br />
Zobaczmy prosty przykład. Na stos wrzucamy zawartość AX i DX:<br />
<div class="separator" style="clear: both;"><pre><span class="comment">;push AX</span>
<span class="keyword">sub</span> <span class="keyword2">esp</span>,<span class="Apple-style-span" style="color: #d8fa3c;">2</span>
<span class="keyword">mov</span> [<span class="keyword2">ss</span>:<span class="keyword2">esp</span>],<span class="keyword2">ax</span>
<span class="comment">;push DX</span>
<span class="keyword">sub</span> <span class="keyword2">esp</span>,<span class="Apple-style-span" style="color: #d8fa3c;">2</span>
<span class="keyword">mov</span> [<span class="keyword2">ss</span>:<span class="keyword2">esp</span>],<span class="keyword2">dx</span></pre></div>Jak będzie wyglądał stos:<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiL9exp1Hfaf9zrBd-q5rcwBuRAR-pQ9UzIn4SHrvZucT66FGxKqCLziM1THiTcf1NFqpVz9jrSOPN0ZwGoENotgIqfSPJUo4ZGlERs1leUzfsHQHwjX_cqaajUmToY3UwEpM5S3tqtfB6J/s1600/schemat.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiL9exp1Hfaf9zrBd-q5rcwBuRAR-pQ9UzIn4SHrvZucT66FGxKqCLziM1THiTcf1NFqpVz9jrSOPN0ZwGoENotgIqfSPJUo4ZGlERs1leUzfsHQHwjX_cqaajUmToY3UwEpM5S3tqtfB6J/s640/schemat.png" width="640" /></a></div><br />
Uff...namęczyłem się trochę z tym rysunkiem ponieważ robiłem go w mtPaint :P<br />
Dobrze. Jak widzimy adres maleje o wielkość(czyli 2)-0xFE(dec.254) do 0xFC(dec.252). Jako że wrzuciliśmy rejestry 16 bitowe wszystko powinno się zmieścić.<br />
Jak działa pop?<br />
Jak wiemy pop zdejmuje ze stosu ostatni element i wrzuca go do jakiegoś rejestru. Czyli działa odwrotnie do push. Dla przejrzystości pokażę przykład:<br />
<div class="separator" style="clear: both;"><pre><span class="comment">;POP </span>
<span class="keyword">mov</span> gdzie, [<span class="keyword2">ss</span>:<span class="keyword2">esp</span>]
<span class="keyword">add</span> <span class="keyword2">esp</span>, <span class="Apple-style-span" style="color: #d8fa3c;">2</span>
</pre></div>Do gdzie przesuwamy ostatni element stosu. Potem dodajemy do<b><span class="Apple-style-span" style="color: yellow;"> ESP</span> </b>2 czyli ustaloną przez nas wielkość. Sprawi to że stos przeskoczy na nasz "umówiony" adres 254 czyli na przedostatni element.Assahttp://www.blogger.com/profile/10098467995716192485noreply@blogger.com0tag:blogger.com,1999:blog-2843887411382698695.post-64379544793808828642011-08-06T07:49:00.000-07:002011-08-06T07:49:08.724-07:00Czy język może się przedawnić?To pytanie zadałem sobie przed chwilą. Odpowiedź jest bardzo prosta-nie. Język czyli semantyka, sam dialog z komputerem raczej trudno ulega przedawnieniu, a to dlatego, że jest pewna rzecz w komputerze niezmienna-bity. Są, były i będą w każdym komputerze. A więc jeżeli język nie obsługuje pewnych ficzerów jak np. obsługa wyjątktów, to leży to już w kwestii kompilatora. Ile to już dziwactw wymyślono dla C czy takiego bardzo przyjemnego Fortrana. Jeżeli wychodzi nowa wersja jakiegoś języka, to jest to po prostu ustandaryzowanie pewnych rozwiązań wobec stawianych problemów. Weźmy np. C. Mamy w nim dwa standardy: ANSI C(pierwotny) oraz C99. Standard drugi jest jedynie pewnego rodzaju próbą unowocześniania języka. Nie zawsze wychodzi to na dobre. C99 dorzucił kilka całkiem fajnych ficzerów w stylu komentarzy jednolinijkowych, czy chociażby typ logiczny, jednak nie oszukujmy się-to wszystko to tylko mydlenie oczu. Nie mówię tu że starsze języki są gorsze. Warto jednak pomyśleć w czym uchybiają tym nowszym...<br />
PS: Całkiem chlubnym przykładem jest najnowszy(jeszcze opracowywany) standard języka C++. Wprowadza tyle udogodnień, że sama nauka tego standardu będzie trwała dłużej niż nauka C++ ;)Assahttp://www.blogger.com/profile/10098467995716192485noreply@blogger.com0tag:blogger.com,1999:blog-2843887411382698695.post-9720678818490803342011-08-01T13:21:00.001-07:002011-08-01T13:21:53.544-07:00Mega tutorial by Assa.py<span class="bbc_center" style="color: #959595; display: block; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px; text-align: center;"><img alt="Dołączona grafika" class="bbc_img" src="http://img98.imageshack.us/img98/6207/python.png" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; vertical-align: middle;" /></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="bbc_center" style="color: #959595; display: block; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px; text-align: center;"><span style="font-size: 36px;">Megatutorial by Aссаръеллюсс</span></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">Witam w drugim moim wielkim tutorialu!Tym razem jednak nie o AutoIT ,ale o innym już dużo 'doroślejszym' języku skryptowym.</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">Tuta,pozwólcie,będe pisał partami edytując ten post.</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><span style="font-size: 21px;">1.Czym jest Python?</span></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">Dobra pozwólcie że wylewał się nie będe i przytocze cytat z Wikipedii:</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><br />
<div class="citation" style="background-attachment: initial; background-clip: initial; background-color: #151515; background-image: url(http://coding-gods.org/public/style_images/brave/citation_bg.png); background-origin: initial; background-position: 100% 50%; background-repeat: no-repeat no-repeat; border-bottom-color: rgb(35, 35, 35); border-bottom-left-radius: 0px 0px; border-bottom-right-radius: 0px 0px; border-bottom-style: solid; border-bottom-width: 0px; border-left-color: rgb(35, 35, 35); border-left-style: solid; border-left-width: 3px; border-right-color: rgb(35, 35, 35); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(35, 35, 35); border-top-left-radius: 6px 6px; border-top-right-radius: 6px 6px; border-top-style: solid; border-top-width: 1px; color: #a7a7a7; font-family: tahoma, arial, sans-serif; font-size: 0.9em; font-weight: bold; line-height: 19px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 5px; padding-left: 8px; padding-right: 8px; padding-top: 5px;">Cytat</div><div class="blockquote" style="background-attachment: initial; background-clip: initial; background-color: #111111; background-image: initial; background-origin: initial; border-bottom-color: rgb(35, 35, 35); border-bottom-left-radius: 6px 6px; border-bottom-right-radius: 6px 6px; border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(35, 35, 35); border-left-style: solid; border-left-width: 3px; border-right-color: rgb(35, 35, 35); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(35, 35, 35); border-top-left-radius: 0px 0px; border-top-right-radius: 0px 0px; border-top-style: solid; border-top-width: 1px; color: #959595; font-family: tahoma, arial, sans-serif; font-size: 0.9em; line-height: 19px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><div class="quote" style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 12px; padding-left: 12px; padding-right: 12px; padding-top: 12px;">Python – interpretowany, interaktywny język programowania stworzony przez Guido van Rossuma w 1990. Python posiada w pełni dynamiczny system typów i automatyczne zarządzanie pamięcią, jest zatem podobny do takich języków, jak Tcl, Perl, Scheme czy Ruby.<br />
<br />
Python rozwijany jest jako projekt Open Source, zarządzany przez Python Software Foundation, będącą organizacją non-profit. Standardowa implementacja to tzw. CPython (pisany w C), ale istnieją też inne, takie jak Jython (w Javie), IronPython (na platformę .NET) i PyPy (w Pythonie).</div></div><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">Pewnie (jeżeli dopiero zaczynacie przygodę z programowaniem)większość rzeczy w powyższym cytacie jest nie zrozumiała dla was. Radzę przejść do wiki i poczytać trochę,poklikać itd.Powiem jedynie że Python jest bardzo funkcjonalny,wykonywany dynamicznie i szybki(jak na język skryptowy).</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><span style="font-size: 17px;">1.1Co możemy w nim napisać?</span></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">Wszystko absolutnie wszystko</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"> </span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><img alt=":P" class="bbc_emoticon" src="http://coding-gods.org/public/style_emoticons/default/tongue.gif" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; vertical-align: middle;" /></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">Python posiada mnóstwo frameworków,bibliotek.Ponadto posiada możliwość dołączenia bibliotek napisanych w C(ofc specjalnie przystosowane do Pythona).Dzięki Django możemy w prosty sposób napisać CMSa(System Zarządzania Treścią).</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">Dobra koniec rozprawiania o tym jaki Python dobry jest.Przejdźmy od słów do czynów!</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><span style="font-size: 21px;">2.Instalacja Pythona</span></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">W tym tucie korzystał będe z ActivePython który nie jest oficjalnie wydany przez python.org.Można go pobrać ze strony:</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"></span><br />
<pre class="prettyprint" style="background-attachment: initial; background-clip: initial; background-color: #141414; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(39, 39, 39); border-bottom-left-radius: 4px 4px; border-bottom-right-radius: 4px 4px; border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(39, 39, 39); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(39, 39, 39); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(39, 39, 39); border-top-left-radius: 4px 4px; border-top-right-radius: 46px 46px; border-top-style: solid; border-top-width: 1px; font-size: 11px; line-height: 15px; margin-bottom: 0px; margin-left: 10px; margin-right: 0px; margin-top: 0px; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;"><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><span class="pln" style="color: #cccccc;">http</span><span class="pun" style="color: #cccccc;">:</span><span class="com" style="color: #00bb00;">//www.activestate.com/activepython/downloads</span></span></pre><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">(ActivePython Community Edition).Ponieważ instalator nie ustawia domyślnie zmiennych środowiskowych musimy ustawić je ręcznie.Wchodzimy więc kolejno:</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"></span><br />
<pre class="prettyprint" style="background-attachment: initial; background-clip: initial; background-color: #141414; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(39, 39, 39); border-bottom-left-radius: 4px 4px; border-bottom-right-radius: 4px 4px; border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(39, 39, 39); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(39, 39, 39); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(39, 39, 39); border-top-left-radius: 4px 4px; border-top-right-radius: 46px 46px; border-top-style: solid; border-top-width: 1px; font-size: 11px; line-height: 15px; margin-bottom: 0px; margin-left: 10px; margin-right: 0px; margin-top: 0px; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;"><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><span class="typ" style="color: #cccccc;">Panel</span><span class="pln" style="color: #cccccc;"> </span><span class="typ" style="color: #cccccc;">Sterowania</span><span class="pun" style="color: #cccccc;">-></span><span class="typ" style="color: #cccccc;">System</span><span class="pun" style="color: #cccccc;">-></span><span class="typ" style="color: #cccccc;">Zak</span><span class="pun" style="color: #cccccc;">ł</span><span class="pln" style="color: #cccccc;">adka </span><span class="typ" style="color: #cccccc;">Zaawansowane</span><span class="pun" style="color: #cccccc;">-></span><span class="typ" style="color: #cccccc;">Zmienne</span><span class="pln" style="color: #cccccc;"> </span><span class="pun" style="color: #cccccc;">Ś</span><span class="pln" style="color: #cccccc;">rodowiskowe</span></span></pre><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">Tera powinno wyświetlić nam się okienko edycji zmiennych.Na dole w zmiennych systemowych klikasz Nowa i w okienku które się wyświetliło w polu pierwszym wpisujesz PYTHONPATH a w drugim ścieżke do folderu pythona np. tak: D:\python2.7.Jednak to jeszcze nie koniec.Musimy dodać jeszcze jedną zmienną.Robimy to identycznie jak z PYTHONPATH jednak zamiast PYTHONPATH wpisujemy PYTHONHOME.</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">Dobra mamy już przygotowane środowisko.</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><span style="font-size: 21px;">3.Hello World</span></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">Każdy skrypt pythona zaczynamy od:</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><pre class="prettyprint" style="background-attachment: initial; background-clip: initial; background-color: #141414; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(39, 39, 39); border-bottom-left-radius: 4px 4px; border-bottom-right-radius: 4px 4px; border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(39, 39, 39); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(39, 39, 39); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(39, 39, 39); border-top-left-radius: 4px 4px; border-top-right-radius: 46px 46px; border-top-style: solid; border-top-width: 1px; font-size: 11px; line-height: 15px; margin-bottom: 0px; margin-left: 10px; margin-right: 0px; margin-top: 0px; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;"><span class="com" style="color: #00bb00;">#!/usr/bin/env python</span></pre></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">Jest to odwołanie do interpretera Pythona na systemach *nixowych.Skrypty zapisujemy z rozszerzeniem .py</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">Do wyświetlania tekstu w konsoli służy funkcja print.Tekst który ma wypisać umiewszczamy między " lub '.Gdy tekst zawiera więcej niż jedną linię używamy """(3x").Skrypty Pythona uruchamiamy za pomocą polecenia(w CMD) :</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><pre class="prettyprint" style="background-attachment: initial; background-clip: initial; background-color: #141414; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(39, 39, 39); border-bottom-left-radius: 4px 4px; border-bottom-right-radius: 4px 4px; border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(39, 39, 39); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(39, 39, 39); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(39, 39, 39); border-top-left-radius: 4px 4px; border-top-right-radius: 46px 46px; border-top-style: solid; border-top-width: 1px; font-size: 11px; line-height: 15px; margin-bottom: 0px; margin-left: 10px; margin-right: 0px; margin-top: 0px; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;"><span class="pln" style="color: #cccccc;">python nazwa_pliku</span><span class="pun" style="color: #cccccc;">.</span><span class="pln" style="color: #cccccc;">py</span></pre></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">Jeżeli napisałeś już Hello World'a sam to muszę ci pogratulować:Przeczytałeś mój tekst!Jeżeli nie udało ci się mimo uważnego czytania nie będe się gniewał</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"> </span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><img alt=":P" class="bbc_emoticon" src="http://coding-gods.org/public/style_emoticons/default/tongue.gif" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; vertical-align: middle;" /></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"> </span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">ale jedna uwaga: przyłóż się</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"> </span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><img alt=":P" class="bbc_emoticon" src="http://coding-gods.org/public/style_emoticons/default/tongue.gif" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; vertical-align: middle;" /></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">Dobra kod dla niepewnych:</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><pre class="prettyprint" style="background-attachment: initial; background-clip: initial; background-color: #141414; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(39, 39, 39); border-bottom-left-radius: 4px 4px; border-bottom-right-radius: 4px 4px; border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(39, 39, 39); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(39, 39, 39); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(39, 39, 39); border-top-left-radius: 4px 4px; border-top-right-radius: 46px 46px; border-top-style: solid; border-top-width: 1px; font-size: 11px; line-height: 15px; margin-bottom: 0px; margin-left: 10px; margin-right: 0px; margin-top: 0px; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;"><span class="com" style="color: #00bb00;">#!/usr/bin/env python</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">print</span><span class="pln" style="color: #cccccc;"> </span><span class="str" style="color: #00bb00;">"Hello World"</span></pre></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">Naszym oczom powinien ukazać się zgrabny napis Hello World!Teraz pora przejść do bardziej zaawansowanych rzeczy.</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><span style="font-size: 21px;">4.Zmienne</span></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">Sposobów przechowywania danych w programach jest całkiem sporo.Mamy bazy danych,stos,tablice...Trzeba jednak przyznać że najczęściej używaną strukturą programistyczną jest zmienna.Czym więc ta zmienna jest?Tutaj znów posłużę się cytatem:</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><br />
<div class="citation" style="background-attachment: initial; background-clip: initial; background-color: #151515; background-image: url(http://coding-gods.org/public/style_images/brave/citation_bg.png); background-origin: initial; background-position: 100% 50%; background-repeat: no-repeat no-repeat; border-bottom-color: rgb(35, 35, 35); border-bottom-left-radius: 0px 0px; border-bottom-right-radius: 0px 0px; border-bottom-style: solid; border-bottom-width: 0px; border-left-color: rgb(35, 35, 35); border-left-style: solid; border-left-width: 3px; border-right-color: rgb(35, 35, 35); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(35, 35, 35); border-top-left-radius: 6px 6px; border-top-right-radius: 6px 6px; border-top-style: solid; border-top-width: 1px; color: #a7a7a7; font-family: tahoma, arial, sans-serif; font-size: 0.9em; font-weight: bold; line-height: 19px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 5px; padding-left: 8px; padding-right: 8px; padding-top: 5px;">Cytat</div><div class="blockquote" style="background-attachment: initial; background-clip: initial; background-color: #111111; background-image: initial; background-origin: initial; border-bottom-color: rgb(35, 35, 35); border-bottom-left-radius: 6px 6px; border-bottom-right-radius: 6px 6px; border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(35, 35, 35); border-left-style: solid; border-left-width: 3px; border-right-color: rgb(35, 35, 35); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(35, 35, 35); border-top-left-radius: 0px 0px; border-top-right-radius: 0px 0px; border-top-style: solid; border-top-width: 1px; color: #959595; font-family: tahoma, arial, sans-serif; font-size: 0.9em; line-height: 19px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><div class="quote" style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 12px; padding-left: 12px; padding-right: 12px; padding-top: 12px;">Zmienna - konstrukcja programistyczna posiadająca trzy podstawowe atrybuty: symboliczną nazwę, miejsce przechowywania i wartość; pozwalająca w programie odwoływać się przy pomocy nazwy do wartości lub miejsca przechowywania. Nazwa służy do identyfikowania zmiennej w związku z tym często nazywana jest identyfikatorem. Miejsce przechowywania przeważnie znajduje się w pamięci komputera i określane jest przez adres i długość danych. Wartość to zawartość miejsca przechowywania. Zmienna zazwyczaj posiada również czwarty atrybut: typ, określający rodzaj danych przechowywanych w zmiennej i co za tym idzie sposób reprezentacji wartości w miejscu przechowywania. W programie wartość zmiennej może być odczytywana lub zastępowana nową wartością, tak więc wartość zmiennej może zmieniać się w trakcie wykonywania programu, natomiast dwa pierwsze atrybuty (nazwa i miejsce przechowywania) nie zmieniają się w trakcie istnienia zmiennej[1]. W zależności od rodzaju języka typ zmiennej może być stały lub zmienny.</div></div><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">Dobra z powyższego opisu wiemy mniej więcej jak ta zmienna wygląda.W takim C posiada:</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"></span><br />
<pre class="prettyprint" style="background-attachment: initial; background-clip: initial; background-color: #141414; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(39, 39, 39); border-bottom-left-radius: 4px 4px; border-bottom-right-radius: 4px 4px; border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(39, 39, 39); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(39, 39, 39); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(39, 39, 39); border-top-left-radius: 4px 4px; border-top-right-radius: 46px 46px; border-top-style: solid; border-top-width: 1px; font-size: 11px; line-height: 15px; margin-bottom: 0px; margin-left: 10px; margin-right: 0px; margin-top: 0px; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;"><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><span class="pln" style="color: #cccccc;">typ</span><span class="pun" style="color: #cccccc;">(</span><span class="pln" style="color: #cccccc;">np</span><span class="pun" style="color: #cccccc;">.</span><span class="pln" style="color: #cccccc;"> </span><span class="kwd" style="color: #0055ff;">int</span><span class="pun" style="color: #cccccc;">)</span><span class="pln" style="color: #cccccc;">nazw</span><span class="pun" style="color: #cccccc;">ę(</span><span class="pln" style="color: #cccccc;">tzw</span><span class="pun" style="color: #cccccc;">.</span><span class="pln" style="color: #cccccc;">identyfikator</span><span class="pun" style="color: #cccccc;">)=</span><span class="pln" style="color: #cccccc;">warto</span><span class="pun" style="color: #cccccc;">ść(</span><span class="pln" style="color: #cccccc;">np</span><span class="pun" style="color: #cccccc;">.</span><span class="lit" style="color: #cccc00;">10</span><span class="pun" style="color: #cccccc;">)</span></span></pre><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">Ale my nie zajmujemy się C a Pythonem.Pora więc na Pythona:</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"></span><br />
<pre class="prettyprint" style="background-attachment: initial; background-clip: initial; background-color: #141414; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(39, 39, 39); border-bottom-left-radius: 4px 4px; border-bottom-right-radius: 4px 4px; border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(39, 39, 39); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(39, 39, 39); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(39, 39, 39); border-top-left-radius: 4px 4px; border-top-right-radius: 46px 46px; border-top-style: solid; border-top-width: 1px; font-size: 11px; line-height: 15px; margin-bottom: 0px; margin-left: 10px; margin-right: 0px; margin-top: 0px; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;"><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><span class="com" style="color: #00bb00;">#!/usr/bin/env python</span><span class="pln" style="color: #cccccc;">
a </span><span class="pun" style="color: #cccccc;">=</span><span class="pln" style="color: #cccccc;"> </span><span class="lit" style="color: #cccc00;">10</span><span class="pln" style="color: #cccccc;">
b </span><span class="pun" style="color: #cccccc;">=</span><span class="lit" style="color: #cccc00;">1</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">print</span><span class="pln" style="color: #cccccc;"> a</span><span class="pun" style="color: #cccccc;">,</span><span class="pln" style="color: #cccccc;">b</span></span></pre><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">Ten przykład wyjątkowo rozkazuje wam przepisać i uruchomić.Co widzicie?Zapewne jest to 10 1.Zadeklarowaliśmy właśnie 2 zmienne a i b a później je wyświetliliśmy.No cóż jeżeli to nadal was nie przekonało co do przydatności zmiennych to pokaże wam coś jeszcze:</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><pre class="prettyprint" style="background-attachment: initial; background-clip: initial; background-color: #141414; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(39, 39, 39); border-bottom-left-radius: 4px 4px; border-bottom-right-radius: 4px 4px; border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(39, 39, 39); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(39, 39, 39); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(39, 39, 39); border-top-left-radius: 4px 4px; border-top-right-radius: 46px 46px; border-top-style: solid; border-top-width: 1px; font-size: 11px; line-height: 15px; margin-bottom: 0px; margin-left: 10px; margin-right: 0px; margin-top: 0px; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;"><span class="com" style="color: #00bb00;">#!/usr/bin/env python</span><span class="pln" style="color: #cccccc;">
a </span><span class="pun" style="color: #cccccc;">=</span><span class="pln" style="color: #cccccc;"> </span><span class="str" style="color: #00bb00;">'1'</span><span class="pln" style="color: #cccccc;">
b </span><span class="pun" style="color: #cccccc;">=</span><span class="pln" style="color: #cccccc;"> </span><span class="str" style="color: #00bb00;">'2'</span><span class="pln" style="color: #cccccc;">
c </span><span class="pun" style="color: #cccccc;">=</span><span class="pln" style="color: #cccccc;"> </span><span class="lit" style="color: #cccc00;">1</span><span class="pln" style="color: #cccccc;">
d </span><span class="pun" style="color: #cccccc;">=</span><span class="pln" style="color: #cccccc;"> </span><span class="lit" style="color: #cccc00;">2</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">print</span><span class="pln" style="color: #cccccc;"> a</span><span class="pun" style="color: #cccccc;">+</span><span class="pln" style="color: #cccccc;">b</span><span class="kwd" style="color: #0055ff;">print</span><span class="pln" style="color: #cccccc;"> c</span><span class="pun" style="color: #cccccc;">+</span><span class="pln" style="color: #cccccc;">d</span></pre></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">Skopiujcie sobie i uruchomcie.Co widzicie?Jeżeli wszystko dobrze poszło jest to na pewno 12 i 3.Drugi wynik zgadza się,ale nie pierwszy.A to dlaczego skoro podaliśmy dobre dane?Po pierwsze zadeklarowaliśmy dwie zmienne tekstowe nie zaś liczby.Po drugie pozornie wykonując dodawanie zastosowaliśmy kontakenacje(więcej info na temat łączenia łańcuchów znaków w tucie psycho:</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><a class="bbc_url" href="http://coding-gods.org/topic/42-tut-przeciazanie-operatorow/" style="color: inherit; outline-color: initial; outline-style: none; outline-width: initial;" title="">Przeciążanie operatorów</a></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">).Jak pewnie zauważyliście na łańcuchach znaków(tak nazywa się zmienne tekstowe) jak i na wartościach liczbowych możemy wykonywać działania.Oczywiście na łańcuchach nie wykonamy mnożenia i dzielenia.Zresztą łańcuchom znaków poświęce kolejny rozdział.Jakie obliczenia możemy wykonywać na zmiennych:</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><pre class="prettyprint" style="background-attachment: initial; background-clip: initial; background-color: #141414; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(39, 39, 39); border-bottom-left-radius: 4px 4px; border-bottom-right-radius: 4px 4px; border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(39, 39, 39); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(39, 39, 39); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(39, 39, 39); border-top-left-radius: 4px 4px; border-top-right-radius: 46px 46px; border-top-style: solid; border-top-width: 1px; font-size: 11px; line-height: 15px; margin-bottom: 0px; margin-left: 10px; margin-right: 0px; margin-top: 0px; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;"><span class="com" style="color: #00bb00;">#!/usr/bin/env python</span><span class="pln" style="color: #cccccc;">
a </span><span class="pun" style="color: #cccccc;">=</span><span class="pln" style="color: #cccccc;"> </span><span class="lit" style="color: #cccc00;">2</span><span class="pln" style="color: #cccccc;">
b </span><span class="pun" style="color: #cccccc;">=</span><span class="pln" style="color: #cccccc;"> </span><span class="lit" style="color: #cccc00;">5</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">print</span><span class="pln" style="color: #cccccc;"> a</span><span class="pun" style="color: #cccccc;">+</span><span class="pln" style="color: #cccccc;">b</span><span class="kwd" style="color: #0055ff;">print</span><span class="pln" style="color: #cccccc;"> a</span><span class="pun" style="color: #cccccc;">*</span><span class="pln" style="color: #cccccc;">b</span><span class="kwd" style="color: #0055ff;">print</span><span class="pln" style="color: #cccccc;"> a</span><span class="pun" style="color: #cccccc;">/</span><span class="pln" style="color: #cccccc;">b</span><span class="kwd" style="color: #0055ff;">print</span><span class="pln" style="color: #cccccc;"> a</span><span class="pun" style="color: #cccccc;">%</span><span class="pln" style="color: #cccccc;">b</span></pre></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">Deklarujemy 2 zmienne. Wyświetlamy wynik ich dodawania,mnożenia,dzielenia oraz reszty z dzielenia.Wykonajcie ten skrypt.Zobaczycie wyniki:</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><pre class="prettyprint" style="background-attachment: initial; background-clip: initial; background-color: #141414; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(39, 39, 39); border-bottom-left-radius: 4px 4px; border-bottom-right-radius: 4px 4px; border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(39, 39, 39); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(39, 39, 39); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(39, 39, 39); border-top-left-radius: 4px 4px; border-top-right-radius: 46px 46px; border-top-style: solid; border-top-width: 1px; font-size: 11px; line-height: 15px; margin-bottom: 0px; margin-left: 10px; margin-right: 0px; margin-top: 0px; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;"><span class="lit" style="color: #cccc00;">7</span><span class="pln" style="color: #cccccc;">
</span><span class="lit" style="color: #cccc00;">10</span><span class="pln" style="color: #cccccc;">
</span><span class="lit" style="color: #cccc00;">0</span><span class="pln" style="color: #cccccc;">
</span><span class="lit" style="color: #cccc00;">2</span></pre></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">Zdziwi pewnioe się większość z was wynik dzielenia a/b.Dlaczego jest to zero a nie 0,4?Wynik jest zaokrąglony w dół ponieważ użyliśmy zmiennych całkowitych(integer),a my potrzebujemy typu zm,iennoprzecinkowego(float,double).Takowy deklarujemy tak samo jak w AutoIt czyli:</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><pre class="prettyprint" style="background-attachment: initial; background-clip: initial; background-color: #141414; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(39, 39, 39); border-bottom-left-radius: 4px 4px; border-bottom-right-radius: 4px 4px; border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(39, 39, 39); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(39, 39, 39); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(39, 39, 39); border-top-left-radius: 4px 4px; border-top-right-radius: 46px 46px; border-top-style: solid; border-top-width: 1px; font-size: 11px; line-height: 15px; margin-bottom: 0px; margin-left: 10px; margin-right: 0px; margin-top: 0px; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;"><span class="pln" style="color: #cccccc;">a </span><span class="pun" style="color: #cccccc;">=</span><span class="pln" style="color: #cccccc;"> </span><span class="lit" style="color: #cccc00;">2.0</span><span class="pln" style="color: #cccccc;">
b </span><span class="pun" style="color: #cccccc;">=</span><span class="pln" style="color: #cccccc;"> </span><span class="lit" style="color: #cccc00;">5.0</span></pre></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">Pamiętajmy żeby liczby zmiennoprzecinkowe zapisywać w notacji amrykńaskiej nie zaś polskiej(chodzi mi o przecinek w notacji polskiej i o kropke w notacji USA).</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">Warto pamietać o możliwości przypisywania zmiennych do siebie czyli:</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><pre class="prettyprint" style="background-attachment: initial; background-clip: initial; background-color: #141414; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(39, 39, 39); border-bottom-left-radius: 4px 4px; border-bottom-right-radius: 4px 4px; border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(39, 39, 39); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(39, 39, 39); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(39, 39, 39); border-top-left-radius: 4px 4px; border-top-right-radius: 46px 46px; border-top-style: solid; border-top-width: 1px; font-size: 11px; line-height: 15px; margin-bottom: 0px; margin-left: 10px; margin-right: 0px; margin-top: 0px; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;"><span class="pln" style="color: #cccccc;">b </span><span class="pun" style="color: #cccccc;">=</span><span class="pln" style="color: #cccccc;"> </span><span class="lit" style="color: #cccc00;">10</span><span class="pln" style="color: #cccccc;">
a </span><span class="pun" style="color: #cccccc;">=</span><span class="pln" style="color: #cccccc;"> b</span></pre></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><span style="font-size: 17px;">4.1Łańcuchy znaków</span></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">Oprócz poznanej już wcześniej konkatenacji istnieje jeszcze hmm...obcinanie.Robimy to podając początek napisu który chcemy zostawić(liczymy zawsze od 0!!!) do indeksu litery.Moje mętne tłumaczenia być może mało wam mówią ,ale przykład już na pewno:</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><pre class="prettyprint" style="background-attachment: initial; background-clip: initial; background-color: #141414; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(39, 39, 39); border-bottom-left-radius: 4px 4px; border-bottom-right-radius: 4px 4px; border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(39, 39, 39); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(39, 39, 39); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(39, 39, 39); border-top-left-radius: 4px 4px; border-top-right-radius: 46px 46px; border-top-style: solid; border-top-width: 1px; font-size: 11px; line-height: 15px; margin-bottom: 0px; margin-left: 10px; margin-right: 0px; margin-top: 0px; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;"><span class="com" style="color: #00bb00;">#!/usr/bin/env python</span><span class="pln" style="color: #cccccc;">
a </span><span class="pun" style="color: #cccccc;">=</span><span class="pln" style="color: #cccccc;"> </span><span class="str" style="color: #00bb00;">'Witaj w swiecie'</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">print</span><span class="pln" style="color: #cccccc;"> a</span><span class="pun" style="color: #cccccc;">[</span><span class="lit" style="color: #cccc00;">0</span><span class="pun" style="color: #cccccc;">]</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">print</span><span class="pln" style="color: #cccccc;"> a</span><span class="pun" style="color: #cccccc;">[</span><span class="lit" style="color: #cccc00;">0</span><span class="pun" style="color: #cccccc;">:</span><span class="lit" style="color: #cccc00;">5</span><span class="pun" style="color: #cccccc;">]</span></pre></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">Pierwszy napis jaki zobaczymy jest to litera W drugi zaś to Witaj.Zastosowaliśmy tuataj operator indeksowania o następującej składni:</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><pre class="prettyprint" style="background-attachment: initial; background-clip: initial; background-color: #141414; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(39, 39, 39); border-bottom-left-radius: 4px 4px; border-bottom-right-radius: 4px 4px; border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(39, 39, 39); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(39, 39, 39); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(39, 39, 39); border-top-left-radius: 4px 4px; border-top-right-radius: 46px 46px; border-top-style: solid; border-top-width: 1px; font-size: 11px; line-height: 15px; margin-bottom: 0px; margin-left: 10px; margin-right: 0px; margin-top: 0px; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;"><span class="pln" style="color: #cccccc;">nazwa_zmiennej</span><span class="pun" style="color: #cccccc;">[</span><span class="pln" style="color: #cccccc;">od</span><span class="pun" style="color: #cccccc;">:</span><span class="kwd" style="color: #0055ff;">do</span><span class="pun" style="color: #cccccc;">]</span></pre></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">Wyświetlanie łańcuchów wraz z wyświetlaniem zmiennych liczbowych wymaga użycia metody repr().</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">Oto prosty przykład zastosowania:</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><pre class="prettyprint" style="background-attachment: initial; background-clip: initial; background-color: #141414; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(39, 39, 39); border-bottom-left-radius: 4px 4px; border-bottom-right-radius: 4px 4px; border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(39, 39, 39); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(39, 39, 39); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(39, 39, 39); border-top-left-radius: 4px 4px; border-top-right-radius: 46px 46px; border-top-style: solid; border-top-width: 1px; font-size: 11px; line-height: 15px; margin-bottom: 0px; margin-left: 10px; margin-right: 0px; margin-top: 0px; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;"><span class="pln" style="color: #cccccc;">a</span><span class="pun" style="color: #cccccc;">=</span><span class="str" style="color: #00bb00;">'Twoj szczesliwy numerek to: '</span><span class="pln" style="color: #cccccc;">
c</span><span class="pun" style="color: #cccccc;">=</span><span class="lit" style="color: #cccc00;">7</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">print</span><span class="pln" style="color: #cccccc;"> a </span><span class="pun" style="color: #cccccc;">+</span><span class="pln" style="color: #cccccc;"> repr</span><span class="pun" style="color: #cccccc;">(</span><span class="pln" style="color: #cccccc;">c</span><span class="pun" style="color: #cccccc;">)</span></pre></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">Składnia repr</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><pre class="prettyprint" style="background-attachment: initial; background-clip: initial; background-color: #141414; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(39, 39, 39); border-bottom-left-radius: 4px 4px; border-bottom-right-radius: 4px 4px; border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(39, 39, 39); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(39, 39, 39); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(39, 39, 39); border-top-left-radius: 4px 4px; border-top-right-radius: 46px 46px; border-top-style: solid; border-top-width: 1px; font-size: 11px; line-height: 15px; margin-bottom: 0px; margin-left: 10px; margin-right: 0px; margin-top: 0px; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;"><span class="pln" style="color: #cccccc;">repr</span><span class="pun" style="color: #cccccc;">(</span><span class="pln" style="color: #cccccc;">nazwa_zmiennej</span><span class="pun" style="color: #cccccc;">)</span></pre></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">Bardzo przydatne jak widzimy</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"> </span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><img alt=";)" class="bbc_emoticon" src="http://coding-gods.org/public/style_emoticons/default/wink.gif" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; vertical-align: middle;" /></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">Zamiast repr możemy użyć str o identycznej składni.</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><span style="font-size: 17px;">4.2Operacje na stringach:</span></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><span style="font-size: 13px;">s.capitalize() - zmienia pierwszą literę na dużą</span></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><span style="font-size: 13px;">s.center(długość) - Centruje napis w polu o podanej długości</span></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><span style="font-size: 13px;">s.count(sub) - zlicza wystąpienie podciągu sub w napisie s</span></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><span style="font-size: 13px;">s.encode(kodowanie) - zwraca zakodowaną wersję napisu ('utf-8', 'ascii', 'utf-16')</span></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><span style="font-size: 13px;">s.isalnum() - sprawdza czy wszystkie znaki są znakami alfanumerycznymi</span></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><span style="font-size: 13px;">s.isdigit() - sprawdza czy wszystkie znaki są cyframi</span></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><span style="font-size: 13px;">s.islower() - sprawdza czy wszystkie litery są małe</span></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><span style="font-size: 13px;">s.isspace() - sprawdza czy wszystkie znaki są białymi znakami</span></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><span style="font-size: 13px;">s.isupper() - sprawdza czy wszystkie litery są duże</span></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><span style="font-size: 13px;">s.join(t) - łączy wszystkie napisy na liście t używając s jako separatora</span></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><span style="font-size: 21px;">5.Instrukcje sterujące</span></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><span style="font-size: 17px;">5.1If...elif...else</span></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><span style="font-size: 15px;">5.1.1.If...</span></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">Instrukcję if możemy po polsku nazwać ,,jezeli".Istnieją dodatki do if w postaci elif(w C elseif) oraz else.Jeżeli pisałeś np. w AutoIt to zapewne zdziwi cię fakt że nie ma tu prawa bytu instrukcja switch. Jest po prostu zastąpiona szybszym if...elif.Dobra skończmy te formalności i przejdźmy do kodu,ale najpierw mała dygresja:python jest czuły na tzw.białe znaki(spacja,tabulator itd.).Oznaczają one zasięg instrukcji sterujących.</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">Oto nasz kodzik który wspólnie przeanalizujemy:</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><pre class="prettyprint" style="background-attachment: initial; background-clip: initial; background-color: #141414; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(39, 39, 39); border-bottom-left-radius: 4px 4px; border-bottom-right-radius: 4px 4px; border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(39, 39, 39); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(39, 39, 39); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(39, 39, 39); border-top-left-radius: 4px 4px; border-top-right-radius: 46px 46px; border-top-style: solid; border-top-width: 1px; font-size: 11px; line-height: 15px; margin-bottom: 0px; margin-left: 10px; margin-right: 0px; margin-top: 0px; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;"><span class="pln" style="color: #cccccc;">a</span><span class="pun" style="color: #cccccc;">=</span><span class="lit" style="color: #cccc00;">1</span><span class="pln" style="color: #cccccc;">
b</span><span class="pun" style="color: #cccccc;">=</span><span class="lit" style="color: #cccc00;">2</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">print</span><span class="pln" style="color: #cccccc;"> </span><span class="str" style="color: #00bb00;">"To zobaczymy"</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">if</span><span class="pln" style="color: #cccccc;"> a</span><span class="pun" style="color: #cccccc;">==</span><span class="pln" style="color: #cccccc;">b</span><span class="pun" style="color: #cccccc;">:</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">print</span><span class="pln" style="color: #cccccc;"> </span><span class="str" style="color: #00bb00;">"tego już nie zobaczymy"</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">print</span><span class="pln" style="color: #cccccc;"> </span><span class="str" style="color: #00bb00;">"koniec"</span></pre></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">Na początku deklarujemy dwie zmienne o różnych wartościach.Później porównujemy te zmienne i jeżeli są równe (==) wtedy wyświetlamy napis "tego już nie zobaczymy".Jak łatwo się domyślić funkcja print zawarta w bloku if.</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><span style="font-size: 15px;">5.1.2 If...else</span></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">Fraza else to rozszerzenie instrukcji if.Możemy ją tłumaczyć tak:jeżeli warunek nie jest prawdziwy wtedy wykonuj instrukcje z bloku else.Tłumaczenie najprostsze na jakie mnie stać</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><img alt=":)" class="bbc_emoticon" src="http://coding-gods.org/public/style_emoticons/default/smile.gif" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; vertical-align: middle;" /></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">Przykład</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><pre class="prettyprint" style="background-attachment: initial; background-clip: initial; background-color: #141414; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(39, 39, 39); border-bottom-left-radius: 4px 4px; border-bottom-right-radius: 4px 4px; border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(39, 39, 39); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(39, 39, 39); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(39, 39, 39); border-top-left-radius: 4px 4px; border-top-right-radius: 46px 46px; border-top-style: solid; border-top-width: 1px; font-size: 11px; line-height: 15px; margin-bottom: 0px; margin-left: 10px; margin-right: 0px; margin-top: 0px; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;"><span class="pln" style="color: #cccccc;">a</span><span class="pun" style="color: #cccccc;">=</span><span class="lit" style="color: #cccc00;">1</span><span class="pln" style="color: #cccccc;">
b</span><span class="pun" style="color: #cccccc;">=</span><span class="lit" style="color: #cccc00;">2</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">if</span><span class="pln" style="color: #cccccc;"> a</span><span class="pun" style="color: #cccccc;">==</span><span class="pln" style="color: #cccccc;">b</span><span class="pun" style="color: #cccccc;">:</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">print</span><span class="pln" style="color: #cccccc;"> </span><span class="str" style="color: #00bb00;">"a i be są równe"</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">else</span><span class="pun" style="color: #cccccc;">:</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">print</span><span class="pln" style="color: #cccccc;"> </span><span class="str" style="color: #00bb00;">"a i b nie są równe"</span></pre></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">Jak widać wykona się tylko instrukcja print z bloku else czyli a i b nie są równe</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><span style="font-size: 15px;">5.1.3 If...elif...else</span></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">Jak w nagłówku widać do znanej nam już pary wepchnął się elif.Elif znany być może skądinąd jako else if,pozwala nam na sprawdzenie kilku warunków.Przejdźmy do sedna sprawy czyli trafnego przykładu:</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><pre class="prettyprint" style="background-attachment: initial; background-clip: initial; background-color: #141414; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(39, 39, 39); border-bottom-left-radius: 4px 4px; border-bottom-right-radius: 4px 4px; border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(39, 39, 39); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(39, 39, 39); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(39, 39, 39); border-top-left-radius: 4px 4px; border-top-right-radius: 46px 46px; border-top-style: solid; border-top-width: 1px; font-size: 11px; line-height: 15px; margin-bottom: 0px; margin-left: 10px; margin-right: 0px; margin-top: 0px; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;"><span class="pln" style="color: #cccccc;">a</span><span class="pun" style="color: #cccccc;">=</span><span class="lit" style="color: #cccc00;">18</span><span class="pln" style="color: #cccccc;">
b</span><span class="pun" style="color: #cccccc;">=</span><span class="lit" style="color: #cccc00;">14</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">if</span><span class="pln" style="color: #cccccc;"> a </span><span class="pun" style="color: #cccccc;">==</span><span class="pln" style="color: #cccccc;"> b</span><span class="pun" style="color: #cccccc;">:</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">print</span><span class="pln" style="color: #cccccc;"> </span><span class="str" style="color: #00bb00;">"A jest równe B"</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">elif</span><span class="pln" style="color: #cccccc;"> a </span><span class="pun" style="color: #cccccc;">>=</span><span class="pln" style="color: #cccccc;"> b</span><span class="pun" style="color: #cccccc;">:</span><span class="pln" style="color: #cccccc;">
printa </span><span class="str" style="color: #00bb00;">"A jest większe lub równe B"</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">else</span><span class="pun" style="color: #cccccc;">:</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">print</span><span class="pln" style="color: #cccccc;"> </span><span class="str" style="color: #00bb00;">"A jest inne"</span></pre></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">Pokumbinuj trochę ze zmiennymi a na pewno zrozumiesz sens.</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">Dodać oczywiście możemy więcej warunków elif. W Pythonie często służy do zasymulowania nieistniejącego w Pythonie Switch'a.</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><pre class="prettyprint" style="background-attachment: initial; background-clip: initial; background-color: #141414; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(39, 39, 39); border-bottom-left-radius: 4px 4px; border-bottom-right-radius: 4px 4px; border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(39, 39, 39); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(39, 39, 39); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(39, 39, 39); border-top-left-radius: 4px 4px; border-top-right-radius: 46px 46px; border-top-style: solid; border-top-width: 1px; font-size: 11px; line-height: 15px; margin-bottom: 0px; margin-left: 10px; margin-right: 0px; margin-top: 0px; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;"><span class="pln" style="color: #cccccc;">a</span><span class="pun" style="color: #cccccc;">=</span><span class="lit" style="color: #cccc00;">18</span><span class="pln" style="color: #cccccc;">
b</span><span class="pun" style="color: #cccccc;">=</span><span class="lit" style="color: #cccc00;">14</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">if</span><span class="pln" style="color: #cccccc;"> a </span><span class="pun" style="color: #cccccc;">==</span><span class="pln" style="color: #cccccc;"> b</span><span class="pun" style="color: #cccccc;">:</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">print</span><span class="pln" style="color: #cccccc;"> </span><span class="str" style="color: #00bb00;">"A jest równe B"</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">elif</span><span class="pln" style="color: #cccccc;"> a </span><span class="pun" style="color: #cccccc;">>=</span><span class="pln" style="color: #cccccc;"> b</span><span class="pun" style="color: #cccccc;">:</span><span class="pln" style="color: #cccccc;">
printa </span><span class="str" style="color: #00bb00;">"A jest większe lub równe B"</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">elif</span><span class="pln" style="color: #cccccc;"> a </span><span class="pun" style="color: #cccccc;"><=</span><span class="pln" style="color: #cccccc;"> b</span><span class="pun" style="color: #cccccc;">:</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">print</span><span class="pln" style="color: #cccccc;"> </span><span class="str" style="color: #00bb00;">"A jest mniejsze lub równe B"</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">elif</span><span class="pln" style="color: #cccccc;"> a </span><span class="pun" style="color: #cccccc;">!=</span><span class="pln" style="color: #cccccc;"> b</span><span class="pun" style="color: #cccccc;">:</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">print</span><span class="pln" style="color: #cccccc;"> </span><span class="str" style="color: #00bb00;">"A nie jest równe B"</span><span class="pln" style="color: #cccccc;"> </span><span class="com" style="color: #00bb00;">#ten warunek został spełniony</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">else</span><span class="pun" style="color: #cccccc;">:</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">print</span><span class="pln" style="color: #cccccc;"> </span><span class="str" style="color: #00bb00;">"A jest inne"</span></pre></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><span style="font-size: 17px;">5.2 For</span></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">Jeżeli programowaliście kiedyś w jakimś języku to na pewno spotkaliście się z pętlą for. W Pythonie działa ona trochę inaczej: iteruje po zbiorze. Czyli działa jak foreach w innych językach. Do określenia zbioru liczbowego służy funkcja Range:</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><pre class="prettyprint" style="background-attachment: initial; background-clip: initial; background-color: #141414; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(39, 39, 39); border-bottom-left-radius: 4px 4px; border-bottom-right-radius: 4px 4px; border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(39, 39, 39); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(39, 39, 39); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(39, 39, 39); border-top-left-radius: 4px 4px; border-top-right-radius: 46px 46px; border-top-style: solid; border-top-width: 1px; font-size: 11px; line-height: 15px; margin-bottom: 0px; margin-left: 10px; margin-right: 0px; margin-top: 0px; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;"><span class="typ" style="color: #cccccc;">Range</span><span class="pun" style="color: #cccccc;">(</span><span class="lit" style="color: #cccc00;">1</span><span class="pun" style="color: #cccccc;">,</span><span class="lit" style="color: #cccc00;">10</span><span class="pun" style="color: #cccccc;">)</span></pre></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">For ma składnię taką samą jak inne konstrukcje a więc:</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><pre class="prettyprint" style="background-attachment: initial; background-clip: initial; background-color: #141414; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(39, 39, 39); border-bottom-left-radius: 4px 4px; border-bottom-right-radius: 4px 4px; border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(39, 39, 39); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(39, 39, 39); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(39, 39, 39); border-top-left-radius: 4px 4px; border-top-right-radius: 46px 46px; border-top-style: solid; border-top-width: 1px; font-size: 11px; line-height: 15px; margin-bottom: 0px; margin-left: 10px; margin-right: 0px; margin-top: 0px; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;"><span class="kwd" style="color: #0055ff;">for</span><span class="pln" style="color: #cccccc;"> x </span><span class="kwd" style="color: #0055ff;">in</span><span class="pln" style="color: #cccccc;"> </span><span class="typ" style="color: #cccccc;">Range</span><span class="pun" style="color: #cccccc;">(</span><span class="lit" style="color: #cccc00;">1</span><span class="pun" style="color: #cccccc;">,</span><span class="lit" style="color: #cccc00;">10</span><span class="pun" style="color: #cccccc;">):</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">print</span><span class="pln" style="color: #cccccc;"> x</span></pre></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">wyświetli nam kolejno 10 liczb.</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><span style="font-size: 15px;">5.2.1 Foreach</span></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">For jak już wspomniałem nie jest zwykłym for. Działa jak foreach więc jeżeli mamy np.listę i chcemy wyświetlić jej zawartość piszemy:</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><pre class="prettyprint" style="background-attachment: initial; background-clip: initial; background-color: #141414; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(39, 39, 39); border-bottom-left-radius: 4px 4px; border-bottom-right-radius: 4px 4px; border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(39, 39, 39); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(39, 39, 39); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(39, 39, 39); border-top-left-radius: 4px 4px; border-top-right-radius: 46px 46px; border-top-style: solid; border-top-width: 1px; font-size: 11px; line-height: 15px; margin-bottom: 0px; margin-left: 10px; margin-right: 0px; margin-top: 0px; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;"><span class="pln" style="color: #cccccc;">lista</span><span class="pun" style="color: #cccccc;">=[</span><span class="str" style="color: #00bb00;">'1'</span><span class="pun" style="color: #cccccc;">,</span><span class="str" style="color: #00bb00;">'2'</span><span class="pun" style="color: #cccccc;">,</span><span class="str" style="color: #00bb00;">'3'</span><span class="pun" style="color: #cccccc;">]</span><span class="pln" style="color: #cccccc;"> </span><span class="com" style="color: #00bb00;">#itd....</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">for</span><span class="pln" style="color: #cccccc;"> x </span><span class="kwd" style="color: #0055ff;">in</span><span class="pln" style="color: #cccccc;"> lista</span><span class="pun" style="color: #cccccc;">:</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">print</span><span class="pln" style="color: #cccccc;"> x</span></pre></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">Powinno wyświetlić nam zawartość listy.</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><span style="font-size: 17px;">5.3 While</span></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">While to pętla która wykonuje się dopóki jest spełniony warunek. Czym jest warunek wiemy z rozdziału nt. Porównań. Np.</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><pre class="prettyprint" style="background-attachment: initial; background-clip: initial; background-color: #141414; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(39, 39, 39); border-bottom-left-radius: 4px 4px; border-bottom-right-radius: 4px 4px; border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(39, 39, 39); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(39, 39, 39); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(39, 39, 39); border-top-left-radius: 4px 4px; border-top-right-radius: 46px 46px; border-top-style: solid; border-top-width: 1px; font-size: 11px; line-height: 15px; margin-bottom: 0px; margin-left: 10px; margin-right: 0px; margin-top: 0px; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;"><span class="pln" style="color: #cccccc;">x</span><span class="pun" style="color: #cccccc;">=</span><span class="lit" style="color: #cccc00;">10</span><span class="pln" style="color: #cccccc;">
v</span><span class="pun" style="color: #cccccc;">=</span><span class="lit" style="color: #cccc00;">10</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">while</span><span class="pln" style="color: #cccccc;"> x</span><span class="pun" style="color: #cccccc;">==</span><span class="lit" style="color: #cccc00;">10</span><span class="pun" style="color: #cccccc;">:</span><span class="pln" style="color: #cccccc;"> </span><span class="com" style="color: #00bb00;">#wykona się</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">print</span><span class="pln" style="color: #cccccc;"> </span><span class="str" style="color: #00bb00;">"LOL"</span></pre></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">Powyższego kodu nie radzę uruchamiać-zbuguje wam konsole.</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><span style="font-size: 15px;">5.3.1</span></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">Jeżeli potrzebujemy pętli nieskończonej po prostu piszemy:</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><pre class="prettyprint" style="background-attachment: initial; background-clip: initial; background-color: #141414; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(39, 39, 39); border-bottom-left-radius: 4px 4px; border-bottom-right-radius: 4px 4px; border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(39, 39, 39); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(39, 39, 39); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(39, 39, 39); border-top-left-radius: 4px 4px; border-top-right-radius: 46px 46px; border-top-style: solid; border-top-width: 1px; font-size: 11px; line-height: 15px; margin-bottom: 0px; margin-left: 10px; margin-right: 0px; margin-top: 0px; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;"><span class="kwd" style="color: #0055ff;">while</span><span class="pln" style="color: #cccccc;"> </span><span class="kwd" style="color: #0055ff;">True</span><span class="pun" style="color: #cccccc;">:</span></pre></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">lub</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"> </span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><pre class="prettyprint" style="background-attachment: initial; background-clip: initial; background-color: #141414; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(39, 39, 39); border-bottom-left-radius: 4px 4px; border-bottom-right-radius: 4px 4px; border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(39, 39, 39); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(39, 39, 39); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(39, 39, 39); border-top-left-radius: 4px 4px; border-top-right-radius: 46px 46px; border-top-style: solid; border-top-width: 1px; font-size: 11px; line-height: 15px; margin-bottom: 0px; margin-left: 10px; margin-right: 0px; margin-top: 0px; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;"><span class="kwd" style="color: #0055ff;">while</span><span class="pln" style="color: #cccccc;"> </span><span class="lit" style="color: #cccc00;">1</span></pre></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><span style="font-size: 26px;">6.Typy danych</span></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><span style="font-size: 17px;">6.1Listy</span></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">Listy to najzwyklejsze,znane z innych języków tablice.Dla bardziej zielonych:tablica(Pythonowa lista)to po prostu inny dużo wygodniejszy.Załóżmy że piszemy lottomat porównujący wyniki losowania z dnia 1.1.2001 roku.Po prostu wsadzamy te wyniki do jednej wielkiej listy,a potem szukamy wartości powtarzających się.Cóż może to zły przykład ale napewno lepszy niż tłumaczenie tego typu:</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">-Po co robić 100 zmiennych o takiej samej zawartości jak możemy użyć tablicy.</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">Cóż po takim tłumaczeniu sam nie zabardzo wiem o co biega z tymi tablicami.</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">Pora na przykład:</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><pre class="prettyprint" style="background-attachment: initial; background-clip: initial; background-color: #141414; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(39, 39, 39); border-bottom-left-radius: 4px 4px; border-bottom-right-radius: 4px 4px; border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(39, 39, 39); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(39, 39, 39); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(39, 39, 39); border-top-left-radius: 4px 4px; border-top-right-radius: 46px 46px; border-top-style: solid; border-top-width: 1px; font-size: 11px; line-height: 15px; margin-bottom: 0px; margin-left: 10px; margin-right: 0px; margin-top: 0px; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;"><span class="pln" style="color: #cccccc;">lista</span><span class="pun" style="color: #cccccc;">=[</span><span class="str" style="color: #00bb00;">'Tutorial'</span><span class="pun" style="color: #cccccc;">,</span><span class="str" style="color: #00bb00;">'example'</span><span class="pun" style="color: #cccccc;">,</span><span class="str" style="color: #00bb00;">'Coding'</span><span class="pun" style="color: #cccccc;">,</span><span class="str" style="color: #00bb00;">'Gods'</span><span class="pun" style="color: #cccccc;">]</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">print</span><span class="pln" style="color: #cccccc;"> lista</span><span class="pun" style="color: #cccccc;">[</span><span class="lit" style="color: #cccc00;">0</span><span class="pun" style="color: #cccccc;">],</span><span class="pln" style="color: #cccccc;">lista</span><span class="pun" style="color: #cccccc;">[</span><span class="lit" style="color: #cccc00;">2</span><span class="pun" style="color: #cccccc;">],</span><span class="pln" style="color: #cccccc;">lista</span><span class="pun" style="color: #cccccc;">[</span><span class="lit" style="color: #cccc00;">3</span><span class="pun" style="color: #cccccc;">]</span></pre></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">Po uruchomieniu tego kodu zobaczymy napis:</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><pre class="prettyprint" style="background-attachment: initial; background-clip: initial; background-color: #141414; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(39, 39, 39); border-bottom-left-radius: 4px 4px; border-bottom-right-radius: 4px 4px; border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(39, 39, 39); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(39, 39, 39); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(39, 39, 39); border-top-left-radius: 4px 4px; border-top-right-radius: 46px 46px; border-top-style: solid; border-top-width: 1px; font-size: 11px; line-height: 15px; margin-bottom: 0px; margin-left: 10px; margin-right: 0px; margin-top: 0px; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;"><span class="typ" style="color: #cccccc;">Tutorial</span><span class="pln" style="color: #cccccc;"> </span><span class="typ" style="color: #cccccc;">Coding</span><span class="pln" style="color: #cccccc;"> </span><span class="typ" style="color: #cccccc;">Gods</span></pre></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">Do elementów tablicy dostajemy się jak już mówiłem poprzez jej indeks.</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><strong class="bbc" style="font-weight: bold !important;">Indeks elementów jest ustalany dla pierwszego elemntu od zera!!!</strong></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">By dostać się do listy możemy także podawać ujemne indeksy:</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><pre class="prettyprint" style="background-attachment: initial; background-clip: initial; background-color: #141414; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(39, 39, 39); border-bottom-left-radius: 4px 4px; border-bottom-right-radius: 4px 4px; border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(39, 39, 39); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(39, 39, 39); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(39, 39, 39); border-top-left-radius: 4px 4px; border-top-right-radius: 46px 46px; border-top-style: solid; border-top-width: 1px; font-size: 11px; line-height: 15px; margin-bottom: 0px; margin-left: 10px; margin-right: 0px; margin-top: 0px; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;"><span class="pln" style="color: #cccccc;">lista</span><span class="pun" style="color: #cccccc;">=[</span><span class="str" style="color: #00bb00;">'Tutorial'</span><span class="pun" style="color: #cccccc;">,</span><span class="str" style="color: #00bb00;">'example'</span><span class="pun" style="color: #cccccc;">,</span><span class="str" style="color: #00bb00;">'Coding'</span><span class="pun" style="color: #cccccc;">,</span><span class="str" style="color: #00bb00;">'Gods'</span><span class="pun" style="color: #cccccc;">]</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">print</span><span class="pln" style="color: #cccccc;"> lista</span><span class="pun" style="color: #cccccc;">[-</span><span class="lit" style="color: #cccc00;">1</span><span class="pun" style="color: #cccccc;">]</span></pre></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">W efekcie dostaniemy słówko Gods.Podawanie ujemnego indeksu skutkuje wyświetlaniem elemntów listy od tyłu.</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><span style="font-size: 17px;">6.2Krotki(Tuple)</span></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">Krotki to listy o niezmiennej zawartości.Są niemodowalne,możemy jednak wykonywać na nich podobne operacje poza zmienianiem zawartości krotki.</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">Krotkę tworzymy podobnie jak listę ale zamiast nawiasów kwadratowych wstawiamy okrągłe:<br></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><pre class="prettyprint" style="background-attachment: initial; background-clip: initial; background-color: #141414; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(39, 39, 39); border-bottom-left-radius: 4px 4px; border-bottom-right-radius: 4px 4px; border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(39, 39, 39); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(39, 39, 39); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(39, 39, 39); border-top-left-radius: 4px 4px; border-top-right-radius: 46px 46px; border-top-style: solid; border-top-width: 1px; font-size: 11px; line-height: 15px; margin-bottom: 0px; margin-left: 10px; margin-right: 0px; margin-top: 0px; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;"><span class="pln" style="color: #cccccc;">krotka</span><span class="pun" style="color: #cccccc;">=(</span><span class="lit" style="color: #cccc00;">1</span><span class="pun" style="color: #cccccc;">,</span><span class="lit" style="color: #cccc00;">2</span><span class="pun" style="color: #cccccc;">,</span><span class="lit" style="color: #cccc00;">3</span><span class="pun" style="color: #cccccc;">,</span><span class="lit" style="color: #cccc00;">4</span><span class="pun" style="color: #cccccc;">,</span><span class="lit" style="color: #cccc00;">5</span><span class="pun" style="color: #cccccc;">,</span><span class="lit" style="color: #cccc00;">6</span><span class="pun" style="color: #cccccc;">,</span><span class="lit" style="color: #cccc00;">7</span><span class="pun" style="color: #cccccc;">,</span><span class="lit" style="color: #cccc00;">8</span><span class="pun" style="color: #cccccc;">,</span><span class="lit" style="color: #cccc00;">9</span><span class="pun" style="color: #cccccc;">)</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">for</span><span class="pln" style="color: #cccccc;"> x </span><span class="kwd" style="color: #0055ff;">in</span><span class="pln" style="color: #cccccc;"> krotka</span><span class="pun" style="color: #cccccc;">:</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">print</span><span class="pln" style="color: #cccccc;"> x</span></pre></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><span style="font-size: 17px;">6.3Słowniki</span></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">Słowniki to znane z PHP(i perla, tam jednak nazywane "haszami") tablice asocjacyjne.Do jej elementów dostajemy się podając klucz.</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">Przykład słownika:</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><pre class="prettyprint" style="background-attachment: initial; background-clip: initial; background-color: #141414; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(39, 39, 39); border-bottom-left-radius: 4px 4px; border-bottom-right-radius: 4px 4px; border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(39, 39, 39); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(39, 39, 39); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(39, 39, 39); border-top-left-radius: 4px 4px; border-top-right-radius: 46px 46px; border-top-style: solid; border-top-width: 1px; font-size: 11px; line-height: 15px; margin-bottom: 0px; margin-left: 10px; margin-right: 0px; margin-top: 0px; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;"><span class="pln" style="color: #cccccc;">numery</span><span class="pun" style="color: #cccccc;">={</span><span class="pln" style="color: #cccccc;"> </span><span class="str" style="color: #00bb00;">"karol"</span><span class="pln" style="color: #cccccc;"> </span><span class="pun" style="color: #cccccc;">:</span><span class="pln" style="color: #cccccc;"> </span><span class="lit" style="color: #cccc00;">888999</span><span class="pln" style="color: #cccccc;"> </span><span class="pun" style="color: #cccccc;">,</span><span class="pln" style="color: #cccccc;"> </span><span class="str" style="color: #00bb00;">"kasia"</span><span class="pln" style="color: #cccccc;"> </span><span class="pun" style="color: #cccccc;">:</span><span class="pln" style="color: #cccccc;"> </span><span class="lit" style="color: #cccc00;">999999</span><span class="pln" style="color: #cccccc;"> </span><span class="pun" style="color: #cccccc;">}</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">print</span><span class="pln" style="color: #cccccc;"> numery</span><span class="pun" style="color: #cccccc;">[</span><span class="str" style="color: #00bb00;">"karol"</span><span class="pun" style="color: #cccccc;">]</span></pre></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">Gdzie karol i kasia to klucze a numery to wartości kluczy.Wartość podajemy po : (dwukropek)</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><span style="font-size: 21px;">7.Programowanie obiektowe</span></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><span style="font-size: 17px;">7.1 Wstęp.Funkcje</span></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">Programowanie obiektowe opiera się na tworzeniu nowych typów danych za pomocą klas. Klasa jak to pięknie napisane było w pewnej książce to: "zbiór danych oraz funkcji które z nich korzystają". O tym czym jest funkcja jeszcze nie powiedziałem. Jest to konstrukcja pozalająca na wywołanie pewnych instrukcji w niej zawartej. Funkcja przyjmuje parametry które pozwalają operować na realnych zmiennych. Moje tłumaczenie pewnie jak zwykle zbyt zawiłe więc zapodam przykład:</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><pre class="prettyprint" style="background-attachment: initial; background-clip: initial; background-color: #141414; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(39, 39, 39); border-bottom-left-radius: 4px 4px; border-bottom-right-radius: 4px 4px; border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(39, 39, 39); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(39, 39, 39); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(39, 39, 39); border-top-left-radius: 4px 4px; border-top-right-radius: 46px 46px; border-top-style: solid; border-top-width: 1px; font-size: 11px; line-height: 15px; margin-bottom: 0px; margin-left: 10px; margin-right: 0px; margin-top: 0px; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;"><span class="kwd" style="color: #0055ff;">def</span><span class="pln" style="color: #cccccc;"> </span><span class="typ" style="color: #cccccc;">Funkcja</span><span class="pun" style="color: #cccccc;">(</span><span class="pln" style="color: #cccccc;">imie </span><span class="pun" style="color: #cccccc;">=</span><span class="str" style="color: #00bb00;">"nikt"</span><span class="pun" style="color: #cccccc;">)</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">print</span><span class="pln" style="color: #cccccc;"> imie</span><span class="kwd" style="color: #0055ff;">if</span><span class="pln" style="color: #cccccc;"> __name__ </span><span class="pun" style="color: #cccccc;">==</span><span class="pln" style="color: #cccccc;"> </span><span class="str" style="color: #00bb00;">"__main__"</span><span class="pun" style="color: #cccccc;">:</span><span class="pln" style="color: #cccccc;">
</span><span class="typ" style="color: #cccccc;">Funkcja</span><span class="pun" style="color: #cccccc;">(</span><span class="str" style="color: #00bb00;">"Assarelliuss"</span><span class="pun" style="color: #cccccc;">)</span><span class="pln" style="color: #cccccc;">
</span><span class="typ" style="color: #cccccc;">Funkcja</span><span class="pun" style="color: #cccccc;">()</span></pre></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">Przeanalizujmy:</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">def-definiuje funkcje o nazwie Funkcja,przyjmującą jako parametr imie. Imie jest parametrem domyślnym, ponieważ gdy go nie podamy zostanie przyjęte imie nikt.</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">print imie- wyświetla podany parametr. Na tym kończy się definicja funkcji a zaczyna właściwy program.</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">if __name__ == "__main__": - uruchamia aplikacje. O parametrze __name__ jeszcze sobie powiemy.</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">Przedostatnia linijka powoduje wywołanie funkcji Funkcja z parametrem Assarelliuss, Czyli wyświetla moje imie :)Ostatnia linijka powinna wyświetlić imie nikt, ponieważ ustawiliśmy takowy jako domyślny:)</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><span style="font-size: 17px;">7.2 Klasy, czyli nowe typy danych</span></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">Programowanie obiektowe polega na tworzeniu nowych typów danych, będących strukturami złożonymi z typów prostych(które nie są obecne w Pythonie, ponieważ interpreter "domyśla się" typów. Nie programującym w językach mocno typowanych trudno będzie zrozumieć tą metaforę). Klasa składa się z pól-zmiennych oraz metod-funkcji. Wyobraźmy sobie robota. Może on wykonywać kilka ruchów za pomocą metod, pola zaś określają jego stan. Metody mogą modyfikować pola, mogą również korzystać z nich. Ważną rzeczą w programowaniu obiektowym jest enkapsulacja danych. Chodzi o to by udostępnić użytkownikowi jedynie interfejs do obsługi klasy nie zaś całej klasy. Sprowadza się to do odpowiednich modyfikatorów dostępu. Pozwalają one na utrzymanie pewnego porządku oraz "czystość" danych. Klasy mogą dziedziczyć po innych klasach, otrzymując część ich metod i pól.</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"> </span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">Dobrze, część teoretyczną mamy już za sobą. Jak więc wygląda przykładowa klasa?</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><pre class="prettyprint" style="background-attachment: initial; background-clip: initial; background-color: #141414; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(39, 39, 39); border-bottom-left-radius: 4px 4px; border-bottom-right-radius: 4px 4px; border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(39, 39, 39); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(39, 39, 39); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(39, 39, 39); border-top-left-radius: 4px 4px; border-top-right-radius: 46px 46px; border-top-style: solid; border-top-width: 1px; font-size: 11px; line-height: 15px; margin-bottom: 0px; margin-left: 10px; margin-right: 0px; margin-top: 0px; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;"><span class="kwd" style="color: #0055ff;">class</span><span class="pln" style="color: #cccccc;"> </span><span class="typ" style="color: #cccccc;">Forum</span><span class="pun" style="color: #cccccc;">(</span><span class="kwd" style="color: #0055ff;">object</span><span class="pun" style="color: #cccccc;">):</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">def</span><span class="pln" style="color: #cccccc;"> __init__</span><span class="pun" style="color: #cccccc;">(</span><span class="kwd" style="color: #0055ff;">self</span><span class="pun" style="color: #cccccc;">):</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">self</span><span class="pun" style="color: #cccccc;">.</span><span class="pln" style="color: #cccccc;">uzytkownicy </span><span class="pun" style="color: #cccccc;">=</span><span class="pln" style="color: #cccccc;"> </span><span class="pun" style="color: #cccccc;">[]</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">def</span><span class="pln" style="color: #cccccc;"> dodaj</span><span class="pun" style="color: #cccccc;">(</span><span class="kwd" style="color: #0055ff;">self</span><span class="pun" style="color: #cccccc;">,</span><span class="pln" style="color: #cccccc;"> obiekt</span><span class="pun" style="color: #cccccc;">):</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">self</span><span class="pun" style="color: #cccccc;">.</span><span class="pln" style="color: #cccccc;">uzytkownicy</span><span class="pun" style="color: #cccccc;">.</span><span class="pln" style="color: #cccccc;">append</span><span class="pun" style="color: #cccccc;">(</span><span class="pln" style="color: #cccccc;">obiekt</span><span class="pun" style="color: #cccccc;">)</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">def</span><span class="pln" style="color: #cccccc;"> ilosc</span><span class="pun" style="color: #cccccc;">(</span><span class="kwd" style="color: #0055ff;">self</span><span class="pun" style="color: #cccccc;">):</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">return</span><span class="pln" style="color: #cccccc;"> len</span><span class="pun" style="color: #cccccc;">(</span><span class="kwd" style="color: #0055ff;">self</span><span class="pun" style="color: #cccccc;">.</span><span class="pln" style="color: #cccccc;">uzytkownicy</span><span class="pun" style="color: #cccccc;">)</span></pre></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><span style="font-size: 15px;">7.2.1 __init__</span></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">Deklarację klasy rozpoczynamy od słówka class. Myślę że jest to całkiem logiczne</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"> </span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><img alt=":)" class="bbc_emoticon" src="http://coding-gods.org/public/style_emoticons/default/smile.gif" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; vertical-align: middle;" /></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">Później deklarujemy metodę(jak już mówiłem funkcję w klasie) o bardzo dziwnej nazwie __init__ i podajemy jej jeszcze dziwniejszy parametr- self. Cóż to znaczy?Metoda __init__ musi być w każdej klasie i jest w każdej klasie. Służy ona do inicjalizacji obiektu, czyli tego naszego ciastka(jak pamiętamy klasa jest tylko formą na ciastka). W Pythonie pełni role pseudokonstruktora. Dlaczego pseudo? Nie nazywa się tak jak klasa, jest prywatny(choć może być dziedziczony) i występuje razem z konstruktorem domyślnym, który alokuje pamięć, przygotowuje "teren" pod obiekt. Co także może dziwić, to w nim deklarujemy pola. Python jest na tyle elastyczny że pozwala na deklaracje pól poza konstruktorem. Jednak one i tak będą "wsadzone" do konstruktora. Dlaczego? Ponieważ musimy je zainicjować.</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><span style="font-size: 15px;">7.2.2 self</span></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">Self to synonim obiektu bieżącego. Pozwala nam na odwoływanie się do wnętrza klasy z jej wnętrza, bez ciągłego podawania nazwy klasy. Jeżeli ktoś programował w jakimś innym obiektowym języku niech wie że self jest tym samym co this.</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><span style="font-size: 15px;">7.2.3 object</span></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">Object to klasa po której dziedziczy każda klasa zdefiniowana w Pythonie. Zawiera wiele przydatnych metod jak np. __dict__, __dir__ itd. Po tej klasie możemy dziedziczyć jawnie(explicite) lub nie jawnie(implicite). Standard 2.x.x nakazuje dziedziczenie explicite.</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><span style="font-size: 17px;">7.3 Obiekt.</span></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">Dobrze mamy zdefiniowaną klasę, teraz musimy stworzyć obiekt. Tworzenie obiektu to nic innego jak stworzenie zmiennej. Przyjrzyjmy się przykładowi.</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><pre class="prettyprint" style="background-attachment: initial; background-clip: initial; background-color: #141414; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(39, 39, 39); border-bottom-left-radius: 4px 4px; border-bottom-right-radius: 4px 4px; border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(39, 39, 39); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(39, 39, 39); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(39, 39, 39); border-top-left-radius: 4px 4px; border-top-right-radius: 46px 46px; border-top-style: solid; border-top-width: 1px; font-size: 11px; line-height: 15px; margin-bottom: 0px; margin-left: 10px; margin-right: 0px; margin-top: 0px; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;"><span class="kwd" style="color: #0055ff;">class</span><span class="pln" style="color: #cccccc;"> </span><span class="typ" style="color: #cccccc;">Forum</span><span class="pun" style="color: #cccccc;">:</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">def</span><span class="pln" style="color: #cccccc;"> __init__</span><span class="pun" style="color: #cccccc;">(</span><span class="kwd" style="color: #0055ff;">self</span><span class="pun" style="color: #cccccc;">):</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">self</span><span class="pun" style="color: #cccccc;">.</span><span class="pln" style="color: #cccccc;">uzytkownicy </span><span class="pun" style="color: #cccccc;">=</span><span class="pln" style="color: #cccccc;"> </span><span class="pun" style="color: #cccccc;">[]</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">print</span><span class="pln" style="color: #cccccc;"> </span><span class="str" style="color: #00bb00;">"Metoda __init__"</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">def</span><span class="pln" style="color: #cccccc;"> dodaj</span><span class="pun" style="color: #cccccc;">(</span><span class="kwd" style="color: #0055ff;">self</span><span class="pun" style="color: #cccccc;">,</span><span class="pln" style="color: #cccccc;"> obiekt</span><span class="pun" style="color: #cccccc;">):</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">self</span><span class="pun" style="color: #cccccc;">.</span><span class="pln" style="color: #cccccc;">uzytkownicy</span><span class="pun" style="color: #cccccc;">.</span><span class="pln" style="color: #cccccc;">append</span><span class="pun" style="color: #cccccc;">(</span><span class="pln" style="color: #cccccc;">obiekt</span><span class="pun" style="color: #cccccc;">)</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">def</span><span class="pln" style="color: #cccccc;"> ilosc</span><span class="pun" style="color: #cccccc;">(</span><span class="kwd" style="color: #0055ff;">self</span><span class="pun" style="color: #cccccc;">):</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">return</span><span class="pln" style="color: #cccccc;"> len</span><span class="pun" style="color: #cccccc;">(</span><span class="kwd" style="color: #0055ff;">self</span><span class="pun" style="color: #cccccc;">.</span><span class="pln" style="color: #cccccc;">uzytkownicy</span><span class="pun" style="color: #cccccc;">)</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">if</span><span class="pln" style="color: #cccccc;"> __name__ </span><span class="pun" style="color: #cccccc;">==</span><span class="pln" style="color: #cccccc;"> </span><span class="str" style="color: #00bb00;">"__main__"</span><span class="pun" style="color: #cccccc;">:</span><span class="pln" style="color: #cccccc;">
forum </span><span class="pun" style="color: #cccccc;">=</span><span class="pln" style="color: #cccccc;"> </span><span class="typ" style="color: #cccccc;">Forum</span><span class="pun" style="color: #cccccc;">()</span><span class="pln" style="color: #cccccc;">
forum</span><span class="pun" style="color: #cccccc;">.</span><span class="pln" style="color: #cccccc;">dodaj</span><span class="pun" style="color: #cccccc;">(</span><span class="str" style="color: #00bb00;">"Assa"</span><span class="pun" style="color: #cccccc;">)</span><span class="pln" style="color: #cccccc;">
forum</span><span class="pun" style="color: #cccccc;">.</span><span class="pln" style="color: #cccccc;">dodaj</span><span class="pun" style="color: #cccccc;">(</span><span class="str" style="color: #00bb00;">"Majki"</span><span class="pun" style="color: #cccccc;">)</span><span class="pln" style="color: #cccccc;">
forum</span><span class="pun" style="color: #cccccc;">.</span><span class="pln" style="color: #cccccc;">dodaj</span><span class="pun" style="color: #cccccc;">(</span><span class="str" style="color: #00bb00;">"PsychoBoy"</span><span class="pun" style="color: #cccccc;">)</span><span class="pln" style="color: #cccccc;">
</span><span class="str" style="color: #00bb00;">"""itd"""</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">print</span><span class="pln" style="color: #cccccc;"> forum</span><span class="pun" style="color: #cccccc;">.</span><span class="pln" style="color: #cccccc;">__dict__
</span><span class="kwd" style="color: #0055ff;">print</span><span class="pln" style="color: #cccccc;"> forum</span><span class="pun" style="color: #cccccc;">.</span><span class="pln" style="color: #cccccc;">ilosc</span><span class="pun" style="color: #cccccc;">()</span></pre></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><span style="font-size: 17px;">7.4 Dziedziczenie</span></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><span style="font-size: 17px;">7.4.1 Podstawy</span></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><span style="font-size: 13px;">Dziedziczenie to bardzo prosty sposób uzupełniania klas o metody. Klasa dziedzicząca po innej będzie zawierać jej metody, o ile nie są one prywatne. Sprawia to że nie musimy ciągle przepisywać tego samego kodu, jednocześnie pozwalając na tworzenie pewnej hierarchii. Założmy że mamy klasę Zwierzę. Z tej klasy chcemy wyprowadzić klasy Ssak oraz Ptak. Ssaki oraz ptaki mają pewne cechy wspólne jak np. oddychanie czy jedzenie. Bardzo prosto będzie więc zdefiniować je w klasie bazowej Zwierzę.</span></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><span style="font-size: 13px;">Przykład:</span></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><pre class="prettyprint" style="background-attachment: initial; background-clip: initial; background-color: #141414; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(39, 39, 39); border-bottom-left-radius: 4px 4px; border-bottom-right-radius: 4px 4px; border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(39, 39, 39); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(39, 39, 39); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(39, 39, 39); border-top-left-radius: 4px 4px; border-top-right-radius: 46px 46px; border-top-style: solid; border-top-width: 1px; font-size: 11px; line-height: 15px; margin-bottom: 0px; margin-left: 10px; margin-right: 0px; margin-top: 0px; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;"><span class="kwd" style="color: #0055ff;">class</span><span class="pln" style="color: #cccccc;"> </span><span class="typ" style="color: #cccccc;">Animal</span><span class="pun" style="color: #cccccc;">(</span><span class="kwd" style="color: #0055ff;">object</span><span class="pun" style="color: #cccccc;">):</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">def</span><span class="pln" style="color: #cccccc;"> </span><span class="typ" style="color: #cccccc;">Oddychaj</span><span class="pun" style="color: #cccccc;">(</span><span class="kwd" style="color: #0055ff;">self</span><span class="pun" style="color: #cccccc;">):</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">print</span><span class="pln" style="color: #cccccc;"> </span><span class="str" style="color: #00bb00;">"Oddycham"</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">class</span><span class="pln" style="color: #cccccc;"> </span><span class="typ" style="color: #cccccc;">Bird</span><span class="pun" style="color: #cccccc;">(</span><span class="typ" style="color: #cccccc;">Animal</span><span class="pun" style="color: #cccccc;">):</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">def</span><span class="pln" style="color: #cccccc;"> </span><span class="typ" style="color: #cccccc;">Lec</span><span class="pun" style="color: #cccccc;">(</span><span class="kwd" style="color: #0055ff;">self</span><span class="pun" style="color: #cccccc;">):</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">print</span><span class="pln" style="color: #cccccc;"> </span><span class="str" style="color: #00bb00;">"Lece"</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">class</span><span class="pln" style="color: #cccccc;"> </span><span class="typ" style="color: #cccccc;">Mammal</span><span class="pun" style="color: #cccccc;">(</span><span class="typ" style="color: #cccccc;">Animal</span><span class="pun" style="color: #cccccc;">):</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">def</span><span class="pln" style="color: #cccccc;"> </span><span class="typ" style="color: #cccccc;">Biegnij</span><span class="pun" style="color: #cccccc;">(</span><span class="kwd" style="color: #0055ff;">self</span><span class="pun" style="color: #cccccc;">):</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">print</span><span class="pln" style="color: #cccccc;"> </span><span class="str" style="color: #00bb00;">"Biegne"</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">if</span><span class="pln" style="color: #cccccc;"> __name__ </span><span class="pun" style="color: #cccccc;">==</span><span class="pln" style="color: #cccccc;"> </span><span class="str" style="color: #00bb00;">"__main__"</span><span class="pun" style="color: #cccccc;">:</span><span class="pln" style="color: #cccccc;">
anim</span><span class="pun" style="color: #cccccc;">=</span><span class="typ" style="color: #cccccc;">Animal</span><span class="pun" style="color: #cccccc;">()</span><span class="pln" style="color: #cccccc;">
anim</span><span class="pun" style="color: #cccccc;">.</span><span class="typ" style="color: #cccccc;">Oddychaj</span><span class="pun" style="color: #cccccc;">()</span><span class="pln" style="color: #cccccc;">
bird</span><span class="pun" style="color: #cccccc;">=</span><span class="typ" style="color: #cccccc;">Bird</span><span class="pun" style="color: #cccccc;">()</span><span class="pln" style="color: #cccccc;">
bird</span><span class="pun" style="color: #cccccc;">.</span><span class="typ" style="color: #cccccc;">Oddychaj</span><span class="pun" style="color: #cccccc;">()</span><span class="pln" style="color: #cccccc;">
bird</span><span class="pun" style="color: #cccccc;">.</span><span class="typ" style="color: #cccccc;">Lec</span><span class="pun" style="color: #cccccc;">()</span><span class="pln" style="color: #cccccc;">
mammal</span><span class="pun" style="color: #cccccc;">=</span><span class="typ" style="color: #cccccc;">Mammal</span><span class="pun" style="color: #cccccc;">()</span><span class="pln" style="color: #cccccc;">
mammal</span><span class="pun" style="color: #cccccc;">.</span><span class="typ" style="color: #cccccc;">Oddychaj</span><span class="pun" style="color: #cccccc;">()</span><span class="pln" style="color: #cccccc;">
mammal</span><span class="pun" style="color: #cccccc;">.</span><span class="typ" style="color: #cccccc;">Biegnij</span><span class="pun" style="color: #cccccc;">()</span></pre></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">Jak widać jest bardzo prosta prezentacja możliwości dziedziczenia. Oczywiście nie należy przesadzać :uśmiech:</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><span style="font-size: 17px;">7.4.2 Wirtualizacja</span></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><span style="font-size: 13px;">Czym było by programowanie obiektowe bez metod wirtualnych? Na pewno nie miałoby tylu zalet :usmiech z jezykiem:. Czym są metody wirtualne? To takie które mogą zastać nadpisane przez metodę innej klasy. W Pythonie nie potrzeba specjalnego określania jakie metody czy klasy są wirtualne. Prosty przykład:</span></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><pre class="prettyprint" style="background-attachment: initial; background-clip: initial; background-color: #141414; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(39, 39, 39); border-bottom-left-radius: 4px 4px; border-bottom-right-radius: 4px 4px; border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(39, 39, 39); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(39, 39, 39); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(39, 39, 39); border-top-left-radius: 4px 4px; border-top-right-radius: 46px 46px; border-top-style: solid; border-top-width: 1px; font-size: 11px; line-height: 15px; margin-bottom: 0px; margin-left: 10px; margin-right: 0px; margin-top: 0px; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;"><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">class</span><span class="pln" style="color: #cccccc;"> </span><span class="typ" style="color: #cccccc;">Animal</span><span class="pun" style="color: #cccccc;">(</span><span class="kwd" style="color: #0055ff;">object</span><span class="pun" style="color: #cccccc;">):</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">def</span><span class="pln" style="color: #cccccc;"> </span><span class="typ" style="color: #cccccc;">Oddychaj</span><span class="pun" style="color: #cccccc;">(</span><span class="kwd" style="color: #0055ff;">self</span><span class="pun" style="color: #cccccc;">):</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">print</span><span class="pln" style="color: #cccccc;"> </span><span class="str" style="color: #00bb00;">"Oddycham"</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">class</span><span class="pln" style="color: #cccccc;"> </span><span class="typ" style="color: #cccccc;">Fish</span><span class="pun" style="color: #cccccc;">(</span><span class="typ" style="color: #cccccc;">Animal</span><span class="pun" style="color: #cccccc;">):</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">def</span><span class="pln" style="color: #cccccc;"> </span><span class="typ" style="color: #cccccc;">Oddychaj</span><span class="pun" style="color: #cccccc;">(</span><span class="kwd" style="color: #0055ff;">self</span><span class="pun" style="color: #cccccc;">):</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">print</span><span class="pln" style="color: #cccccc;"> </span><span class="str" style="color: #00bb00;">"Oddycham skrzelami"</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">class</span><span class="pln" style="color: #cccccc;"> </span><span class="typ" style="color: #cccccc;">Mammal</span><span class="pun" style="color: #cccccc;">(</span><span class="typ" style="color: #cccccc;">Animal</span><span class="pun" style="color: #cccccc;">):</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">def</span><span class="pln" style="color: #cccccc;"> </span><span class="typ" style="color: #cccccc;">Oddychaj</span><span class="pun" style="color: #cccccc;">(</span><span class="kwd" style="color: #0055ff;">self</span><span class="pun" style="color: #cccccc;">):</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">print</span><span class="pln" style="color: #cccccc;"> </span><span class="str" style="color: #00bb00;">"Oddycham plucami"</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">if</span><span class="pln" style="color: #cccccc;"> __name__</span><span class="pun" style="color: #cccccc;">==</span><span class="str" style="color: #00bb00;">"__main__"</span><span class="pun" style="color: #cccccc;">:</span><span class="pln" style="color: #cccccc;">
animal</span><span class="pun" style="color: #cccccc;">=</span><span class="typ" style="color: #cccccc;">Animal</span><span class="pun" style="color: #cccccc;">()</span><span class="pln" style="color: #cccccc;">
animal</span><span class="pun" style="color: #cccccc;">.</span><span class="typ" style="color: #cccccc;">Oddychaj</span><span class="pun" style="color: #cccccc;">()</span><span class="pln" style="color: #cccccc;">
fish</span><span class="pun" style="color: #cccccc;">=</span><span class="typ" style="color: #cccccc;">Fish</span><span class="pun" style="color: #cccccc;">()</span><span class="pln" style="color: #cccccc;">
fish</span><span class="pun" style="color: #cccccc;">.</span><span class="typ" style="color: #cccccc;">Oddychaj</span><span class="pun" style="color: #cccccc;">()</span><span class="pln" style="color: #cccccc;">
mammal</span><span class="pun" style="color: #cccccc;">=</span><span class="typ" style="color: #cccccc;">Mammal</span><span class="pun" style="color: #cccccc;">()</span><span class="pln" style="color: #cccccc;">
mammal</span><span class="pun" style="color: #cccccc;">.</span><span class="typ" style="color: #cccccc;">Oddychaj</span><span class="pun" style="color: #cccccc;">()</span></pre></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><span style="font-size: 17px;">7.4.3 Wielodziedziczenie</span></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">Wielodizedziczenie to dziedziczenie z kilku klas. Może być wam znane z języka C++. W Java oraz C# korzysta się z interfejsów, choć ta praktyka robi się coraz popularniejsza wśród programistów C++. Jak wygląda wielodziedziczenie? Prawie tak samo jak zwykłe dziedziczenie z jednej klasy z tymże jednak wyjątkiem, że dziedziczymy z wielu klas</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"> </span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><img alt=":P" class="bbc_emoticon" src="http://coding-gods.org/public/style_emoticons/default/tongue.gif" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; vertical-align: middle;" /></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">Przykład:</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><pre class="prettyprint" style="background-attachment: initial; background-clip: initial; background-color: #141414; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(39, 39, 39); border-bottom-left-radius: 4px 4px; border-bottom-right-radius: 4px 4px; border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(39, 39, 39); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(39, 39, 39); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(39, 39, 39); border-top-left-radius: 4px 4px; border-top-right-radius: 46px 46px; border-top-style: solid; border-top-width: 1px; font-size: 11px; line-height: 15px; margin-bottom: 0px; margin-left: 10px; margin-right: 0px; margin-top: 0px; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;"></pre></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><span style="font-size: 17px;">7.5 Hermetyzacja</span></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">Choć nie istnieje w pełni w Pythonie możemy mieć jej drobną namiastkę. Aby uczynić metodę widoczną jedynie w klasie bazowej wystarczy dodać dwa znaki podkreślenia(__) przed nazwą metody. Sprawi to że metody prywatne nie będą dziedziczone i nie będzie możliwości skorzystania z nich w klasie pochodnej. Pisząc aplikacje dla siebie(tzn. bez przygotowywania interfejsu API dla innych programistów)zazwyczaj hermetyzację się pomija.</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">Przykład metody prywatnej:</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><pre class="prettyprint" style="background-attachment: initial; background-clip: initial; background-color: #141414; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(39, 39, 39); border-bottom-left-radius: 4px 4px; border-bottom-right-radius: 4px 4px; border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(39, 39, 39); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(39, 39, 39); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(39, 39, 39); border-top-left-radius: 4px 4px; border-top-right-radius: 46px 46px; border-top-style: solid; border-top-width: 1px; font-size: 11px; line-height: 15px; margin-bottom: 0px; margin-left: 10px; margin-right: 0px; margin-top: 0px; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;"><span class="kwd" style="color: #0055ff;">class</span><span class="pln" style="color: #cccccc;"> </span><span class="typ" style="color: #cccccc;">Foo</span><span class="pun" style="color: #cccccc;">(</span><span class="kwd" style="color: #0055ff;">object</span><span class="pun" style="color: #cccccc;">):</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">def</span><span class="pln" style="color: #cccccc;"> __private</span><span class="pun" style="color: #cccccc;">(</span><span class="kwd" style="color: #0055ff;">self</span><span class="pun" style="color: #cccccc;">):</span><span class="pln" style="color: #cccccc;"> </span><span class="com" style="color: #00bb00;">#to metoda prywatna</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">pass</span></pre></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">Łatwo zauważyć że mamy kilka metod prywatnych które są automatycznie dostarczane do każdej klasy np. pseudo-konstruktor __init__, słownik __dict__ itd. Dwa podkreślenia za nazwą metody są oznaczeniem konwencji przyjętej jeszcze przed wydaniem Python'a.</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><span style="font-size: 17px;">7.6 Dekoratory</span></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">Dekoratory to nic innego jak pewien trik składniowy</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"> </span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><span style="font-size: 17px;">7.7 Pare dobrych zwyczajów</span></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><span style="font-size: 21px;">8.Obsługa Wyjątków</span></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><span style="font-size: 13px;">Wyjątki-mechanizm obsługi błędów oraz sytuacji wyjątkowych. Wyobraźmy sobie, że pozwalamy na wybranie jakiegoś pliku użytkownikowi(potem będziemy czytać ten plik czy coś na nim robić). Istnieje pewne niebezpieczeństwo, że np. użytkownik poda ścieżkę do nie stniejącego pliku, poda błędną nazwę itd. Większość programów, które tego typu mechanizmy posiadają po podaniu błędnej nazwy czy adresu albo się 'wywalą", albo wyplują błąd, jednak <strong class="bbc" style="font-weight: bold !important;">dalej będą działać</strong></span></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><span style="font-size: 13px;">. Dzieje się tak ponieważ w 1. app programista nie przewidział podania błędnego adresu i system nie mogąc znaleźć pliku wygeneruje błąd(wyjątek), który nieobsłużony "wywali" aplikację. W 2 zaś programista przewidział takową możliwość i dodał obsługę wyjątku.</span></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><span style="font-size: 13px;">Prosty przykład(dzielenie przez 0):</span></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><pre class="prettyprint" style="background-attachment: initial; background-clip: initial; background-color: #141414; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(39, 39, 39); border-bottom-left-radius: 4px 4px; border-bottom-right-radius: 4px 4px; border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(39, 39, 39); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(39, 39, 39); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(39, 39, 39); border-top-left-radius: 4px 4px; border-top-right-radius: 46px 46px; border-top-style: solid; border-top-width: 1px; font-size: 11px; line-height: 15px; margin-bottom: 0px; margin-left: 10px; margin-right: 0px; margin-top: 0px; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;"><span class="kwd" style="color: #0055ff;">if</span><span class="pln" style="color: #cccccc;"> __name__ </span><span class="pun" style="color: #cccccc;">==</span><span class="pln" style="color: #cccccc;"> </span><span class="str" style="color: #00bb00;">"__main__"</span><span class="pun" style="color: #cccccc;">:</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">try</span><span class="pun" style="color: #cccccc;">:</span><span class="pln" style="color: #cccccc;">
a</span><span class="pun" style="color: #cccccc;">=</span><span class="pln" style="color: #cccccc;">input</span><span class="pun" style="color: #cccccc;">(</span><span class="str" style="color: #00bb00;">"Podaj liczbe jaka chcesz podzielic"</span><span class="pun" style="color: #cccccc;">)</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">print</span><span class="pln" style="color: #cccccc;"> a</span><span class="pun" style="color: #cccccc;">/</span><span class="lit" style="color: #cccc00;">0</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">except</span><span class="pln" style="color: #cccccc;"> </span><span class="typ" style="color: #cccccc;">Exception</span><span class="pun" style="color: #cccccc;">,</span><span class="pln" style="color: #cccccc;"> e</span><span class="pun" style="color: #cccccc;">:</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">print</span><span class="pln" style="color: #cccccc;"> </span><span class="str" style="color: #00bb00;">"Uwaga:"</span><span class="pun" style="color: #cccccc;">,</span><span class="pln" style="color: #cccccc;"> e</span></pre></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">try oznacza w którym miejscu może zaistnieć wyjątek.</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">except przechwytuje wyjątek</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">Exception to typ wyjątku.</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">Typy wyjątków:</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><strong class="bbc" style="font-weight: bold !important;">Exception</strong></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"> </span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">- Wszystkie wyjątki</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><strong class="bbc" style="font-weight: bold !important;">SystemExit</strong></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"> </span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">- Generowany przez sys.exit()</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><strong class="bbc" style="font-weight: bold !important;">IOError</strong></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"> </span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">- Błędy związane z operacjami na plikach lub operacjami I/O</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><strong class="bbc" style="font-weight: bold !important;">EOFError</strong></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"> </span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">- Zgłaszany po osiągnięciu końca pliku</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><strong class="bbc" style="font-weight: bold !important;">KeyboardInterrupt</strong></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"> </span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">- Generowany przez klawisze przerwania (zazwyczaj CTRL+C)</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><strong class="bbc" style="font-weight: bold !important;">SyntaxError</strong></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"> </span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">- Błąd składni</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><span style="font-family: 'Helvetica Neue';">Są jeszcze wyjątki generowane przez platformy(.NET, JVM itd.) na jakich są uruchamiane nasze aplikacje.</span></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><span style="font-size: 21px;"><span style="font-size: 13px;">9.I/O</span></span></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">Operowanie na plikach to bardzo ważna w Pythonie ,jak i w każdym języku, rzecz. Pozwala na pisanie logów, automatyzację pewnych rzeczy, wpisywanie do pliku wyników operacji.</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><span style="font-size: 17px;"><span style="font-size: 13px;">8.1 Otwieranie(txt)</span></span></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><pre class="prettyprint" style="background-attachment: initial; background-clip: initial; background-color: #141414; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(39, 39, 39); border-bottom-left-radius: 4px 4px; border-bottom-right-radius: 4px 4px; border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(39, 39, 39); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(39, 39, 39); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(39, 39, 39); border-top-left-radius: 4px 4px; border-top-right-radius: 46px 46px; border-top-style: solid; border-top-width: 1px; font-size: 11px; line-height: 15px; margin-bottom: 0px; margin-left: 10px; margin-right: 0px; margin-top: 0px; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;"><span class="pln" style="color: #cccccc;">text </span><span class="pun" style="color: #cccccc;">=</span><span class="pln" style="color: #cccccc;"> open</span><span class="pun" style="color: #cccccc;">(</span><span class="str" style="color: #00bb00;">'nazwa_pliku'</span><span class="pun" style="color: #cccccc;">).</span><span class="pln" style="color: #cccccc;">read</span><span class="pun" style="color: #cccccc;">()</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">print</span><span class="pln" style="color: #cccccc;"> text</span></pre></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><span style="font-size: 17px;">8.2 Otwieranie(bin)</span></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><pre class="prettyprint" style="background-attachment: initial; background-clip: initial; background-color: #141414; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(39, 39, 39); border-bottom-left-radius: 4px 4px; border-bottom-right-radius: 4px 4px; border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(39, 39, 39); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(39, 39, 39); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(39, 39, 39); border-top-left-radius: 4px 4px; border-top-right-radius: 46px 46px; border-top-style: solid; border-top-width: 1px; font-size: 11px; line-height: 15px; margin-bottom: 0px; margin-left: 10px; margin-right: 0px; margin-top: 0px; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;"><span class="pln" style="color: #cccccc;">text </span><span class="pun" style="color: #cccccc;">=</span><span class="pln" style="color: #cccccc;"> open</span><span class="pun" style="color: #cccccc;">(</span><span class="str" style="color: #00bb00;">'plik_binarny'</span><span class="pun" style="color: #cccccc;">,</span><span class="pln" style="color: #cccccc;"> </span><span class="str" style="color: #00bb00;">'rb'</span><span class="pun" style="color: #cccccc;">).</span><span class="pln" style="color: #cccccc;">read</span><span class="pun" style="color: #cccccc;">()</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">print</span><span class="pln" style="color: #cccccc;"> text</span></pre></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><span style="font-size: 17px;">8.3 Pisanie do pliku</span></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><pre class="prettyprint" style="background-attachment: initial; background-clip: initial; background-color: #141414; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(39, 39, 39); border-bottom-left-radius: 4px 4px; border-bottom-right-radius: 4px 4px; border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(39, 39, 39); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(39, 39, 39); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(39, 39, 39); border-top-left-radius: 4px 4px; border-top-right-radius: 46px 46px; border-top-style: solid; border-top-width: 1px; font-size: 11px; line-height: 15px; margin-bottom: 0px; margin-left: 10px; margin-right: 0px; margin-top: 0px; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;"><span class="pln" style="color: #cccccc;">open</span><span class="pun" style="color: #cccccc;">(</span><span class="str" style="color: #00bb00;">'plik_do_zapisu'</span><span class="pun" style="color: #cccccc;">,</span><span class="pln" style="color: #cccccc;"> </span><span class="str" style="color: #00bb00;">'w'</span><span class="pun" style="color: #cccccc;">).</span><span class="pln" style="color: #cccccc;">write</span><span class="pun" style="color: #cccccc;">(</span><span class="str" style="color: #00bb00;">"tekst"</span><span class="pun" style="color: #cccccc;">)</span><span class="pln" style="color: #cccccc;">
open</span><span class="pun" style="color: #cccccc;">(</span><span class="str" style="color: #00bb00;">'plik_binarny_do_zapisu'</span><span class="pun" style="color: #cccccc;">,</span><span class="pln" style="color: #cccccc;"> </span><span class="str" style="color: #00bb00;">'wb'</span><span class="pun" style="color: #cccccc;">).</span><span class="pln" style="color: #cccccc;">write</span><span class="pun" style="color: #cccccc;">(</span><span class="str" style="color: #00bb00;">"dane binarne"</span><span class="pun" style="color: #cccccc;">)</span></pre></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><span style="font-size: 21px;">10.Bonus-Słówko o GUI</span></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">Aplikacje w konsoli nie są zbyt funkcjonalne ani interesujące.Warto więc pomyśleć o naucę jakiegoś modułu graficznego.Standardowo posiadamy Tkiner'a(Tk interface).Nie jest to jednak biblioteka łatwa w obsłudze.Zdecydowanie łatwiej uczyć się będzie QT4.Jest to obecnie najpopularniejszy moduł.Jeśli komuś nie idzie nauka QT4 warto zwrócić uwagę na kolejną duża biblioteke tym razem operującą w bardziej standardowy sposób na gui.Jest to wxPython kolejna,przepisana do Python'a biblioteka C++(wxWidgets).Jeżeli interesujemy się pisaniem na Linuxa warto zwrócić uwagę na GTK+.Dla wymagjących-masochistów istnieje Py32WIN.Jest to przepisana do pythona biblioteka WinApi.Z tego co czytałem nie ma częsći funkcji:(</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">Warto przetestować choć 2 biblioteki by zdobyć trochę doświadczenia.Pamiętaj że wybór należy tylko i wylącznie do ciebie!</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">#EDIT:Zapomniałem wspomnieć o IronPython i Jython które sprawiają że możemy użyć bibliotek natywnych dla danej platformy: .NET pozwala na skorzystanie z Windows Forms oraz Windows Presentation Foundation a Java na Swing'a oraz AWT(czy jakoś tak)</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><span style="font-family: Arial;"><span style="font-size: 21px;">11.BONUS-Python a Perl</span><br />
<span style="font-size: 13px;">Oba to języki skryptowe. Oba stworzone były głównie pod Linux. Obydwu można użyć do tworzenia stron internetowych. Obydwa posiadają ogromne ilości modułów. Jest za to jedna dość znacząca różnica-składnia. Czytelność obydwu zobrazuje przykład-piosenka 99 Bottles of Beer.</span><br />
<span style="font-size: 13px;">Python:</span></span></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><span style="font-family: Verdana, Arial;"><span style="color: #333333;"><br />
<pre class="prettyprint" style="background-attachment: initial; background-clip: initial; background-color: #141414; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(39, 39, 39); border-bottom-left-radius: 4px 4px; border-bottom-right-radius: 4px 4px; border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(39, 39, 39); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(39, 39, 39); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(39, 39, 39); border-top-left-radius: 4px 4px; border-top-right-radius: 46px 46px; border-top-style: solid; border-top-width: 1px; font-size: 11px; line-height: 15px; margin-bottom: 0px; margin-left: 10px; margin-right: 0px; margin-top: 0px; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;"><span class="com" style="color: #00bb00;">#!/usr/bin/env python</span><span class="pln" style="color: #cccccc;">
</span><span class="com" style="color: #00bb00;"># -*- coding: iso-8859-1 -*-</span><span class="pln" style="color: #cccccc;">
</span><span class="str" style="color: #00bb00;">"""
99 Bottles of Beer (by Gerold Penz)
Python can be simple, too :-)
"""</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">for</span><span class="pln" style="color: #cccccc;"> quant </span><span class="kwd" style="color: #0055ff;">in</span><span class="pln" style="color: #cccccc;"> range</span><span class="pun" style="color: #cccccc;">(</span><span class="lit" style="color: #cccc00;">99</span><span class="pun" style="color: #cccccc;">,</span><span class="pln" style="color: #cccccc;"> </span><span class="lit" style="color: #cccc00;">0</span><span class="pun" style="color: #cccccc;">,</span><span class="pln" style="color: #cccccc;"> </span><span class="pun" style="color: #cccccc;">-</span><span class="lit" style="color: #cccc00;">1</span><span class="pun" style="color: #cccccc;">):</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">if</span><span class="pln" style="color: #cccccc;"> quant </span><span class="pun" style="color: #cccccc;">></span><span class="pln" style="color: #cccccc;"> </span><span class="lit" style="color: #cccc00;">1</span><span class="pun" style="color: #cccccc;">:</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">print</span><span class="pln" style="color: #cccccc;"> quant</span><span class="pun" style="color: #cccccc;">,</span><span class="pln" style="color: #cccccc;"> </span><span class="str" style="color: #00bb00;">"bottles of beer on the wall,"</span><span class="pun" style="color: #cccccc;">,</span><span class="pln" style="color: #cccccc;"> quant</span><span class="pun" style="color: #cccccc;">,</span><span class="pln" style="color: #cccccc;"> </span><span class="str" style="color: #00bb00;">"bottles of beer."</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">if</span><span class="pln" style="color: #cccccc;"> quant </span><span class="pun" style="color: #cccccc;">></span><span class="pln" style="color: #cccccc;"> </span><span class="lit" style="color: #cccc00;">2</span><span class="pun" style="color: #cccccc;">:</span><span class="pln" style="color: #cccccc;">
suffix </span><span class="pun" style="color: #cccccc;">=</span><span class="pln" style="color: #cccccc;"> str</span><span class="pun" style="color: #cccccc;">(</span><span class="pln" style="color: #cccccc;">quant </span><span class="pun" style="color: #cccccc;">-</span><span class="pln" style="color: #cccccc;"> </span><span class="lit" style="color: #cccc00;">1</span><span class="pun" style="color: #cccccc;">)</span><span class="pln" style="color: #cccccc;"> </span><span class="pun" style="color: #cccccc;">+</span><span class="pln" style="color: #cccccc;"> </span><span class="str" style="color: #00bb00;">" bottles of beer on the wall."</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">else</span><span class="pun" style="color: #cccccc;">:</span><span class="pln" style="color: #cccccc;">
suffix </span><span class="pun" style="color: #cccccc;">=</span><span class="pln" style="color: #cccccc;"> </span><span class="str" style="color: #00bb00;">"1 bottle of beer on the wall."</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">elif</span><span class="pln" style="color: #cccccc;"> quant </span><span class="pun" style="color: #cccccc;">==</span><span class="pln" style="color: #cccccc;"> </span><span class="lit" style="color: #cccc00;">1</span><span class="pun" style="color: #cccccc;">:</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">print</span><span class="pln" style="color: #cccccc;"> </span><span class="str" style="color: #00bb00;">"1 bottle of beer on the wall, 1 bottle of beer."</span><span class="pln" style="color: #cccccc;">
suffix </span><span class="pun" style="color: #cccccc;">=</span><span class="pln" style="color: #cccccc;"> </span><span class="str" style="color: #00bb00;">"no more beer on the wall!"</span><span class="pln" style="color: #cccccc;">
</span><span class="kwd" style="color: #0055ff;">print</span><span class="pln" style="color: #cccccc;"> </span><span class="str" style="color: #00bb00;">"Take one down, pass it around,"</span><span class="pun" style="color: #cccccc;">,</span><span class="pln" style="color: #cccccc;"> suffix
</span><span class="kwd" style="color: #0055ff;">print</span><span class="pln" style="color: #cccccc;"> </span><span class="str" style="color: #00bb00;">"--"</span></pre></span></span></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><span style="font-family: Verdana, Arial;"></span></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><span style="font-size: 13px;">Perl:</span></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><span style="font-family: monospace;"><br />
<pre class="prettyprint" style="background-attachment: initial; background-clip: initial; background-color: #141414; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(39, 39, 39); border-bottom-left-radius: 4px 4px; border-bottom-right-radius: 4px 4px; border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(39, 39, 39); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(39, 39, 39); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(39, 39, 39); border-top-left-radius: 4px 4px; border-top-right-radius: 46px 46px; border-top-style: solid; border-top-width: 1px; font-size: 11px; line-height: 15px; margin-bottom: 0px; margin-left: 10px; margin-right: 0px; margin-top: 0px; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;"><span class="pln" style="color: #cccccc;"> </span><span class="str" style="color: #00bb00;">''</span><span class="pun" style="color: #cccccc;">=~(</span><span class="pln" style="color: #cccccc;"> </span><span class="str" style="color: #00bb00;">'(?{'</span><span class="pln" style="color: #cccccc;"> </span><span class="pun" style="color: #cccccc;">.(</span><span class="str" style="color: #00bb00;">'`'</span><span class="pln" style="color: #cccccc;"> </span><span class="pun" style="color: #cccccc;">|</span><span class="str" style="color: #00bb00;">'%'</span><span class="pun" style="color: #cccccc;">)</span><span class="pln" style="color: #cccccc;"> </span><span class="pun" style="color: #cccccc;">.(</span><span class="str" style="color: #00bb00;">'['</span><span class="pln" style="color: #cccccc;"> </span><span class="pun" style="color: #cccccc;">^</span><span class="str" style="color: #00bb00;">'-'</span><span class="pun" style="color: #cccccc;">)</span><span class="pln" style="color: #cccccc;">
</span><span class="pun" style="color: #cccccc;">.(</span><span class="str" style="color: #00bb00;">'`'</span><span class="pln" style="color: #cccccc;"> </span><span class="pun" style="color: #cccccc;">|</span><span class="str" style="color: #00bb00;">'!'</span><span class="pun" style="color: #cccccc;">)</span><span class="pln" style="color: #cccccc;"> </span><span class="pun" style="color: #cccccc;">.(</span><span class="str" style="color: #00bb00;">'`'</span><span class="pln" style="color: #cccccc;"> </span><span class="pun" style="color: #cccccc;">|</span><span class="str" style="color: #00bb00;">','</span><span class="pun" style="color: #cccccc;">)</span><span class="pln" style="color: #cccccc;"> </span><span class="pun" style="color: #cccccc;">.</span><span class="str" style="color: #00bb00;">'"'</span><span class="pun" style="color: #cccccc;">.</span><span class="pln" style="color: #cccccc;"> </span><span class="str" style="color: #00bb00;">'\\
.'</span><span class="pun" style="color: #cccccc;">==</span><span class="str" style="color: #00bb00;">' .('</span><span class="pun" style="color: #cccccc;">[</span><span class="str" style="color: #00bb00;">' ^'</span><span class="pun" style="color: #cccccc;">+</span><span class="str" style="color: #00bb00;">') .('`' |'/') .('['
^'+') .'||' .(';' &'=') .(';' &'=')
.';-' .'-'. '\\ .'=;' .('[' ^'(')
.('[' ^'.') .('`' |'"') .('!' ^'+')
.'_\\{' .'(\\ .';=('. '\\$=|' ."</span><span class="pun" style="color: #cccccc;">\|</span><span class="str" style="color: #00bb00;">".( '`'^'.'
).(('`')| '/').').' .'\\"'.+( '</span><span class="pun" style="color: #cccccc;">{</span><span class="str" style="color: #00bb00;">'^'</span><span class="pun" style="color: #cccccc;">[</span><span class="str" style="color: #00bb00;">'). ('`'|'"') .('`'|'</span><span class="pun" style="color: #cccccc;">/</span><span class="str" style="color: #00bb00;">'
).('</span><span class="pun" style="color: #cccccc;">[</span><span class="str" style="color: #00bb00;">'^'</span><span class="pun" style="color: #cccccc;">/</span><span class="str" style="color: #00bb00;">') .('</span><span class="pun" style="color: #cccccc;">[</span><span class="str" style="color: #00bb00;">'^'</span><span class="pun" style="color: #cccccc;">/</span><span class="str" style="color: #00bb00;">'). ('`'|',').( '`'|('</span><span class="pun" style="color: #cccccc;">%</span><span class="str" style="color: #00bb00;">')). '</span><span class="pun" style="color: #cccccc;">\\</span><span class="str" style="color: #00bb00;">".\\"'.( '</span><span class="pun" style="color: #cccccc;">[</span><span class="str" style="color: #00bb00;">'^('</span><span class="pun" style="color: #cccccc;">(</span><span class="str" style="color: #00bb00;">')).
'</span><span class="pun" style="color: #cccccc;">\\</span><span class="str" style="color: #00bb00;">"'.('['^ '#').'!!--' .'\\$=.\\"' .('</span><span class="pun" style="color: #cccccc;">{</span><span class="str" style="color: #00bb00;">'^'</span><span class="pun" style="color: #cccccc;">[</span><span class="str" style="color: #00bb00;">'). ('`'|'/').( '`'|"\&").(
'</span><span class="pun" style="color: #cccccc;">{</span><span class="str" style="color: #00bb00;">'^"\[").( '`'|"\"").( '`'|"\%").( '`'|"\%").( '['^(')')). '\\").\\"'.
('{'^'[').( '`'|"\/").( '`'|"\.").( '{'^"\[").( '['^"\/").( '`'|"\(").(
'`'|"\%").( '{'^"\[").( '['^"\,").( '`'|"\!").( '`'|"\,").( '`'|('</span><span class="pun" style="color: #cccccc;">,</span><span class="str" style="color: #00bb00;">')).
'</span><span class="pun" style="color: #cccccc;">\\</span><span class="str" style="color: #00bb00;">"\\}'.+( '['^"</span><span class="pun" style="color: #cccccc;">\+</span><span class="str" style="color: #00bb00;">").( '['^"</span><span class="pun" style="color: #cccccc;">\)</span><span class="str" style="color: #00bb00;">").( '`'|"</span><span class="pun" style="color: #cccccc;">\)</span><span class="str" style="color: #00bb00;">").( '`'|"</span><span class="pun" style="color: #cccccc;">\.</span><span class="str" style="color: #00bb00;">").( '['^('/')).
'+_,\\"</span><span class="pun" style="color: #cccccc;">,</span><span class="str" style="color: #00bb00;">'.( '</span><span class="pun" style="color: #cccccc;">{</span><span class="str" style="color: #00bb00;">'^('</span><span class="pun" style="color: #cccccc;">[</span><span class="str" style="color: #00bb00;">')). ('</span><span class="pun" style="color: #cccccc;">\\</span><span class="pln" style="color: #cccccc;">$</span><span class="pun" style="color: #cccccc;">;!</span><span class="str" style="color: #00bb00;">').( '</span><span class="pun" style="color: #cccccc;">!</span><span class="str" style="color: #00bb00;">'^"\+").( '</span><span class="pun" style="color: #cccccc;">{</span><span class="str" style="color: #00bb00;">'^"\/").( '`'|"\!").(
'`'|"\+").( '`'|"\%").( '{'^"\[").( '`'|"\/").( '`'|"\.").( '`'|"\%").(
'</span><span class="pun" style="color: #cccccc;">{</span><span class="str" style="color: #00bb00;">'^"\[").( '`'|"\;).( '`'|"\/").( '</span><span class="pun" style="color: #cccccc;">[</span><span class="str" style="color: #00bb00;">'^"\,").( '`'|('.')). ','.(('{')^
'[').("\["^ '+').("\`"| '!').("\["^ '(').("\["^ '(').("\{"^ '[').("\`"|
')').("\["^ '/').("\{"^ '[').("\`"| '!').("\["^ ')').("\`"| '/').("\["^
'.').("\`"| '.').("\`"| ')."\,".( '!'^('+')). '\\",_,\\"' .'!'.("\!"^
'+').("\!"^ '+').'\\"'. ('['^',').( '`'|"\(").( '`'|"\)").( '`'|"\,").(
'`'|('%')). '++\\$="})' );$:=('.')^ '~';$~='@'| '(';$^=')'^ '[';$/='`';</span></pre></span></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><span style="font-size: 21px;">12.BONUS-IDE do Pythona</span></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"> </span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">Każdy początkujący programista dochodzi w końcu do wniosku że zbyt dużo czasu poświęca na rzeczy mało związane z kodowaniem jak np. uruchamianie programów z lini poleceń czy pisanie make'a. Wtedy warto ściągnąć edytor który zawiera wszystko to czego potrzebuje programista oraz pomaga w pisaniu kodu.</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">IDE jakie polecam do Python'a:</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">Eclipse wraz z wtyczką PyDev(</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><a class="bbc_url" href="http://eclipse.org/" rel="nofollow external" style="color: inherit; outline-color: initial; outline-style: none; outline-width: initial;" title="Zewnętrzny odnośnik">link</a></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">,</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"> </span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><a class="bbc_url" href="http://pydev.org/" rel="nofollow external" style="color: inherit; outline-color: initial; outline-style: none; outline-width: initial;" title="Zewnętrzny odnośnik">PyDev</a></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">),</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">Editra z wtyczkami PyStudio, Launcher itd(</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><a class="bbc_url" href="http://editra.org/" rel="nofollow external" style="color: inherit; outline-color: initial; outline-style: none; outline-width: initial;" title="Zewnętrzny odnośnik">link</a></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">).,</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">VS 2010 (Od edycji Professional) PyTool's(</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><a class="bbc_url" href="http://pytools.codeplex.com/" rel="nofollow external" style="color: inherit; outline-color: initial; outline-style: none; outline-width: initial;" title="Zewnętrzny odnośnik">link</a></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">),</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">wbudowane w Pythona, nieskomplikowane IDLE.</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">Są to sprawdzone i przetestowane przeze mnie środowiska. Obecnie sam aktywnie korzystam z Eclipse</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"> </span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><img alt=";)" class="bbc_emoticon" src="http://coding-gods.org/public/style_emoticons/default/wink.gif" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; vertical-align: middle;" /></span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">.</span><br />
<span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif;"><span class="Apple-style-span" style="font-size: 21px; line-height: 19px;">Źródła</span></span><br />
<blockquote>www.pl.wikipedia.org<br />
http://www.python.rk.edu.pl/</blockquote><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; line-height: 19px;">Poradnik w trakcie pisania:)</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;">#EDIT-Poprawiłem resztę. Teraz pozwolę sobie wyczyścić temat z niepotrzebnych postów</span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"> </span><span class="Apple-style-span" style="color: #959595; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px;"><br />
</span><span class="bbc_center" style="color: #959595; display: block; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px; text-align: center;"><img alt="Dołączona grafika" class="bbc_img" src="http://i.creativecommons.org/l/by-nc-nd/3.0/88x31.png" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; vertical-align: middle;" /></span><span class="bbc_center" style="color: #959595; display: block; font-family: tahoma, arial, sans-serif; font-size: 13px; line-height: 19px; text-align: center;">Ten utwór jest dostępny na licencji Creative Commons Uznanie autorstwa-Użycie niekomercyjne-Bez utworów zależnych 3.0 Unported.</span>Assahttp://www.blogger.com/profile/10098467995716192485noreply@blogger.com0tag:blogger.com,1999:blog-2843887411382698695.post-6042354557380798042011-08-01T13:03:00.001-07:002011-08-01T13:11:45.152-07:00Przenosiny...Kolega adwi32 pokazał mi swojego bloga na Bloggerze. I zobaczyłem...<br />
Link do starego:<br />
<a href="http://blog-assa.w8w.pl/">assa-log.c</a>Assahttp://www.blogger.com/profile/10098467995716192485noreply@blogger.com1