Programowanie w języku Python

Artykuł  został umieszczony na liście Zalążków artykułów. Jeżeli możesz rozbuduj go!

Python to interpretowany język programowania z dynamicznym systemem typów i automatycznym zarządzaniem pamięcią. Dzięki bogatej bibliotece standardowej, łatwości pisania i przejrzystej składni oprogramowanie w nim tworzone powstaje bardzo szybko. Stąd też promuje się go jako język do prototypowania aplikacji. Ogólny zalecany proces tworzenia oprogramowania w Pythonie wygląda następująco:
  • napisz program
  • przetestuj go, sprawdzając czy wydajność jest wystarczająca
  • jeżeli tak to koniec
  • jeżeli nie rozważ zastosowanie kompilatora JIT (PyPy)
  • sprofiluj kod i znajdź wąskie gardła (moduł profile w bibliotece standardowej)
  • zmodyfikuj kod aż osiągniesz żądaną wydajność lub przepisz wąskie gardła w C (lub użyj Cythona do zautomatyzowania tego)

W praktyce bardzo często okazuje się, że wydajność jaką osiągniemy już na początku jest wystarczająca, gdyż wąskie gardła już wcześniej zostały przeniesione do kodu w C. Tak jest np. z programowaniem gier przy wykorzystaniu istniejących bibliotek.

Zastosowania


Python jest używany w bardzo różnych dziedzinach. PyPI to repozytorium niektórych projektów wykorzystujących Pythona. Repozytorium można przeglądać m. in. pod kątem dziedzin zastosowań. Oto niektóre z zastosowań:
  • bazy danych
  • bezpieczeństwo
  • dokumentacja
  • druk
  • edukacja
  • gry
  • graficzne interfejsy użytkownika
  • internet
  • inżynieria oprogramowania
  • komunikacja
  • multimedia
  • oprogramowanie artystyczne
  • obliczenia naukowe
  • przetwarzanie tekstu

Kompilatory/Interpretery


CPython (bazowy, rekomendowany) - Jython - IronPython - MacPython - ActivePython

Biblioteka standardowa


Wbudowane obiekty - Wbudowane typy - Operacje na łańcuchach - Typy danych - Obliczenia numeryczne i matematyczne - Obsługa danych internetowych - Przetwarzanie dokumentów w językach znaczników - Formaty plików - Usługi kryptograficzne - Dostęp do plików i katalogów - Kompresja danych i archiwizacja - Dane trwałe  - Usługi systemu operacyjnego - Opcjonalne usługi systemu operacyjnego - Komunikacja międzyprocesowa i sieciowa - Protokoły internetowe - Usługi multimedialne - Internacjonalizacja - Narzędzia wspomagające tworzenie oprogramowania - Debugger - Profilery - Usługi czasu wykonania - Usługi systemu unix - Usługi systemu MS Windows - Usługi systemu SunOS - Usługi systemu SGI IRIX - Inne

Przykłady


W tej części znajdują się przykłady obrazujące prostotę pisania aplikacji w Pythonie. W miarę możliwości znajdą się tutaj pojedyncze przykłady z różnych dziedzin.

Programowanie interfejsów


Interfejsy graficzne: pyGTK - pyQt - wxPython - pyKDE - pyGNOME - pyFLTK - FxPy - Tkinter
Interfejsy tekstowe: curses

Programowanie stron internetowych


Django - Flask - Pyramid - Bottle - Zope2 - Web2Py - Web.py

Programowanie gier


pyGame - pySDL2 - Panda3D

Programowanie aplikacja mobilnych i multiplatformowych


Kivy

Analiza tekstu


PLY

Obliczenia naukowe


NumPy - SciPy
Symulacje: SimPy

Przetwarzanie grafiki


Python Imaging Library (PIL)

Programowanie skryptów


Gimp - Blender - VIM - Dia - XUL

Integracja z innymi językami


C


Delphi


Java


.NET


JavaScript

  1. Kafelki
  2. Lista

CodeCademy nie zalicza zadania.

Koniunkcja

Operacje na łańcuchach

MacPython

NumPy

Panda3D

Web2Py

pyKDE

Tkinter

wxPython

pyGTK

pyQt

CPython

Jython

Napisy (strings)

Django

Flask

Enumerate

Czy wyraz jest palindromem

PIL

10 komentarzy

serj123 2016-11-29 11:47


Niedawno znalazłem wiele przydatnych informacji na swojej stronie, zwłaszcza tę stronę bloga. Wśród wielu uwag na temat artykułów. Dzięki za dzielenie się. http://nopsoriasis.net/scalp-psoriasis/

mollytrue 2016-11-18 13:40

In order to learn customer service phone number and receive detailed informations about the company, click on the link:
http://1-800-number.net 1800 numbers customer service
http://1-800-number.net/geico-1-800-number/ geico customer service 1800 numbers
http://1-800-number.net/comcast-1-800-number/ comcast customer service number
http://1-800-number.net/wells-fargo-1-800-number/ wells fargo customer service free numbers
http://1-800-number.net/fm-bank-trust-1-800-number/ f&m bank free numbers

Dryobates 2008-01-08 18:47

Ciii, nie wiesz, że ja tu słynny jestem ze słomianego zapału? :P

Marooned 2008-01-08 14:16

More, more, more... czemu tu tak mało artów? ;)

Dryobates 2007-02-13 22:20

Człowiek uczy się całe życie. Dzięki J.J.J.

Jojersztajner 2007-02-13 19:20

Dryobates: skoro zapraszasz do edycji, to zamiast szablonu „Strona w budowie” wstaw szablon „Zalążek”. Szablon „Strona w budowie” wręcz <em>odstrasza</em> od edycji - informuje, żeby nie modyfikować artykułu, bo ty nad nim pracujesz.

// zmieniłem szablon - J. J. J.

Dryobates 2007-02-05 16:15

Tak przemyślałem sobie. Nie bardzo jest moim zdaniem sens upodabniać do innych działów. Dokumentacja pythona jest na jego stronie. A polskie tłumaczenie na www.python.org.pl. Jedyny problem z polską dokumentacją jest to, że jest ona mało aktualna. Z 2003 roku. Można by co najwyżej wypytać autorów tamtej, czy nie można by przenieść tego do wiki 4p.

Dryobates 2007-02-05 15:58

To, że umieściłem PyGTK a nie PyQt jest podyktowane tym, że na co dzień piszę w PyGTK. Podobnie Django a nie Pylons. Proponuję, byś dopisał je :)

Coś o implementacjach pewnie warto napisać, ale sam się w nich nie bawiłem, więc wiele nie powiem.

Jeżeli chodzi o py2exe, to raczej bym tu szerzej opisał o rozprowadzaniu kodu pythona.

Z tym upodobnieniem to dobry pomysł. Już przerabiam.

Coldpeer 2007-02-05 15:45

W końcu powstał dział nt. Pythona! :)

Warto też dodać framework Pylons oraz do bibliotek GUI dodać np. pyQt; zamieścić implementacje - jak np. tę napisaną w Javie (Jython) oraz wspomnieć o narzędziu py2exe.

Hmm, a może upodobnić by dział do innych - jak ten z C czy Delphi? Wtedy wypadałoby usunąć spis treści i zamiast pisać np.:

- Gimp
- Blender
- VIM
- Dia
- XUL

Oszczędzić miejsce i zrobić tak:

- Gimp - Blender - VIM - Dia - XUL

Dryobates 2007-02-05 11:50

Zapraszam do edycji. Może jakieś propozycje, w jakich zastosowań przykłady dać?
Chciałbym odciążyć też artykuł "Jaki język programowania wybrać". Usuwając stamtąd wszystkie te biblioteki. Ale nie wiem, czy jest sens umieszczać je tutaj.