Python to wielozadaniowy, wielozadaniowy język programowania dynamicznie typowany. Został zaprojektowany tak, aby był szybki do nauczenia się, zrozumienia i użycia oraz wymuszania czystej i jednolitej składni. Należy pamiętać, że Python 2 oficjalnie nie jest obsługiwany od 01-01-2020. Mimo to, w przypadku pytań Pythona specyficznych dla wersji, dodaj znacznik [python-2.7] lub [python-3.x]. Korzystając z wariantu Pythona (np. Jython, PyPy) lub biblioteki (np. Pandas i NumPy), należy umieścić go w tagach.

Pythonto interpretowany, interaktywny, zorientowany obiektowo (przy użyciu classes), dynamiczny i silnie wpisywanyjęzyk programowania używany w szerokiej gamie aplikacji. Zawiera moduły, wyjątki, dynamiczne typowanie, dynamiczne typy danych bardzo wysokiego poziomu i klasy. Python łączy w sobie niezwykłą moc z bardzo przejrzystą składnią. Ma interfejsy do wielu wywołań systemowych i bibliotek, a także do różnych systemów okiennych i jest rozszerzalny w club c++. Może być również używany jako język rozszerzeń aplikacji, które wymagają programowalnego interfejsu. Wreszcie, Python jest przenośny: działa na wielu wariantach Uniksa, na komputerach Mac oraz w systemie Windows 2000 i nowszych.

Język jest dostarczany z dużą standardową biblioteką, która obejmuje takie obszary, jak przetwarzanie ciągów (wyrażenia regularne, Unicode, obliczanie różnic między plikami), protokoły internetowe (HTTP, FTP, SMTP, XML-RPC, POP, IMAP i programowanie CGI), oprogramowanie inżynieria (testowanie jednostkowe, rejestrowanie, profilowanie i analizowanie kodu Pythona) oraz interfejsy systemu operacyjnego (wywołania systemowe, systemy plików i gniazda TCP / IP). Przejrzyj spis treści Python Standard Library, aby zorientować się, co jest dostępne. Dostępnych jest również wiele rozszerzeń innych firm. Zapoznaj się z indeksem pakietów Pythona, aby znaleźć interesujące Cię pakiety.

Python umożliwia programistom wyrażanie pojęć w mniejszej liczbie wierszy kodu, niż byłoby to możliwe w wielu innych językach, takich jak C, a język ma konstrukcje przeznaczone do tworzenia przejrzystych programów w różnych dziedzinach.

Przykład:

Program w Pythonie

print("Hello, Stack Overflow!")

Przeciw

Program C.

#include <stdio.h>
int main(void) {
    printf("Hello, Stack Overflow!");
    return 0;
}

Python został pierwotnie stworzony przez Guido van Rossum, a po raz pierwszy wydany w 1991 roku. Guido Van Rossum wybrał Pythona jako tytuł roboczy dla projektu , będąc w nieco lekceważącym nastroju (i wielkim fanem Latającego Cyrku Monty Pythona).

Python 2 (16 października 2000 - 1 stycznia 2020) został oficjalnie wyłączony, a Python 3 (3 Grudzień 2008) jest jedyną obsługiwaną, utrzymywaną i ulepszoną wersją główną na dzień 1 stycznia 2020 r. Mamy społeczność ludzi z obu światów i jeśli masz pytanie dotyczące konkretnej wersji, rozważ wspomnienie o wersji i implementacji, która używasz, zadając pytanie o Python (zobacz sekcję Zalecenia dotyczące tagowania poniżej).

Python obsługuje wiele paradygmatów programowania, w tym style programowania obiektowego, imperatywnego i funkcjonalnego. Posiada w pełni dynamiczny system typów i automatyczne zarządzanie pamięcią, podobnie jak w Scheme, Ruby, Perl i Tcl.

Podobnie jak inne języki dynamiczne, Python jest często używany jako scripting, ale jest również używany w wielu kontekstach nieobsługujących skryptów. Korzystając z narzędzi innych firm, kod Pythona można spakować do samodzielnych programów wykonywalnych. Interpretery Pythona są dostępne dla wielu systemów operacyjnych.

CPython, referencyjna implementacja Pythona, jest darmowym oprogramowaniem o otwartym kodzie źródłowym. Ma model rozwoju oparty na społeczności, podobnie jak prawie wszystkie jego alternatywne implementacje. Istnieje wiele różnych implementacji bardziej dostosowanych do określonych środowisk lub zadań (zobacz Implementacje Pythonana wiki Pythona).

Filozofia Pythona jest zwięźle sformułowana w The Zen of Python, napisanym przez Tima Petersa, w którym można przeczytać wydając to polecenie w interaktywnym interpreterze Pythona:

>>> import this

W przeciwieństwie do wielu innych języków, Python używa składni opartej na wcięciach (w której tabulatory i spacje są niezamienne). Może to zająć trochę czasu dla programistów, którzy są zaznajomieni z używaniem nawiasów klamrowych.

>>> from __future__ import braces
  File "<stdin>", line 1
SyntaxError: not a chance
>>>

Aby ułatwić przejście, zaleca się użycie odpowiednio skonfigurowanego edytora tekstu lub środowiska IDE. Python jest dostarczany z podstawowym środowiskiem IDE o nazwie IDLE(python-idle), aby zacząć. Inne popularne przykłady to oprogramowanie charytatywne Vim, darmowy GNU Emacs, Eclipse + PyDev lub PyCharm. Spójrz na tę listę porównawczą IDE, aby znaleźć wiele innych alternatyw.

Istnieje również przewodnik po stylu dla Pythona, nazwany PEP 8, który ma na celu uczynienie kodu Pythona bardziej czytelnym i spójne. Ten przewodnik jest (powinien być) przestrzegany w całej społeczności programistów Pythona.


Zalecenie dotyczące tagowania:

Użyj tagu pythonw przypadku wszystkich pytań związanych z Pythonem. Jeśli uważasz, że Twoje pytanie dotyczy problemów specyficznych dla poszczególnych wersji, użyj python-3.xlub python-2.7, oprócz głównego tagu python. Jeśli uważasz, że Twoje pytanie może być jeszcze bardziej szczegółowe, możesz dołączyć tag specyficzny dla wersji, taki jak python-3.5lub python-3.6itp.

Rozważ także dołączenie tagu dla konkretnej implementacji (jython, pypyitd.), Jeśli używasz innego niż cpython- zakłada się użycie cpython, chyba że wyraźnie zaznaczono inaczej.


FAQ:

Są to niektóre z powszechnych pytań wielu początkujących i mogą służyć jako Canoniczne duplikaty cele:

Wprowadzane przez użytkownika:

Testowanie wartości:

Powszechne błędy:

Radzenie sobie z listami:

Radzenie sobie z dyktami:

Generał:


Bibliografia:


Instalacja pakietów zewnętrznych:

  • Pippip

    Większość bibliotek Pythona używanych do prostych i zaawansowanych skryptów jest pobieranych za pomocą pip, Python Package Installer, który pozwala zainstalować i zarządzać dodatkowymi pakietami, które nie są częścią standardowej biblioteki Python.Większość dystrybucji Pythona jest dostarczanych z preinstalowanym pip . Ogólna składnia:

$ pip install SomePackage
[...]
Successfully installed SomePackage
  • easy_install easy-install

    easy_install został wydany w 2004 roku jako część setuptools. W tamtym czasie było to godne uwagi ze względu na instalowanie pakietów z PyPI przy użyciu specyfikatorów wymagań i automatyczne instalowanie zależności. Łatwa instalacja jest przestarzała. Nie używaj tego. Zamiast tego użyj pip.


Popularne biblioteki ogólnego użytku Pythona:

  • Prośbyrequests

    Prosta biblioteka Pythona do wykonywania żądań HTTP. Żądania są reklamowane jako „Dla ludzi”. Biblioteka ma na celu uproszczenie i uniwersalizację wielu metod Pythona do tworzenia żądań HTTP w sposób czytelny i łatwy w użyciu. Funkcjonalności, takie jak utrzymywanie aktywności i buforowanie połączeń, są obsługiwane automatycznie, aby zapewnić najwyższą prostotę.

  • Poduszkapython-imaging-library

    Pillow jest opisywana jako „przyjazny rozwidlenie” modułu Python PIL, nieużywanej, ale użytecznej biblioteki do tworzenia obrazów. Biblioteka używa C API, aby zapewnić łatwy interfejs Pythona do modyfikowania i manipulowania plikami obrazów na wiele różnych sposobów.

  • Scrapyscrapy

    Scrapy to szybka, wysokopoziomowa platforma do indeksowania i skrobania stron internetowych używana do indeksowania witryn internetowych i wyodrębniania ustrukturyzowanych danych z ich stron. Może być używany do wielu celów, od eksploracji danych po monitorowanie i automatyczne testowanie.

  • Piękna zupabeautifulsoupbs4

    Beautiful Soup to pakiet Pythona do analizowania dokumentów HTML i XML. Tworzy drzewo parsowania dla przeanalizowanych stron, które można wykorzystać do wyodrębnienia danych z HTML, co jest przydatne do skrobania sieci. Jest dostępny dla Pythona 2.7 i Pythona 3.

  • nltknltk

    Natural Language Toolkit lub NLTK to platforma do tworzenia aplikacji Python do pracy z danymi języka ludzkiego i przetwarzania zdań. Zapewnia łatwe w użyciu interfejsy do ponad 50 korpusów i zasobów leksykalnych, takich jak WordNet, wraz z zestawem bibliotek przetwarzania tekstu do klasyfikacji, tokenizacji, wyprowadzania, znakowania, analizowania i rozumowania semantycznego oraz zapewnia opakowania dla NLP o sile przemysłowej biblioteki.


Popularne frameworki internetoweoparte na Pythonie:

Jeśli Twoje pytanie ma coś wspólnego z którymkolwiek z tych frameworków, upewnij się, że dołączyłeś odpowiedni tag.

  • Djangodjango

    Platforma internetowa dla perfekcjonistów (z terminami). Django ułatwia szybsze tworzenie lepszych aplikacji internetowych przy użyciu mniejszej ilości kodu. Django to wysokopoziomowa platforma internetowa w języku Python, która zachęca do szybkiego tworzenia i czystego, pragmatycznego projektowania. Pozwala szybko tworzyć wydajne, eleganckie aplikacje internetowe. Django koncentruje się na jak największej automatyzacji i przestrzeganiu zasady DRY (Don't Repeat Yourself).

  • Flaskflask

    Flask to lekki mikro-framework i biblioteka innej firmy dla Pythona, oparta na Werkzeug, Jinja 2 i dobrych intencjach. Zapewnia monolityczną strukturę i nie wymusza zależności, co pozwala na lepszą kontrolę i większą swobodę programowania.

  • Kwartaquart

    Kwartał jest ewolucją interfejsu Flask API do pracy z Asyncio i zapewnienia szeregu funkcji, których Flask nie może używać.

  • Tornadotornado

    Tornado to platforma internetowa w języku Python i asynchroniczna biblioteka sieciowa. Korzystając z nieblokujących sieci we / wy, Tornado może skalować się do dziesiątek tysięcy otwartych połączeń, co czyni go idealnym do długiego odpytywania, WebSockets i innych aplikacji, które wymagają długotrwałego połączenia z każdym użytkownikiem.

  • CherryPycherrypy

    CherryPy to Pythonowa, zorientowana obiektowo platforma internetowa, która umożliwia programistom tworzenie aplikacji internetowych w taki sam sposób, jak każdy inny program zorientowany obiektowo w Pythonie. Skutkuje to mniejszą ilością kodu źródłowego, który jest tworzony w krótszym czasie. CherryPy jest używany od ponad 17 lat i jest używany do produkcji w wielu zakładach, od najprostszych do najbardziej wymagających.

  • Piramidapyramid

    Lekki framework sieciowy kładący nacisk na elastyczność i szybki rozwój. Łączy w sobie najlepsze pomysły ze światów Ruby, Python i Perl, dostarczając ustrukturyzowaną, ale niezwykle elastyczną strukturę sieciową Python. Jest to również jeden z pierwszych projektów, który wykorzystuje powstający standard WSGI, który umożliwia szerokie ponowne wykorzystanie i elastyczność, ale tylko wtedy, gdy jest to potrzebne.

  • TurboGearsturbogears

    TurboGears to skalowalna platforma internetowa, która może przejść od konfiguracji w trybie minimalnym do aplikacji internetowej z pełnym stosem. Został stworzony w 2005 roku przez Kevina Dangoora, a obecnym rozwojem TurboGears2 (turbogears2) kieruje Mark Ramm. Aktualną stabilną wersją TurboGears jest TurboGears 2.4.1, wydana 3 września 2019 roku

  • web.pyweb.py

    web.py to framework sieciowy dla Pythona, który jest tak prosty, jak potężny. Witryna web.py należy do domeny publicznej: możesz jej używać w dowolnym celu bez żadnych ograniczeń. web.py umożliwia pisanie aplikacji internetowych w Pythonie.

  • Grokgrok

    Zbudowany w oparciu o istniejące biblioteki Zope 3, ale ma na celu zapewnienie łatwiejszej krzywej uczenia się i bardziej zwinnego środowiska programistycznego. Grok robi to, kładąc nacisk na konwencję zamiast konfiguracji i DRY (Don't Repeat Yourself).

  • Butelkabottle

    Butelka jest szybką, prostą i lekką mikro-frameworkiem WWW WSGI dla Pythona. Jest dystrybuowany jako pojedynczy moduł plików i nie ma żadnych zależności innych niż biblioteka standardowa języka Python.

  • web2pyweb2py

    Platforma web2py to bezpłatna platforma typu open source z pełnym stosem do szybkiego tworzenia szybkich, skalowalnych, bezpiecznych i przenośnych aplikacji internetowych opartych na bazach danych.

  • Falconfalconframework

    Falcon to minimalna platforma internetowa Python do tworzenia mikrousług, backendów aplikacji i struktur wyższego poziomu, która zachęca do stylu architektonicznego REST. Ma wersje społecznościowe i komercyjne.

  • Skręconytwisted

    Twisted to silnik sieciowy oparty na zdarzeniach typu open source. Jest przydatny do wdrażania zarówno klientów, jak i serwerów i skaluje się do dużych witryn internetowych i do urządzeń wbudowanych. Twisted ułatwia wdrażanie niestandardowych aplikacji sieciowych.


Popularne struktury GUI w języku Python oparte na języku Python

  • Kivykivy

    Kivy to przyspieszona platforma OpenGL ES 2 do tworzenia nowych interfejsów użytkownika. Obsługuje wiele platform, a mianowicie Windows, Mac OS X, Linux, Android iOS i Raspberry Pi. Jest open source i zawiera ponad 20 widżetów w swoim zestawie narzędzi. Dodatkowe obiekty materialne są dostępne na stronie KivyMD.

  • PyQTpyqt

    PyQT to jedno z ulubionych powiązań międzyplatformowych Pythona implementujących bibliotekę Qt dla platformy programistycznej Qt (należącej do firmy Nokia). Obecnie PyQT jest dostępne dla systemów Unix / Linux, Windows, Mac OS X i Sharp Zaurus. Łączy w sobie to, co najlepsze w Pythonie i Qt, i to do programisty należy decyzja, czy utworzyć program za pomocą kodu, czy też użyć Qt Designer do tworzenia wizualnych okien dialogowych.

    Jest dostępny zarówno na licencji komercyjnej, jak i GPL. Chociaż niektóre funkcje mogą nie być dostępne w bezpłatnej wersji, jeśli Twoja aplikacja jest open source, możesz z niej korzystać na wolnej licencji.

    Najnowsza wersja PyQt to v5

  • Tkintertkinter

    Tkinter jest zwykle dołączany do Pythona przy użyciu Tk i jest standardową strukturą GUI Pythona. Jest popularny ze względu na prostotę i graficzny interfejs użytkownika. Jest open source i jest dostępny na licencji Python. Jedną z zalet wyboru Tkintera jest to, że ponieważ jest on dostępny domyślnie, istnieje mnóstwo zasobów, zarówno kodów, jak i podręczników. Ponieważ społeczność jest stara i aktywna, jest wielu użytkowników, którzy mogą Ci pomóc w przypadku pytań.

  • PyGUIpygui

    PyGUI jest graficzną aplikacją wieloplatformową dla systemów Unix, Macintosh i Windows. W porównaniu z niektórymi innymi frameworkami GUI, PyGUI jest zdecydowanie najprostszym i lekkim z nich wszystkich, ponieważ API jest całkowicie zsynchronizowane z Pythonem. PyGUI wstawia bardzo mało kodu między platformą GUI a twoją aplikacją Python, stąd też wyświetlanie aplikacji zazwyczaj wyświetla naturalny GUI platformy.


Popularne biblioteki obliczeń matematyczno-naukowych w Pythonie

  • NumPynumpy

    NumPy to podstawowy pakiet do obliczeń naukowych w Pythonie. Zawiera między innymi:

    • potężny N-wymiarowy obiekt tablicy
    • wyrafinowane (rozgłoszeniowe) funkcje
    • narzędzia do integracji kodu C / C ++ i Fortran
    • użyteczna algebra liniowa, Fourier transform i możliwości liczb losowych

    Funkcje te umożliwiają również używanie NumPy w aplikacjach bazodanowych ogólnego przeznaczenia.

  • SciPyscipy

    SciPy to biblioteka typu open source dla języka programowania Python, składająca się z algorytmów matematycznych i funkcji często używanych w nauce i inżynierii. SciPy zawiera algorytmy i narzędzia do zadań takich jak optymalizacja, grupowanie, dyskretne transformaty Fouriera, algebra liniowa, przetwarzanie sygnałów i wielowymiarowe przetwarzanie obrazu. SciPy jest ściśle powiązany z NumPy i zależy od wielu funkcji NumPy, w tym wielowymiarowej tablicy, która jest używana jako podstawowa struktura danych w SciPy.

  • matplotlibmatplotlib

    matplotlib to biblioteka kreśląca dla języka programowania Python i jego rozszerzenia numerycznego NumPy. Zapewnia zorientowany obiektowo interfejs API do osadzania wykresów w aplikacjach przy użyciu zestawów narzędzi GUI ogólnego przeznaczenia, takich jak wxPython, Qt lub GTK. Istnieje również proceduralny interfejs „pylab”, oparty na maszynie stanów (jak OpenGL), zaprojektowany tak, aby bardzo przypominał MATLAB.

  • Pandypandas

    Pandas to biblioteka typu open source na licencji BSD, zapewniająca wydajne, łatwe w użyciu struktury danych i narzędzia do analizy danych dla języka programowania Python. Pandy integruje wiele innych funkcji bibliotek, a mianowicie operacje macierzowe NumPy i możliwości kreślenia Matplotlib. 10 minut do Pandto dobry samouczek dotyczący pierwszego kontaktu z Pandami.

  • theanotheano

    Theano to szeroko stosowana biblioteka oparta na języku Python-C, odpowiednia do wysoce obliczeniowych zadań matematycznych ze względu na optymalizacje, które wykonuje w kodzie interfejsu Python, dzięki czemu jest wysoce zoptymalizowany przy użyciu procedur opartych na C. Jest to bardzo popularna biblioteka również dla badaczy zajmujących się uczeniem maszynowym. Posiada wysoce zoptymalizowane automatyczne różnicowanie, ułatwiające implementację bardzo skomplikowanych funkcji i obliczanie ich gradientów bez żadnych błędów.

  • Blenderblender

    Blender to darmowy pakiet animacji 3D typu open source. Obsługuje całość potoku 3D - modelowanie, montaż, animację, symulację, renderowanie, komponowanie i śledzenie ruchu, a nawet edycję wideo i tworzenie gier.

  • scikit-learnscikit-learn

    scikit-learn to bezpłatna biblioteka uczenia maszynowego typu open source napisana w języku Python. Obsługuje szkolenie i testowanie wielu różnych rodzajów modeli uczenia maszynowego, a także niektórych podstawowych technik przetwarzania danych.

  • TensorFlowtensorflow

    TensorFlow to biblioteka oprogramowania typu open source, opracowana przez zespół Google Brain. Jest to symboliczna biblioteka matematyczna, używana głównie w aplikacjach uczenia maszynowego, takich jak sieci neuronowe.


Popularne rozwiązania rozszerzeń C:

Dzięki rozszerzeniu C możesz przyspieszyć swój kod w Pythonie. Jeśli Twoje pytanie ma coś wspólnego z którymkolwiek z kolejnych rozwiązań, pamiętaj o dołączeniu odpowiedniego tagu.

  • ctypesctypes

    ctypes to pakiet Pythona, który opakowuje biblioteki C .dll / .so w czysty Python.

  • SWIGswig

    SWIG to kompilator interfejsu, który łączy programy napisane w C i C ++ z językami skryptowymi, takimi jak Python.

  • Cythoncython

    Cython to optymalizujący statyczny kompilator zarówno dla języka programowania Python, jak i rozszerzonego języka programowania Cython (opartego na Pyrex). To sprawia, że pisanie rozszerzeń C dla Pythona jest tak proste, jak sam Python.


Społeczność

Pokoje czatowe

  • Porozmawiaj na dedykowanym kanale IRC #python na Freenode, aby dowiedzieć się wszystkiego o Pythonie. Jeśli jesteś zainteresowany, spójrz na Python IRCpod kątem konkretnego alternatywnego kanału.

  • Porozmawiaj o Pythonie z innymi użytkownikami Stack Overflow w pokoju rozmów Python.

Inne strony


Darmowe książki o programowaniu w Pythonie


Interaktywna nauka języka Python

  • Codecademy- poznaj podstawy Pythona i programowania dynamicznego
  • CodeSkulptor- interaktywne środowisko IDE online do programowania w języku Python 2
  • CodeSkulptor 3- Interaktywne środowisko IDE online do programowania w języku Python 3
  • Coursera- kurs online wprowadzający do interaktywnego programowania w języku Python
  • CheckiO- świat gry, który możesz odkrywać, korzystając ze swoich umiejętności programowania w Pythonie
  • Dataquest- interaktywne kursy Pythona do nauki o danych
  • PyCharm Edu- aplikacja komputerowa oferująca interaktywną naukę języka Python
  • Interaktywny Python- zawiera zmodyfikowaną, interaktywną wersję „Jak myśleć jak informatyk”
  • Python Tutor- wizualizacja i / lub kodowanie na żywo w Pythonie
  • Kręgi informatyczne- poznaj podstawy Pythona 3 w sposób półinteraktywny.
  • CodingBat (Python)- Po nauce niektórych podstaw, udoskonalaj i doskonalić swoje umiejętności Pythona z problemami z kodowaniem na żywo.

Kursy online Python


Samouczki wideo Python


Python dla naukowców


Python Online IDE

  • ideone- internetowe IDE z obsługą innych popularnych języków.
  • REP.IT- tłumacz online dla Python 2 i 3, które upraszcza oszczędność i udostępnianie kodu.
  • powłoka Pythona- konsola online z PythonAnywhere.
  • pythonfiddle- Python Cloud IDE.
  • Pifiddle- konsola online Python 2.7 / 3.6.

Jakość kodu

  • Codacy- automatyczna weryfikacja kodu umożliwiająca szybsze wysyłanie lepszego kodu.
  • Codecov- panel informacyjny pokrycia kodu.
  • CodeFactor- automatyczny przegląd kodu dla Git.
  • Krajobraz- hostowane ciągłe wskaźniki kodu w języku Python.

Oficjalne logo


Aktywne podcasty

Nieaktywne podcasty