Python dla naukowców

Po co mi to?

Wieloplatformowy

  • Tak samo działa na Windowsie co na Linuksie

Zalety pythona

  • Język programowania
    generalnego przeznaczenia
  • Skryptowy (sort of)
  • Dynamiczny
  • Developer-centric
  • Zwięzły

Python

C++

list = [1, 2, 3]
print(sum(list))
#include ...
vector<long> list = {1, 2, 3};
std::cout << 
    std::accumlate(list.begin(), list.end(), 0L);

Trochę to nie uczciwe, ale:

list = [1, 2, 3, 4, 5]
print(sum(list[1:3]))
vector<long> list = {1, 2, 3};
std::cout << std::accumlate(list.begin()+1, 
               list.end()+4, 0L);

Zalety Pythona

  • Jak matlab ale lepszy
    • Ma działające klasy!
    • Podobne operacje macierzowe
  • Bardzo rozległa biblioteka
    standardowa
  • Dojrzałe IDE
  • Wolne/Otwarte
    Oprogramowanie
  • Darmowe!

W bibliotece standardowej

  • Matematyka
    • Typ reprezentujący
      liczby zespolone
  • Wysyłanie e-maili (smtp)
  • Praca z systemem plików
    (przeszukiwanie)
  • Serializacja danych
  • Odczyt i zapis plików
    • ini
    • csv
    • json
    • xml
    • html

Zalety Pythona

  • Prosty
    • 31 słów kluczowych
    • C#/C++ ~80
  • Celem projektowym jest
    "zasada najmniejszego
    zaskoczenia"
  • Świetna dokumentacja
    • Lepsza niż JavaDoc
    • Narrative documentation
  • Rozwinięta introspekcja

Principle of least suprise

print(1/2)  # 0.5
print(1//2) # 0

Zalety pythona

  • Bardzo łatwa integracja z kodem w
    C/C++/Fortranie
    • Czasem mówi się o Pytonie
      jako "glue language"
    • Integracja ta często NIE wymaga
      pisania kodu C/C++/Fortrana
  • Bardzo stabilny język
    • Dziś można spokojnie uruchamiać
      programy w pythonie z przed 5 lat

Wady (C)Pythona

  • Relatywnie wolny intepreter
  • Brakuje kroku kompliacji
    więc trzeba testować
  • Global Interpreter Lock!

Python dla naukowców

By Jacek Bzdak

Python dla naukowców

  • 1,504