Python: Różnice pomiędzy wersjami
Nie podano opisu zmian |
mNie podano opisu zmian |
||
| (Nie pokazano 3 pośrednich wersji utworzonych przez tego samego użytkownika) | |||
| Linia 8: | Linia 8: | ||
| licencja = [[Prawo jazdy|Driving License]] (License to kill) | | licencja = [[Prawo jazdy|Driving License]] (License to kill) | ||
|wersja=brak}} | |wersja=brak}} | ||
'''Python''' | '''Python,''' właśc. '''Phyton''' - (pseudo) [[język programowania]] [[Język wysokiego poziomu|wysokiego poziomu]] klasyfikowany jako język ogólnego przeznaczenia; praktycznie służy głównie do szybkiego klejenia skryptów, które ''[[U mnie działa|jakoś działają na mojej maszynie]]''. Posiada rozbudowany pakiet bibliotek standardowych, z czego większość napisana jest w [[Delphi|prawdziwych językach programowania]]. Nie zmienia to jednak faktu, że w tym języku '''nic się nie da zrobić'''. | ||
== Możliwości == | == Możliwości == | ||
Aktualna wersja na dzień 15:50, 7 maj 2026
Logo języka | |
| Pojawienie się |
20 lutego 1991 |
|---|---|
| Typowanie |
dynamiczne (chujowe) |
| Pochodne |
f '(x), f ''(x) |
| Aktualna wersja stabilna |
brak |
| Twórca | |
| Licencja |
Driving License (License to kill) |
Python, właśc. Phyton - (pseudo) język programowania wysokiego poziomu klasyfikowany jako język ogólnego przeznaczenia; praktycznie służy głównie do szybkiego klejenia skryptów, które jakoś działają na mojej maszynie. Posiada rozbudowany pakiet bibliotek standardowych, z czego większość napisana jest w prawdziwych językach programowania. Nie zmienia to jednak faktu, że w tym języku nic się nie da zrobić.
Możliwości
[edytuj | edytuj kod]Python jest znany z tego, że niemożliwe w nim jest m.in:
- manipulowanie słowem sterującym FPU,
- budowa programu wykorzystującego arytmetykę przedziałową,
- rozwiązanie problemów klasy NP algorytmami metaheurystycznymi.
Problemy
[edytuj | edytuj kod]Wcięcia jako struktura sterująca
[edytuj | edytuj kod]Python wyróżnia się tym, że:
- nie posiada jawnych znaczników bloków (np.
{}), - strukturę programu wyznaczają wcięcia i spacje.
Podejście to umożliwia ono generowanie błędów trudnych do znalezienia, polegających na tym, że jeden blok jest wcięty trzema spacjami, a inny czterema.
GIL
[edytuj | edytuj kod]Centralnym elementem implementacji referencyjnej (CPython) jest Global Interpreter Lock (GIL) – mechanizm, który:
- uniemożliwia równoczesne wykonywanie bajtkodu w wielu wątkach,
- zapewnia, że każdy problem związany z równoległością zostanie automatycznie zastąpiony problemem z wydajnością.
W praktyce oznacza to, że:
- w Pythonie można tworzyć wiele wątków,
- ale tylko jeden może naprawdę wykonywać kod Pythona w danym momencie.
Zastosowania
[edytuj | edytuj kod]Jedynymi znanymi zastosowaniami języka Python od 25 lat jego istnienia są:
- Szybkie skrypty i „klejenie” systemów – Python pełni rolę spoiwa pomiędzy bardziej poważnymi komponentami.
- Data science, uczenie maszynowe i AI – do Pythona podpinane są wysoko wydajne biblioteki wykonane np. w Delphi, dzięki czemu obliczenia są szybkie, bo nie są wykonywane w Pythonie,
- Aplikacje webowe – frameworki typu Django czy Flask pozwalają napisać serwis, który:
- działa wystarczająco dobrze, dopóki ruch nie przekroczy pewnego, niewygodnego progu (np. dwóch użytkowników jednocześnie),
- a potem można go przepisać na node.js (generując zyski dla teamu deweloperów).
Opinie eksperckie
[edytuj | edytuj kod]- Nie da się - Andrzej Marciniak
- Nie da się - Krzysztof Zwierzyński
- Da się - nikt
Opinie nadeksperckie
[edytuj | edytuj kod]Student:
chciałbym napisać choinkę w konsoli w pythonie. da się?
Ekspert:
…choinkę… w Pythonie… 🤦♂️
Pan naprawdę przyszedł na politechnikę, żeby rysować drzewka w konsoli tym swoim Pythonie? To ja już widzę przyszłość polskiej informatyki…
Ale dobrze, niech będzie — odpowiem, zanim pan znowu zacznie instalować trzy biblioteki do wypisania gwiazdki.
Tak, da się.
Bo to jest trywialne. To nie jest żaden sukces Pythona, tylko poziom „pierwszy tydzień programowania”.
I to działa — bez frameworków, bez „magii”, bez AI, bez cudów.
Ale proszę zauważyć jedną rzecz…
To nie jest zasługa Pythona. To by pan zrobił w Delphi, w C, w Pascalu, nawet na kartce papieru.
Różnica jest taka, że w Delphi:
pan by wiedział co się dzieje,
a nie tylko „działa, bo działa”.
No, proszę. Uruchomić, zobaczyć, i proszę mi nie mówić, że to „potęga Pythona”… 😒
Student:
no nie działa
Ekspert:
No oczywiście, że „nie działa”. Klasyka studenta-pythoniarza: wkleił, uruchomił, zobaczył coś innego niż sobie wyobraził i już „nie działa”… 🙄
Ale skoro chce pan to zrobić porządnie, to proszę, Delphi. Tak wygląda choinka w konsoli:
program Choinka;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
h, i: Integer;
begin
h := 5;
for i := 0 to h - 1 do
begin
Write(StringOfChar(' ', h - i - 1));
Writeln(StringOfChar('*', 2 * i + 1));
end;
Write(StringOfChar(' ', h - 1));
Writeln('|');
Readln;
end.
Dla h := 5; dostanie pan:
*
***
*****
*******
*********
|
Jak pan chce wersję „bardziej inżynierską”, z wysokością wczytywaną z klawiatury, to też się da:
program Choinka;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
h, i: Integer;
begin
Write('Podaj wysokosc choinki: ');
Readln(h);
if h <= 0 then
begin
Writeln('Wysokosc musi byc dodatnia.');
Readln;
Exit;
end;
for i := 0 to h - 1 do
begin
Write(StringOfChar(' ', h - i - 1));
Writeln(StringOfChar('*', 2 * i + 1));
end;
Write(StringOfChar(' ', h - 1));
Writeln('|');
Readln;
end.
W Delphi przynajmniej człowiek widzi strukturę programu, a nie festiwal domyślania się, co interpreter „miał na myśli”.