Stwórz profil

Musisz wpisać swoje imię
Musisz wpisać swoje nazwisko
Musisz wpisać poprawny e-mail
Musisz wpisać hasło (min. 8 znaków)
Musisz zaakceptować regulamin

Łukasz Wróblewski programista Python /
administrator Linux
/ specjalista ds...

Temat: Python 3+

Tak z ciekawości ilu z was implementuje już w Python 3 i wyżej ?
21.03.2011, 18:37

Mikołaj Siedlarek web software
engineer

Temat: Python 3+

Ja niedjangowe projekty robię już w p3k. Ostatnio pracowałem z Pythonem 3 + CherryPy + SQLAlchemy, co pokazuje, że i zewnętrznych bibliotek przestaje brakować.

Coś co mnie przekonało do przejścia do trójki to uproszczenie (i zarazem rozwiązanie wielu problemów) obsługi Unicode. Teraz to wszystko ma sens i kupy się trzyma. Polecam!
23.03.2011, 11:54

Łukasz Wróblewski programista Python /
administrator Linux
/ specjalista ds...

Temat: Python 3+

Django jest fajne... ale strasznie mnie smuci, że sporo os widzi tylko Python = Django

Ja z przesiadki na py3k jestem bardzo zadowolony.
Ciekawi mnie czy macie jakieś problemy z trójką... po za tym, że Django jeszcze nie jest gotowe na tą rewolucję.

SQLAlchemy Postgresql zacznie w pełni wspierać dopiero od wersji 0.7 (mowa o py3).
23.03.2011, 18:49

Konrad Kur Programista

Temat: Python 3+

Łukasz Wróblewski:
Django jest fajne... ale strasznie mnie smuci, że sporo os widzi tylko Python = Django

Każdy widzi Python'a tak, do jakich celów go używa, proste.
23.03.2011, 19:38

Stanisław P. Software designer

Temat: Python 3+

Od kiedy 3.1 jest w debian stable, to tak - pod niego piszę.
Chociaż to znowu zależy od systemu. W pracy jestem ograniczony rhel6, więc tylko 2.7.Stanisław P. edytował(a) ten post dnia 03.04.11 o godzinie 16:59
3.04.2011, 16:57

Piotr L. IT - projekt &
implementacje

Temat: Python 3+

Mikołaj Siedlarek:
Ja niedjangowe projekty robię już w p3k. Ostatnio pracowałem z Pythonem 3 + CherryPy + SQLAlchemy, co pokazuje, że i zewnętrznych bibliotek przestaje brakować.

Coś co mnie przekonało do przejścia do trójki to uproszczenie (i zarazem rozwiązanie wielu problemów) obsługi Unicode. Teraz to wszystko ma sens i kupy się trzyma. Polecam!

A nie jest tak że wersje 2.6 i 2.7 mają wprowadzane elementy Unicode'u z P3k?
Pytam jako laik.
Jakie uproszczenia masz na myśli?Piotr Likus edytował(a) ten post dnia 16.04.11 o godzinie 10:38
16.04.2011, 10:24

Mikołaj Siedlarek web software
engineer

Temat: Python 3+

Piotr Likus:
Mikołaj Siedlarek:
Ja niedjangowe projekty robię już w p3k. Ostatnio pracowałem z Pythonem 3 + CherryPy + SQLAlchemy, co pokazuje, że i zewnętrznych bibliotek przestaje brakować.

Coś co mnie przekonało do przejścia do trójki to uproszczenie (i zarazem rozwiązanie wielu problemów) obsługi Unicode. Teraz to wszystko ma sens i kupy się trzyma. Polecam!

A nie jest tak że wersje 2.6 i 2.7 mają wprowadzane elementy Unicode'u z P3k?
Pytam jako laik.
Jakie uproszczenia masz na myśli?

To co się tak naprawdę stało, to usunięto typ str, a typ unicode przemianowano na str. Teraz jest wyraźne rozróżnienie między tekstem (unicode) a jego reprezentacją w pamięci (bytes).

Czyli:

>>> a = "Hello world!"
>>> type(a)
<class 'str'>
>>> type(a.encode('utf-8'))
<class 'bytes'>

Nie możesz np. zapisać tekstu do pliku, bo taka operacja logicznie rzecz biorąc nie ma sensu. Do pliku możesz zapisać bajty, np. tekst zakodowany w UTF-8 czy ISO-8859-2, czy nawet w pełnym Unicode. Teraz tekst to tekst, dość abstrakcyjny typ danych, a ciągi bajtów to ciągi bajtów - zupełnie inaczej niż np. w C.

Dla każdego programisty lubującego się w językach wysokopoziomowych, porzucenie niskopoziomowego myślenia o tekstach jako o ciągach bajtów to spora radość. ;) Poza tym porządkuje to kod na poziomie KOSMICZNYM, wszystkie operacje na stringach nabierają żelaznej logiki. Wszystko klarowne, mniej pomyłek, mniej błędów, szybsze kodowanie.

2.6 i 2.7 mają fakytcznie elementy tej koncepcji, które czynią używanie ich wygodniejszymi, ale to nadal nie jest ta żelazna logika i twardy porządek.
16.04.2011, 11:52

Łukasz Wróblewski programista Python /
administrator Linux
/ specjalista ds...

Temat: Python 3+

Jest sporo prawdy w tym co mówisz, ale w paru zdaniach nie masz racji:

"Nie możesz np. zapisać tekstu do pliku, bo taka operacja logicznie rzecz biorąc nie ma sensu. "

możesz bez problemu zapisać tekst <str> do pliku ;) i to ma duży sens.

Python 3.1.2 (release31-maint, Sep 17 2010, 20:34:23)
[GCC 4.4.5] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> f=open('a.txt','w')
>>> f.write('mój tekst')
9
>>> f.close()

w tym przypadku zostanie zastosowane automatyczne encodowanie (zgodnie z ustawieniami środowiska interpretera).
16.04.2011, 16:51

Mikołaj Siedlarek web software
engineer

Temat: Python 3+

Łukasz Wróblewski:
Jest sporo prawdy w tym co mówisz, ale w paru zdaniach nie masz racji:

"Nie możesz np. zapisać tekstu do pliku, bo taka operacja logicznie rzecz biorąc nie ma sensu. "

możesz bez problemu zapisać tekst <str> do pliku ;) i to ma duży sens.

Python 3.1.2 (release31-maint, Sep 17 2010, 20:34:23)
[GCC 4.4.5] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> f=open('a.txt','w')
>>> f.write('mój tekst')
9
>>> f.close()

w tym przypadku zostanie zastosowane automatyczne encodowanie (zgodnie z ustawieniami środowiska interpretera).

I tak zapisujesz bajty. To że encodowanie jest ukryte gdzieś tam niżej w bibliotece i nie zawsze trzeba o nim myśleć nie zmienia faktu. Gdyby zapisywał domyślnie w pełnym Unicode, zgodziłbym się że zapisuje typ <str>, ale tu po prostu się dzieje niejawne encodowanie.
16.04.2011, 21:13

Tomasz Elendt Software Engineer at
Nokia gate5 GmbH

Temat: Python 3+

Mikołaj Siedlarek:

[...]
I tak zapisujesz bajty. To że encodowanie jest ukryte gdzieś tam niżej w bibliotece i nie zawsze trzeba o nim myśleć nie zmienia faktu. Gdyby zapisywał domyślnie w pełnym Unicode, zgodziłbym się że zapisuje typ <str>, ale tu po prostu się dzieje niejawne encodowanie.

Sformułowanie "zapisanie w pełnym Unicode" jest lekko niefortunne. Jak sam wcześniej napisałeś - Unicode to pewnego rodzaju byt abstrakcyjny - jego wewnętrzna implementacja nie jest specjalnie istotna. W przypadku CPythona jest to UCS-2 lub UCS-4 (w zależności jak zostało to skonfigurowane przed kompilacją).

Czasem mówi się o "kodowaniach unikodowych" w odniesieniu do grupy kodowań, które implementują standard Unicode (są w stanie przedstawić wszystkie jego "code pointy"). Robią to jednak w różny sposób dlatego najlepiej wymieniać je z nazwy.
16.04.2011, 21:46

Mikołaj Siedlarek web software
engineer

Temat: Python 3+

Tomasz Elendt:
Mikołaj Siedlarek:

[...]
I tak zapisujesz bajty. To że encodowanie jest ukryte gdzieś tam niżej w bibliotece i nie zawsze trzeba o nim myśleć nie zmienia faktu. Gdyby zapisywał domyślnie w pełnym Unicode, zgodziłbym się że zapisuje typ <str>, ale tu po prostu się dzieje niejawne encodowanie.

Sformułowanie "zapisanie w pełnym Unicode" jest lekko niefortunne. Jak sam wcześniej napisałeś - Unicode to pewnego rodzaju byt abstrakcyjny - jego wewnętrzna implementacja nie jest specjalnie istotna. W przypadku CPythona jest to UCS-2 lub UCS-4 (w zależności jak zostało to skonfigurowane przed kompilacją).

Czasem mówi się o "kodowaniach unikodowych" w odniesieniu do grupy kodowań, które implementują standard Unicode (są w stanie przedstawić wszystkie jego "code pointy"). Robią to jednak w różny sposób dlatego najlepiej wymieniać je z nazwy.

Absolutnie racja. Faktycznie niefortunnie. ;)
16.04.2011, 23:54

Łukasz Wróblewski programista Python /
administrator Linux
/ specjalista ds...

Temat: Python 3+

Mikołaj Siedlarek:

I tak zapisujesz bajty. To że encodowanie jest ukryte gdzieś tam niżej w bibliotece i nie zawsze trzeba o nim myśleć nie zmienia faktu. Gdyby zapisywał domyślnie w pełnym Unicode, zgodziłbym się że zapisuje typ <str>, ale tu po prostu się dzieje niejawne encodowanie.

Zmienia sporo...
1. nie Ty/ja zapisuję w <bytes> tylko interpreter, to różnica, ponieważ jak sam powiedziałeś jest inny poziom abstrakcji i programista nie musi się o to martwić, zaś w py2 trzeba było tego pilnować samemu.

2. o jakim fakcie mówimy, że wszystko na dysku jest zapisane w zerach i jedynkach. jeżeli ktoś chce to może zapisać do pliku w UTF-8 lub UCS-2, lub innym. Da się zapisać bez problemu w "pełnym Unicode" tylko problem w tym co zrobi edytor tekstu, gdy zechcesz podejrzeć plik.

3. typy są jak zauważyliście niejako abstrakcyjne, ja bym użył bardziej określenia konfigurowalne. ponieważ w każdym interpreterze może być inne kodowanie dla Unicode, ale tak samo dla Int, Float...

Mi chodzi tylko o to automagiczne encodowanie, którego nie było w py2. Tam było zamiast tego rzutowanie Unicode > Str, gdy zapisywałeś ASCII wszystko było ok, ale jak dodałeś polski znaczek to już rzutowanie się przekręcało. Takie zachowanie przysparza bardzo dużo błędów wielu programistom.

Dlatego się o tym najgłośniej mówi w odniesieniu do przejścia z py2 na py3, ale to tylko jedna z setek zmian jakie zostały dokonane. W sumie bardzo ważna ponieważ dotyczy generycznych typów ;) , ale wciąż tylko jedna z wielu. Dla przykładu traktowanie większej ilości obiektów jako generatory zamiast list niesamowicie dużo zmienia...
nie będę wchodził szczegółowo w różnice tylko powtórzę jeszcze raz:
Ja z przesiadki na py3k jestem bardzo zadowolony.
Ale jeżeli jeszcze ktoś nie spróbował 3.1 to proponuję zacząć od razu od 3.2.
17.04.2011, 02:23

Krzysztof D. Det Norske Veritas
Poland Sp. z o.o

Temat: Python 3+

Witam,

właśnie zaczynam przygodę z Python-em.
Po przeczytaniu teamtu i wypowiedzi zaczynam mieć wątpliwości czy rozpoczęcie nauki od wersji 2.7 ma sens.

Czy na początku nie ma to znaczenia w jakiej wersji rozpocznie się naukę?

Co o tym sądzicie?

pozdr, KD
17.04.2011, 18:35

Łukasz Wróblewski programista Python /
administrator Linux
/ specjalista ds...

Temat: Python 3+

To zależy, w głównej mierze od tego do czego potrzebujesz języka ?

Jeżeli chcesz podjąć pracę w tym języku to na 80% będziesz robił strony w Django. Przewiduję, że jeszcze przez rok nie pojawi się żadna stabilna wersja Django, a nawet jeżeli to mało która firma na nią tak szybko przejdzie, obsługiwana przez Py3

Jeżeli inne, rzeczy i masz możliwość skorzystania z py3.2 to ucz się najnowszej wersji.

Jak masz zamiar kupować książki to o Python'ie 3+
Ja przez jakiś tydzień pisałem print 'cos' zamiast print('cos')
w py2 to przeważnie nie ma znaczenia (działają obie formy, ale są sytuacje, że działają inaczej), natomiast w py3 nawiasy są koniecznością. Dlatego jak nabierzesz nawyk pisania print('cos') i w py2 sobie poradzisz.
Jest sporo nowych paczek, stare zostały przepisane/pozmieniane i czasami w nowym Pythonie czegoś brakuje, a czasami w starym.
np: nie ma jeszcze dobrej biblioteki do obrazków dla py3. w 2 jest:
PIL http://www.pythonware.com/products/pil/
"...PIL 1.1.7. This release supports Python 1.5.2 and newer, including 2.5 and 2.6. A version for 3.X will be released later..."
co oznacza, że będzie dla 3.x ale nie wiadomo kiedy i na dziś nie ma :P

Myślę, że powinieneś uczyć się Python 3, ale umieć zrobić też wszystko w Py2 i wiedzieć dokładnie jakie są między nimi różnice. Jeżeli chcesz programować w tym języku... a jak nie to zacznij się uczyć lua http://www.lua.org/ lub czegoś bardziej abstrakcyjnego ;) lispo podobnego
17.04.2011, 19:11

Krzysztof D. Det Norske Veritas
Poland Sp. z o.o

Temat: Python 3+

Interesuje mnie pisanie programów inżynierskich na własne potrzeby.

Nie specjalnie rozumiem pojęcie biblioteka czy raczej jej brak dla Pythona 3.

pozdr, KD
17.04.2011, 20:03

Dariusz O. Programista

Temat: Python 3+

Krzysztof D.:
Interesuje mnie pisanie programów inżynierskich na własne potrzeby.

Nie specjalnie rozumiem pojęcie biblioteka czy raczej jej brak dla Pythona 3.

pozdr, KD

Zrozumiesz chcąc użyć np. scipy, numpy, matplotlib, pygene, genalgy, fann, bpnn i wielu innych, a zwłaszcza tych pisanych w C + Python bindings (a jest ich cała masa jeśli chodzi o zaplecze naukowe w Python). Więc nie ważne w jakim celu chcesz użyć języka, powinieneś mieć na uwadze jego kompatybilność z bibliotekami różnymi od std.
Pamiętaj, że oprogramowania (zwłaszcza dobre) ewoluuje, a nie sądzę, że np. za kilka m-c chcąc dodać do swoich inżynierskich programów np. output w postaci bardziej skomplikowanych wykresów, napiszesz na kolanie odpowiednią bibliotekę.Dariusz O. edytował(a) ten post dnia 17.04.11 o godzinie 21:21
17.04.2011, 21:20

Piotr L. IT - projekt &
implementacje

Temat: Python 3+

Dariusz O.:
Krzysztof D.:
Interesuje mnie pisanie programów inżynierskich na własne potrzeby.

Nie specjalnie rozumiem pojęcie biblioteka czy raczej jej brak dla Pythona 3.

pozdr, KD

Zrozumiesz chcąc użyć np. scipy, numpy, matplotlib, pygene, genalgy, fann, bpnn i wielu innych, a zwłaszcza tych pisanych w C + Python bindings (a jest ich cała masa jeśli chodzi o zaplecze naukowe w Python). Więc nie ważne w jakim celu chcesz użyć języka, powinieneś mieć na uwadze jego kompatybilność z bibliotekami różnymi od std.
Pamiętaj, że oprogramowania (zwłaszcza dobre) ewoluuje, a nie sądzę, że np. za kilka m-c chcąc dodać do swoich inżynierskich programów np. output w postaci bardziej skomplikowanych wykresów, napiszesz na kolanie odpowiednią bibliotekę.

Tłumacząc na polski, lepiej jest pozostać na razie przy Python 2.6/2.7, chyba że nie będziesz na razie wykorzystywać Pythona do poważnych zastosowań, a jedynie do nauki / ew. mikro-programowania (małe konwertery i pobieracze danych z netu).Piotr Likus edytował(a) ten post dnia 17.04.11 o godzinie 22:09
17.04.2011, 22:08

Krzysztof D. Det Norske Veritas
Poland Sp. z o.o

Temat: Python 3+

Piotr Likus:

Tłumacząc na polski, lepiej jest pozostać na razie przy Python 2.6/2.7, chyba że nie będziesz na razie wykorzystywać Pythona do poważnych zastosowań, a jedynie do nauki / ew. mikro-programowania (małe konwertery i pobieracze danych z netu).


Przypuszczam że to jest odpowiedź na moje pytanie.
Do tej pory wsparciem dla mnie było VBA w Excel-u. Teraz znając
potrzeby chcę zacząć pisać programy w Pythonie.

Według mnie będę miał poważne zastosowania dla Pythona (według mojej oceny).
Przypuszczam że apetyt będzie rósł w miarę jedzenia i poznawania możliwości zarówno własnych jak i jezyka.

pozdr, KD
17.04.2011, 22:40

Tomasz Elendt Software Engineer at
Nokia gate5 GmbH

Temat: Python 3+

Krzysztof D.:

[...]
Przypuszczam że to jest odpowiedź na moje pytanie.
Do tej pory wsparciem dla mnie było VBA w Excel-u. Teraz znając
potrzeby chcę zacząć pisać programy w Pythonie.

Według mnie będę miał poważne zastosowania dla Pythona (według mojej oceny).
Przypuszczam że apetyt będzie rósł w miarę jedzenia i poznawania możliwości zarówno własnych jak i jezyka.

Z tego co wiem Python jest dość intensywnie wykorzystywany w Twojej branży (nie wiem co prawda ile masz na co dzień wspólnego z modelowaniem):
http://www.python.org/about/success/tribon/
17.04.2011, 22:51



Wyślij zaproszenie do