| Autor |
Wiadomość |
TPJ #Moderator

Dołączył: 06 Kwi 2005 Posty: 484 Skąd: Gliwice Pomógł: 13
|
|
Wyjaśnienie.
Ten dokument NIE JEST tłumaczeniem FAQ ze strony
http://www.python.org/doc/faq/ , choć na podstawie tej strony jest tworzony.
Dokument ten jest w trakcie tworzenia i nie ma jeszcze odpowiedzi na wszystkie
pytania. Chcesz poznać odpowiedź na jakieś pytanie? Wyślij prywatną wiadomość
TPJ, moderatorowi tego działu (oraz osobie "utrzymującej" (*) to FAQ).
Pamiętaj jednak o tym, że TPJ stara się odpowiedzieć na bardzo wiele pytań i w
pierwszej kolejności wybiera te, które uznaje za najważniejsze. Jeśli TPJ
przygotuje odpowiedź na Twoje pytanie, może mu zabraknąć czasu na przygotowanie
odpowiedzi na inne pytanie.
Znalazłeś jakiś błąd albo masz jakieś uwagi dotyczące FAQ (może jakieś nowe
pytania)? Daj o tym znać autorowi, wysyłając mu prywatną wiadomość (jeśli
jesteś użytkownikiem tego forum), albo e-mail na adres tprimke@interia.pl.
Wiadomości nadaj tytuł "Python FAQ".
(*) "Utrzymujący" = (ang.) maintainer. TPJ będzie wdzięczny, jeśli ktoś
podpowie mu jakiś lepszy polski odpowiednik tego angielskiego słowa.
--------------------------
Zmiany
0.2
Dodany punkt 2 w części I.
--------------------------
Python FAQ
wersja 0.2, 17 kwietnia 2005
(c) 2005 by Tomasz "TPJ" Primke
Spis treści :
Część I : Pytania ogólne
1. Informacje ogólne
1.1. Co to jest Python?
1.2. Dlaczego powstał Python?
1.3. Do czego nadaje się Python?
1.4. Jaki jest schemat numeracji wersji Pythona?
1.5. Czy są jakieś ograniczenia licencyjne w używaniu Pythona?
1.6. Gdzie można zdobyć kopię źródeł Pythona?
1.7. Gdzie można zdobyć dokumentację do Pythona?
1.8. Nigdy wcześniej nie programowałem. Czy jest jakiś samouczek dla Pythona?
1.9. Czy są jakieś lustrzane serwery FTP, z których można pobrać Pythona?
1.10. Czy są jakieś newsgrupy lub listy mailingowe poświęcone Pythonowi?
1.11. Jak można zdobyć testową wersję beta Pythona?
1.12. Jak można zgłaszać błędy wykryte w Pythonie lub przesłać łatkę?
1.13. Czy są jakieś opublikowane artykuły dotyczące Pythona?
1.14. Czy są jakieś książki o Pythonie?
1.15. Gdzie w świecie znajduje się serwer www.python.org ?
1.16. Dlaczego Python nazywa się właśnie Python?
1.17. Czy muszę być miłośnikiem "Latającego cyrku Monty Pythona"?
2. Python w prawdziwym świecie
2.1. Na ile stabilny jest Python?
2.2. Ilu ludzi używa Pythona?
2.3. Czy są jakieś ważne projekty, które zostały zrobione w Pythonie?
2.4. Czego można się spodziewać po przyszłych wersjach Pythona?
2.5. Czy jest sens proponować zmiany w Pythonie, które nie będą kompatybilne z
dotychczasowymi cechami tego języka?
2.6. Co to jest Python Software Foundation?
2.7. Czy Python jest zabezpieczony przed problemem Y2K?
2.8. Czy Python jest dobrym językiem dla początkujących programistów?
-----------------------------------------------------------------------------
1. Informacje ogólne
1.1. Co to jest Python?
Python jest interpretowanym, interaktywnym, obiektowym językiem programowania.
Wśród jego cech są moduły, wyjątki, dynamiczna typizacja, typy danych bardzo
wysokiego poziomu oraz klasy. Python łączy w sobie dużą moc z bardzo czytelną
składnią. Posiada interfejsy do wielu wywołań systemowych i bibliotek, jak
również do różnych systemów okienkowych, istnieje również możliwość pisania
rozszerzeń w C lub C++. Nadaje się również jako język skryptowy dla aplikacji,
które potrzebują programowalnych interfejsów. Na koniec - Python jest
przenośny: działa na wielu odmianach Uniksa, na Macu i na PC pod MS-DOSem,
Windows, Windows NT oraz OS/2.
1.2. Dlaczego powstał Python?
1.3. Do czego nadaje się Python?
Python jest wysokopoziomowym językiem programowania ogólnego przeznaczenia,
który może zostać zastosowany do wielu różnych klas problemów.
Język posiada bardzo dużą bibliotekę standardową, która obejmuje dziedziny
takie, jak przetwarzanie łańcuchów (wyrażenia regularne, Unicode, wyznaczanie
różnic pomiędzy plikami), protokoły internetowe (HTTP, FTP, SMTP, XML-RPC,
POP, IMAP, programowanie CGI), inżynierię oprogramowania (pisanie testów,
logowanie, profilowanie, parsowanie kodu Pythona) czy interfejsy systemu
operacyjnego (wywołania systemowe, systemy plików, gniazda TCP/IP). Warto jest
przyjrzeć się spisowi treści w "Podręczniku programisty Pythona - opisowi
języka" (ang. Python Library Reference), żeby się zorientować, co jest
dostępne.
1.4. Jaki jest schemat numeracji wersji Pythona?
Wersje Pythona są oznaczane przez A.B.C lub A.B. A jest głównym numerem
wersji, który zwiększa się tylko w przypadku naprawdę znaczących zmian w
języku. B jest dodatkowym numerem wersji, zwiększającym się przy zmianach
wywołujących znacznie słabsze trzęsienia ziemii. C jest mikropoziomem i
zwiększa się w każdej kolejnej wersji poprawiającej wykryte błędy,
posiadającej status "bugfix".
Nie wszystkie wersje Pythona posiadają status "bugfix" (czyli poprawiających
błędy). W trakcie prac nad nową główną wersją ukazuje się seria wersji
rozwojowych, oznaczanych jako alpha, beta czy release candidate(*). Wersje
alpha są wersjami wczesnymi, w których interfejs nie jest jeszcze ustalony;
zmiany interfejsu pomiędzy dwoma różnymi wersjami alpha nie są niczym
niespodziewanym. Wersje beta są bardziej stabilne, zachowującymi istniejące
interfejsy, lecz mogącymi dodawać nowe moduły. Wersje release candidate są
wersjami "zamrożonymi", nie wprowadzającymi żadnych zmian poza poprawkami
krytycznych błędów.
Wersje alpha, beta oraz release candidate posiadają dodatkowy przyrostek.
Przyrostek dla wersji alfa to "aN", gdzie N jest jakąś małą liczbą. Przyrostki
dla wersji beta mają postać "bN", gdzie N jest jakąś małą liczbą. Przyrostki
dla wersji release candidate mają postać "cN", gdzie N jest jakąś małą liczbą.
Innymi słowy wszystkie wersje oznaczone 2.0aN poprzedzają wersje oznaczone
2.0bN, które poprzedzają wersje oznaczone 2.0cN, te zaś poprzedzają wersję
2.0.
Można również spotkać numery wersji z przyrostkiem "+", np. "2.2+". Są to
niewydane wersje, zbudowane bezpośrednio z repozytoriów CVS. W praktyce po
wydaniu ostatecznej wersji (final), wersja w repozytorium CVS jest zwiększana
do kolejnej wersji dodatkowej, która staje się wersją "a0", np. "2.4a0".
Dodatkowe informacje można znaleźć w dokumentacji dla sys.version,
sys.hexversion i sys.version_info.
(*) Release candidate (ang.) - "kandydat" na oficjalną wersję (w wolnym
tłumaczeniu). Wersja wydawana w momencie, kiedy prace zostały już właściwie
zakończone i przed wydaniem ostatecznej wersji oprogramowania będą
przeprowadzane jeszcze ostatnie testy, mające wykryć pozostałe błędy, które
będzie można poprawić przed wydaniem wersji ostatecznej (final). W przypadku
Pythona okres czasu pomiędzy ukazaniem się wersji release candidate a wersji
final jest krótki i trwa zazwyczaj od tygodnia do dwóch tygodni.
1.5. Czy są jakieś ograniczenia licencyjne w używaniu Pythona?
Nie ma. Z kodem źródłowym można zrobić co się tylko zechce, pod warunkiem
zachowania notki licencyjnej i pokazania tej notki w każdym sporządzonym
dokumencie dotyczącym Pythona. Jeśli przestrzega się zasad licencji można
używać Pythona w celach komercyjnych, sprzedawać kopie Pythona w postaci
źródłowej lub binarnej (zmodyfikowane lub niezmodyfikowane), jak również
sprzedawać produkty, które w jakiejś części zawierają Pythona. Naturalnie
twórcy Pythona chcieliby wiedzieć o wszystkich komercyjnych jego
zastosowaniach.
Dalsze informacje oraz wyjaśnienia można znaleźć w licencji PSF.
1.6. Gdzie można zdobyć kopię źródeł Pythona?
Najnowsze źródła Pythona są zawsze dostępne na stronie głównej Pythona, pod
adresem http://www.python.org/download/. Najnowszą wersję rozwojową źródeł
można uzyskać poprzez anonimowy CVS z SourceForge, pod adresem
http://www.sourceforge.net/projects/python .
Źródła są spakowanym archiwum tar.gz, zawierającym kompletny kod źródłowy w C,
dokumentację w LaTeKsie, moduły standardowej biblioteki Pythona, programy
przykładowe i trochę przydatnego oprogramowania, dostępnego za darmo. Wszystko
to daje się bez problemów skompilować i uruchomić na większości platform
Uniksowych.
Starsze wersje Pythona dostępne są również na stronie głównej Pythona.
1.7. Gdzie można zdobyć dokumentację do Pythona?
Cała dokumentacja jest dostępna on-line, pod adresem
http://www.python.org/doc/. Polska wersja dokumentacji Pythona (niekoniecznie
dla najnowszej wersji Pythona) jest dostępna pod adresem
http://www.python.org.pl/doc/.
Standardowa dokumentacja dla aktualnej stabilnej wersji Pythona jest również
dostępna pod adresem http://docs.python.org/.
Źródła dokumentacji w formacie LaTeX są częścią źródeł Pythona. Jeśli nie ma
się LaTeKsa, dokumentacja dla najnowszej wersji Pythona w różnych formatach
(jak PostScript czy HTML) jest dostępna poprzez anonimowy FTP.
1.8. Nigdy wcześniej nie programowałem. Czy jest jakiś samouczek dla Pythona?
Dostępnych jest wiele samouczków oraz książek (*). Więcej informacji można
znaleźć w Przewodniku Programisty Pythona (na stronie www.python.org.pl ).
(*) Głównie w języku angielskim, chociaż można znaleźć też trochę informacji
po polsku.
1.9. Czy są jakieś lustrzane serwery FTP, z których można pobrać Pythona?
1.10. Czy są jakieś newsgrupy lub listy mailingowe poświęcone Pythonowi?
1.11. Jak można zdobyć testową wersję beta Pythona?
1.12. Jak można zgłaszać błędy wykryte w Pythonie lub przesłać łatkę?
1.13. Czy są jakieś opublikowane artykuły dotyczące Pythona?
1.14. Czy są jakieś książki o Pythonie?
Tak, jest wiele książek, a kolejne są ciągle wydawane. Listę książek można
znaleźć pod adresem http://www.python.org/moin/PythonBooks . [Dodać polskie
adresy. Chyba są jakieś... ?]
Można również poszukać w księgarniach internetowych pod hasłem "Python", z
wyłączeniem odniesień do Monty Pythona, albo poszukać hasła "Python" i
"programowanie".
1.15. Gdzie w świecie znajduje się serwer www.python.org ?
1.16. Dlaczego Python nazywa się właśnie Python?
Kiedy Guido van Rosuum zaczynał implementować Pythona, czytał właśnie
opublikowane scenariusze z "Latającego cyrku Monty Pythona" (serialu
komediowego BBC z lat siedemdziesiątych, gdyby ktoś nie wiedział /są
tacy???/). Tak się akurat złożyło, że GvR potrzebował krótkiej, unikalnej i
cokolwiek tajemniczej nazwy, więc zdecydował się nadać swemu językowi nazwę
Python.
1.17. Czy muszę być miłośnikiem "Latającego cyrku Monty Pythona"?
2. Python w prawdziwym świecie
2.1. Na ile stabilny jest Python?
Python jest bardzo stabilny. Nowe, stabilne wersje ukazywały się co 6 do 18
miesięcy od 1991 i ten trend wciąż się utrzymuje. Obecnie pomiędzy ukazaniem
się dwóch kolejnych głównych wersji Pythona mija zazwyczaj około 18 miesięcy.
Wraz z wprowadzaniem kolejnych wydań "bugfix" (dosł. poprawiających błędy)
stabilność istniejących wersji poprawia się. Wersje bugfix, oznaczane przez
trzeci składnik numeru wersji (np. 2.1.3, 2.2.2), są nastawione na stabilność;
tylko zmiany poprawiające znane błędy są wprowadzane do takich wersji, zaś
interfejs pozostaje taki sam w całej serii wersji bugfix.
W chwili obecnej najbardziej stabilną wersją Pythona jest 2.3.3.
Najnowszą wersją Pythona jest wersja 2.4.1. W oryginalnym dokumencie, na
podstawie którego były opracowywane te FAQ, z dn. 07.03.2005 wersja 2.3.3 była
wymieniona jako najbardziej stabilna. Autor tego FAQ pracuje jednakże na
wersji 2.4.0 (i to z tego powodu, że dopiero dwa dni przed napisaniem tego
tekstu skompilował sobie wersję 2.4.1) i nie stwierdził żadnych problemów ze
stabilnością. Poza tym - istnieje również wersja 2.3.4 Pythona, która zawiera
poprawki dla znanych błędów z wersji 2.3.3 - więc wymienianie wersji 2.3.3
jako najbardziej stabilnej wydaje się po prostu wynikać z faktu, iż źródłowy
dokument nie został odpowiednio zaktualizowany.
2.2. Ilu ludzi używa Pythona?
Prawdopodobnie dziesiątki tysięcy użytkowników, jakkolwiek trudno o dokładną
liczbę. Pythona można ściągnąć z sieci za darmo (nie ma żadnych danych
dotyczących sprzedaży), jest on również dostępny pod wieloma różnymi adresami
i wchodzi w skład wielu dystrybucji Linuksa, więc statystyki ściągnięć z sieci
nie dają pełnego obrazu sytuacji. Grupa newsgroup comp.lang.python jest bardzo
aktywna, lecz nie wszyscy użytkownicy Pythona piszą posty na tę grupę - i nie
wszyscy tę grupę muszą czytać. Reasumując dokładna liczba użytkowników
Pythona nie jest znana.
2.3. Czy są jakieś ważne projekty, które zostały zrobione w Pythonie?
Pod adresem http://www.pythonology.org/success można znaleźć listę projektów,
które używają Pythona (po angielsku). W materiałach z konferencji dotyczących
Pythona, które odbyły się w przeszłości, można znaleźć wzmianki z wielu
różnych firm i organizacji.
Dobrze znanymi projektami używającymi Pythona są menadżer list mailingowych
Mailman oraz serwer aplikacji Zope. Część oprogramowania odpowiedzialnego za
instalację i administrację systemu w kilku dystrybucjach Linuksa, w tym w
dobrze znanym RedHacie (oraz dystrybucjach pochodnych), jest napisana w
Pythonie. Do firmy, które używają Pythona, można zaliczyć Google, Yahoo oraz
Industrial Light & Magic.
2.4. Czego można się spodziewać po przyszłych wersjach Pythona?
Pod adresem http://www.python.org/peps można znaleźć informacje dotyczące
Propozycji Wzmocnienia Pythona (PEPów, ang. Python Enhancement Proposals).
PEPy są dokumentami opisującymi sugestie dotyczące nowych cech i właściwości
dla Pythona, zawierającymi zwięzłą specyfikację techniczną oraz uzasadnienie.
PEP 1 zawiera wyjaśnienia dotyczące procesu oraz formatu PEP; należy go
przeczytać zanim zdecyduje się zgłosić jakiś PEP.
Dyskusje dotyczące najnowszych udoskonaleń toczą się na liście mailingowej
python-dev.
2.5. Czy jest sens proponować zmiany w Pythonie, które nie będą kompatybilne z
dotychczasowymi cechami tego języka?
2.6. Co to jest Python Software Foundation?
2.7. Czy Python jest zabezpieczony przed problemem Y2K?
2.8. Czy Python jest dobrym językiem dla początkujących programistów?
Tak. Jeśli chce się podyskutować o zastosowaniu Pythona w edukacji, można się
zainteresować dołączeniem do listy mailingowej edu-sig.
W procesie edukacji wciąż powszechnie stosuje się podejście z proceduralnymi
językami o statycznych typach, takimi jak Pascal, C, czy jakimiś odmianami C++
lub Javy. Początkującym byłoby jednak lepiej zaczynać od Pythona. Python
cechuje się bardzo prostą, logiczną składnią, posiada dużą bibliotekę
standardową, oraz - co najważniejsze - pozwala początkującym skupić się na
ważnych umiejętnościach z zakresu programowania, takich jak problem
dekompozycji czy projektowania typów danych. Ucząc się Pythona można szybko
zaznajomić się z podstawowymi koncepcjami takimi jak pętle czy procedury.
Prawdopodobnie można nawet pracować z obiektami zdefiniowanymi przez
użytkownika w trakcie pierwszych zajęć.
Dla kogoś, kto nigdy wcześniej nie programował, używanie języka ze statycznymi
typami może się wydawać nienaturalne. Stanowi to dodatkowe utrudnienie, które
trzeba opanować, i spowalnia proces nauki. Uczący się starają się nauczyć
myśleć jak komputer, analizować problemy, projektować zwarte interfejsy i
dokonywać enkapsulacji danych. O ile nauka używania języka ze statycznymi
typami danych jest ważna na dłuższą metę, nie jest ona najlepszym tematem na
pierwsze zajęcia z programowania.
Wiele innych aspektów Pythona sprawia, że dobrze nadaje się on na pierwszy
język programowania. Podobnie jak Java, Python posiada obszerną standardową
bibliotekę, więc już na samym początku nauki można się zabrać za projekty,
które coś robią. Nie trzeba ograniczać się do zadań tworzenia kalkulatora z
czeterema podstawowymi działaniami. Korzystając z biblioteki standardowej
można czerpać satysfakcję z pracy nad prawdziwymi aplikacjami, zaznajamiając
się równocześnie z podstawami programowania. Używanie biblioteki standardowej
uczy dodatkowo ponownego wykorzystywania istniejącego kodu. Moduły nie będące
częścią biblioteki standardowej, takie jak PyGame, PyGTK czy wxPython, również
są pomocne, gdyż zwiększają możliwości początkujących programistów.
Interaktywny tryb pracy interpretera Pythona umożliwia testowanie cech języka
podczas programowania. Można mieć otwarte jedno okno z działającym
interpreterem i drugie z kodem programu. Jeśli nie pamięta się metod listy,
zawsze można zrobić coś takiego :
| Kod: |
>>> L = []
>>> dir(L)
['append', 'count', 'extend', 'index', 'insert', 'pop', 'remove',
'reverse', 'sort']
>>> help(L.append)
Help on built-in function append:
append(...)
L.append(object) -- append object to end
>>> L.append(1)
>>> L
[1]
|
Z interpreterem pod ręką dokumentacja nigdy nie jest zbyt daleko, kiedy pisze
się program.
Istnieją również dobre IDE (*) dla Pythona. IDLE jest międzyplatformowym IDE,
które jest pisane w Pythonie przy pomocy Tkinter. PythonWin jest IDE
działającym pod Windows. Użytkownicy Emacsa zapewne z radością przyjmą fakt,
że pod Emacsem dostępny jest specjalny tryb pracy dla Pythona. Te wszystkie
narzędzia zapewniają podkreślanie składni, automatyczne tworzenie wcięć oraz
dostęp do interaktywnego trybu pracy interpretera podczas tworzenia kodu.
Pełna lista środowisk, w którym można pracować nad programami w Pythonie,
dostępna jest pod adresem http://www.python.org/editors/ (tylko po angielsku).
(*) IDE - (ang.) Integrated Development Environment, czyli zintegrowane
środowisko pracy programisty (w wolnym tłumaczeniu). Zazwyczaj jest to cały
pakiet różnych programów (takich jak edytor kodu źródłowego,
kompilator/interpreter, debugger, edytor zasobów czy program do zarządzania
dużymi projektami) ułatwiających programiście pracę nad programem.
|
|
| Powrót do góry |
|
|
|
|
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach
|
MapaPowered by phpBB © 2001, 2005 phpBB Group
|
|