Kilka ciekawostek o Pythonie

Cześć! :)

Przez lata zdobywania doświadczenia natknąłem się na kilka ciekawostek które mogą nie być oczywiste dla osób zaczynających pracować z tym językiem, do tej wiedzy dodałem kilka rzeczy które są dookoła samych technikalii i w ramach rozwinięcia filmiku Przemka na ten sam temat – powstał ten artykuł. Zapraszam :)

Zen of Python

Zen of Python to lista założeń w okół których był tworzony ten język. Co ciekawe, zasady te są dostępne z poziomu samego języka. Spróbuj uruchomić taki plik:

1
import this

A zobaczysz że efektem jego uruchomienia są właśnie spisane założenia odnośnie tego języka:

The Zen of Python, by Tim Peters
 Beautiful is better than ugly.
 Explicit is better than implicit.
 Simple is better than complex.
 Complex is better than complicated.
 Flat is better than nested.
 Sparse is better than dense.
 Readability counts.
 Special cases aren't special enough to break the rules.
 Although practicality beats purity.
 Errors should never pass silently.
 Unless explicitly silenced.
 In the face of ambiguity, refuse the temptation to guess.
 There should be one-- and preferably only one --obvious way to do it.
 Although that way may not be obvious at first unless you're Dutch.
 Now is better than never.
 Although never is often better than right now.
 If the implementation is hard to explain, it's a bad idea.
 If the implementation is easy to explain, it may be a good idea.
 Namespaces are one honking great idea -- let's do more of those!

Co po Polsku brzmi tak:

 Piękne jest lepsze niż brzydkie.
 Wyrażone wprost jest lepsze niż domniemane.
 Proste jest lepsze niż złożone.
 Złożone jest lepsze niż skomplikowane.
 Płaskie jest lepsze niż wielopoziomowe.
 Rzadkie jest lepsze niż gęste.
 Czytelność się liczy.
 Sytuacje wyjątkowe nie są na tyle wyjątkowe, aby łamać reguły.
 Choć praktyczność przeważa nad konsekwencją.
 Błędy zawsze powinny być sygnalizowane.
 Chyba że zostaną celowo ukryte.
 W razie niejasności powstrzymaj pokusę zgadywania.
 Powinien być jeden -- i najlepiej tylko jeden -- oczywisty sposób na zrobienie danej rzeczy.
 Choć ten sposób może nie być oczywisty jeśli nie jest się Holendrem.
 Teraz jest lepsze niż nigdy.
 Chociaż nigdy jest często lepsze niż natychmiast.
 Jeśli rozwiązanie jest trudno wyjaśnić, to jest ono złym pomysłem.
 Jeśli rozwiązanie jest łatwo wyjaśnić, to może ono być dobrym pomysłem.
 Przestrzenie nazw to jeden z niesamowicie genialnych pomysłów -- miejmy ich więcej!

Python najpopularniejszym językiem roku 2019

Najfajniej przedstawia to ten filmik, bo pokazuje jak zmieniała się popularność Pythona względem innych języków na przestrzeni lat:

Swoje podsumowanie również dorzuciło StackOverflow, potwierdzające popularność Python’a.

Python nie jedno ma oblicze

Ten Python którego używamy najczęściej to tak naprawdę CPython – czyli najpopularniejsza, wzorcowa implementacja tego języka. Ale najpopularniejsza nie oznacza że jedyna! Implementacji tego języka jest kilka i tu już od konkretnie rozwiązywanego problemu zależy jakiej użyjemy. Napisałem o tym więcej tutaj.

Geneza nazwy

Nazwa języka nie pochodzi od zwierzęcia lecz od serialu komediowego emitowanego w latach siedemdziesiątych przez BBC – „Monty Python’s Flying Circus” (Latający cyrk Monty Pythona). Projektant, będąc fanem serialu i poszukując nazwy krótkiej, unikalnej i nieco tajemniczej, uznał tę za świetną:)

Paradygmat języka Python

W Pythonie możesz pisać używając paradygmatu obiektowego, strukturalnego jak i funkcyjnego!


Czekaj, stop!

Podoba Ci się to co tworzę? Jeśli tak to zapraszam Cię do zapisania się na newsletter:

Aby potwierdzić swoją subskrypcję, odbierz pocztę i kliknij w link potwierdzający:) jeśli maila nie ma to poczekaj chwile i/lub sprawdź folder spam/inne/oferty itp :)

Aby potwierdzić swoją subskrypcję, odbierz pocztę i kliknij w link potwierdzający:) jeśli maila nie ma to poczekaj chwile i/lub sprawdź folder spam/inne/oferty itp :)
a w ramach prezentu otrzymasz całkowicie za darmo, dwa dokumenty PDF „6 (nie zawsze oczywistych) błędów popełnianych podczas nauki programowania” który jest jednym z efektów ponad siedmioletniej pracy i obserwacji rozwoju niejednego programisty oraz „Wstęp do testowania w Pythonie”, będący wprowadzeniem do biblioteki PyTest.
Jeśli to Cię interesuje to zapraszam również na swoje social media.

Jak i do ewentualnego postawienia mi kawy :)

Dla przykład, używając paradygmatu funkcyjnego możemy stworzyć taką funkcję która zwróci funkcję:

1
2
3
sum_it = lambda x : lambda y :  x+y

print(sum_it(3)(4))

Kod ten zwróci oczywiście 7 i jest tożsamy z:

1
2
3
4
5
6
7
def sum_it(x):
  def _inner_sum_it(y):
      return x+y

  return _inner_sum_it

print(sum_it(3)(4))

Zwracanie wyniku funkcji

Python pozwala na zwracanie wielu wartości z funkcji, np.:

1
2
3
4
5
6
7
def func():
  return 1, 2, 3, 4, 5


one, two, three, four, five = func()

print(one, two, three, four, five)

W Pythonie możesz zdefiniować nieskończoność

Taki kawałek kodu poradzi sobie poprawnie z ifami:

1
2
3
4
5
6
7
8
9
10
11
12
inf = float('Inf')

if 999999999999999999 > inf:
  print("Liczba jest większa niż nieskonczonosc!")
else:
  print("Nieskonczonosc jest wieksza niz liczba")

n_inf = float('-Inf')
if -999999999999999999 < n_inf:
  print("Liczba jest mniejsza niż minus nieskonczonosc!")
else:
  print("Minus nieskonczonosc jest mniejsza niz liczba")

I wypisze oczywiście

Nieskonczonosc jest wieksza niz liczba
Minus nieskonczonosc jest mniejsza niz liczba

Sposób uruchamiania programów w Pythonie

Bardzo często mówi się o Pythonie jako o języku który jest interpretowany. To nie do końca jest prawda! Python (a konkretniej CPython – czyli jego najpopularniejsza implementacja) jest językiem który jest kompilowany do języka pośredniego, tzw. bytecode’u o dopiero ten kod jest interpretowany. Bytecode to właśnie te magiczne pliki z rozszerzeniem pyc. Pisałem o tym więcej tutaj – może nie w kontekście Pythona a Javy, ale idea jest podobna.

Developerski serwer HTTP

Python pozwala na szybkie uruchomienie developerskiego serwer HTTP w bieżącym katalogu, pozwalają na listowanie plików przez przeglądarkę. Można to zrobić tak:

1
2
$ python -m SimpleHTTPServer
Serving HTTP on 0.0.0.0 port 8000 ...

Pod spodem przełącznik „-m” powoduje odnalezienie modułu o podanej nazwie i uruchomienie pliku *.py zawierającego ten moduł jak zwykłego skryptu.

Można uruchomić kawałek Python wprost z CLI

Czyli np. możemy zrobić coś takiego

1
2
3
4
5
$ python -c "import this"
The Zen of Python, by Tim Peters

Beautiful is better than ugly.
....

lub takiego

1
2
$ python3 -c "import sys;print(sys.argv)" test1 test2
['-c', 'test1', 'test2']

Jeśli jesteś zainteresowany kolejnymi dawkami wiedzy z obszaru programowania w Pythonie ale nie jesteś zamknięty tylko na ten język, bo to co tworzę to zahacza też o Jave, JS czy ogólnie o proces dostarczania oprogramowania, to poza Facebookiem, do którego możesz dostać się niżej, przypomnę że na górze strony jest jeszcze Twitter, LinkedIn i Instagram :)

Dzięki za wizytę,
Mateusz Mazurek
Mateusz M.

Pokaż komentarze

  • Pisałem Ci na facebooku jakiś czas temu, ale trafiło pewnie do "inne". Otóż ta część nie jest prawdziwa:
    "Python pozwala na zwracanie wielu wartości z funkcji, np.:"
    Kiedy robisz return 1, 2, 3, 4, 5
    to Python nie zwraca wielu wartości, a jedną tuplę. Warto o tym wiedzieć, w szczególności w takiej sytuacji:
    return 1,

    • Faktycznie, nie widziałem wiadomości od Ciebie :( a co do zwracania wielu wartości to oczywiście masz rację:) pisząc to wziąłem to za skrót myślowy, ale dzięki za komentarz, uzupełnił ten mój niefortunny skrót:)

Ostatnie wpisy

Podsumowanie: maj, czerwiec, lipiec i sierpień 2024

Oj daaawnoo mnie tu nie było. Ale wakacje to był czas dużej liczby intensywnych wyjazdów i tak naprawdę, dopiero jakoś… Read More

2 miesiące ago

Podsumowanie: kwiecień 2024

Cześć! Zapraszam na krótkie podsumowanie kwietnia. Wyjazd do Niemiec A dokładniej pod granicę z Francją. Chrześnica miała pierwszą komunię. Po… Read More

6 miesięcy ago

Podsumowanie: luty i marzec 2024

Ostatnio tygodnie były tak bardzo wypełnione, że nie udało mi się napisać nawet krótkiego podsumowanie. Więc dziś zbiorczo podsumuję luty… Read More

7 miesięcy ago

Podsumowanie: styczeń 2024

Zapraszam na krótkie podsumowanie miesiąca. Książki W styczniu przeczytałem "Homo Deus: Historia jutra". Książka łudząco podoba do wcześniejszej książki tego… Read More

9 miesięcy ago

Podsumowanie roku 2023

Cześć! Zapraszam na podsumowanie roku 2023. Książki Zacznijmy od książek. W tym roku cel 35 książek nie został osiągnięty. Niemniej… Read More

10 miesięcy ago

Podsumowanie: grudzień 2023

Zapraszam na krótkie podsumowanie miesiąca. Książki W grudniu skończyłem czytać Mein Kampf. Nudna książka. Ciekawsze fragmenty można by było streścić… Read More

11 miesięcy ago