Python 2 czy 3?

Odpowiedz Nowy wątek
2015-10-13 08:45
0

Może każdy wypowie się w temacie, którą wersję wybrać, jeśli zaczynamy swoją przygodę z pythonem? Początkujący mają z tym dużo problemów. Na dzień dzisiejszy mamy python 2.7.10 i 3.5.0. Sam uczę się 3.

Pozostało 580 znaków

2015-10-13 08:52
4

jezeli
1) python to Twoj pierwszy jezyk programowania

  • nie ma znaczenia
    2) zaczynasz uczyc sie pythona (kolejny jezyk programowania)
  • nie ma znaczenia
    3) potrzebujesz pythona uzyc z jakimis konkretnymi biblotekami
  • zobacz czy sa dostepne (i czy dzialaja) pod wersja 3, jezeli tak mozesz uczyc sie 3 jezeli nie to ucz sie 2.7

i to by bylo na tyle.

Pozostało 580 znaków

2015-10-13 09:37
_Bazyliszek
0

Wersja 3 się bardziej opłaca jeśli chcesz kodować asynchronicznie, natomiast wersja 2 bardziej sprzyja rzeczom akademickim. Nie mniej lepiej jest znać obie wersje :)

Pozostało 580 znaków

2015-10-13 09:50
Złoty Mleczarz
0

Tak jak kolega napisał, jak dopiero zaczynasz abo to Twój kolejny język to nie ma znaczenia.

Pozostało 580 znaków

2015-10-13 10:01
2
  • nie ma znaczenia

Ma znaczenie takie, że Python 2 nie będzie rozwijany i choć pewnie długo jeszcze będzie na sztucznym podtrzymaniu, nie powinno się go używać w nowych projektach.

do nauki bedzie mialo to znaczenie? - fasadin 2015-10-13 10:05
@fasadin: no można się uczyć i COBOL-a.. - Azarien 2015-10-13 10:20
@Azarien analogia z d**y bo różnice w składni i podstawach między 2 i 3 są kosmetyczne i jak ktoś umie pisać w jednej wersji to napisze i w drugiej bez problemu. - Shalom 2015-10-13 10:30
dlatego uczyłbym się 3, a 2 dopiero przy okazji jak przyjdzie komuś grzebać w starociu. - Azarien 2015-10-13 10:52

Pozostało 580 znaków

2015-10-13 11:52
0

W podklejonym temacie masz nawet odpowiedź na to pytanie ;) Wybierz Pythona 2 tylko, jeśli
a) biblioteka, której nie da się zastąpić, nie wspiera Pythona 2
b) rozwijasz projekt w Pythonie 2, w którym zbyt czaso/pieniądzo-chłonne byłoby przepisanie go na Py3, albo nie da się z powodu wymienionego w poprzednim punkcie.
W przeciwnym razie Python 3.

Pozostało 580 znaków

2015-10-13 14:37
1

Ucz się 3-ki, a jeżeli dany projekt, na którym przyjdzie Ci pracować będzie napisany w 2-ce, to zapoznaj się z subtelnymi różnicami między obiema wersjami. Nielogiczne jest uczenie się wersji, która nie będzie w przyszłości rozwijana. Owszem, z uwagi na kosmetyczne różnice między dwójką i trójką jako tako nie ma różnicy, której wersji zaczniesz się uczyć, bo niezależnie od wyboru będziesz umiał pisać w obu. Pytanie tylko po co w takim razie wybierać wersję przestarzałą, zamiast tej, która będzie rozwijana w przyszłości?


The quieter you become, the more you are able to hear.
bo 1) jest stablina 2) wiele rozszerzen dziala pod 2.7 a pod 3 niekoniecznie - fasadin 2015-10-13 14:58
1) Czy możesz podać przykłady, gdzie trójka jest mniej stabilna od dwójki? 2) Prawda, ale to się ciągle zmienia. - Gjorni 2015-10-13 16:18

Pozostało 580 znaków

2015-10-13 19:31
Pijany Kot
0

Na start, bym brał trójkie, bo już sporo modułów przepisano, a nie ma co się bawić w przestarzałym pythonie. 3.6 albo 3.7 ma wprowadzić możliwość programowania równoległego.

równoległego? asyncio jest od Pythona 3.4, jeśli chodzi o GILa to się nie zanosi raczej, multiprocessing też jest od jakiegos czasu - Wizzie 2015-10-13 19:57

Pozostało 580 znaków

2015-10-13 19:32
0

Różnice między v. 2.x a v. 3.x mają być kosmetyczne? To jak się zachowa aplikacja w której przez pomyłkę (a to się zawsze może zdarzyć) napisana pod v. 3.x i zastosowano gdzieś dzielenie na liczbach całkowitych z jednym tylko ukośnikiem zamiast dwóch?

W v. 2x jako wynik dzielenia 8/3 będzie 2 i będzie to liczba całkowita, zaś w v 3.x będzie floatem bo tu przez pomyłkę ktoś nie zastosował 8 // 3 ale 8 / 3 i lipa. Jakie to może mieć skutki, gdyby ktoś dla przykładu w pythonie napisał sobie na PC jakąś aplikację sterującą zachowaniem jakiegoś własnego quadro (np. przez Arduino i moduł nadawczo odbiorczy 433 MHz) a co dopiero amatorskiej rakiety?

Co to ma być? Zamiast porządnego komitetu który by ustalił pewne standardy i byłoby założenie o kompatybilności wstecznej, co moim zdaniem może być tu dość istotne o wszystkim decyduje twórca pythona który zdaje się jest dożywotnim dyktatorem? Jaką można mieć pewność że linia 4x będzie kompatybilna wstecznie z 3x bo o 2x to chyba już nie może być mowy? Teraz się uczycie pod 3x bo to jest rozwijane a wydaje mi się że py 2.7 jest nadal bardzo popularny a i jest od groma bibliotek pod tą wersję. Poza tym jest konwerter 2 to 3 więc nawet jak ktoś zna 2x to jaki to jest problem przekonwertować pod 3x? Są z tym jakieś istotne problemy? Bo po co niby jest ten konwerter?

o wszystkim decyduje twórca pythona który zdaje się jest dożywotnim dyktatorem? Tak! https://pl.wikipedia.org/wiki/Benevolent_Dictator_for_Life - ShookTea 2015-10-13 19:45

Pozostało 580 znaków

2015-10-13 19:50
0

@drorat1 nie przesadzaj. Rzecz w tym że takich różnic o których mówisz jest MAŁO. Dzielenie, print, kodowanie stringów to są takie 3 najpopularniejsze. Po co jest konwerter? Ano po to żebyś nie musiał lecieć ręcznie przez tysiące linii kodu i zamieniać print "dupa" na print("dupa") na przykład :)
Jak ktoś zaczyna przygodę z pythonem to nie pisze of razu softu do quadrocoptera, cubesata czy rakiety stratosferycznej. A jak już jest na tyle zaawansowany żeby taki soft pisać to nie zrobi takich błędów.


Masz problem? Pisz na forum, nie do mnie. Nie masz problemów? Kup komputer...
edytowany 1x, ostatnio: Shalom, 2015-10-13 19:51
a co to jest te kubesata? to takie coś -> https://pl.wikipedia.org/wiki/CubeSat - karolinaa 2015-10-13 20:01
Ano, takie coś. Wysyła się takie "przy okazji" startu zwykłego satelity albo np. wyrzuca sie je (czasem ręcznie :D) za burtę z ISS. - Shalom 2015-10-13 20:10

Pozostało 580 znaków

2015-10-13 20:20
0

Konwersja czegoś takiego za pomocą 2to3:

a = 8 / 3
print(a)

nie spowoduje żadnych zmian:

RefactoringTool: Skipping implicit fixer: buffer
RefactoringTool: Skipping implicit fixer: idioms
RefactoringTool: Skipping implicit fixer: set_literal
RefactoringTool: Skipping implicit fixer: ws_comma
RefactoringTool: No files need to be modified.

A wynik działania w py 2.7: 2, w py 3.4: 2.6666666666666665

I gdzie tu mowa o przydatności tego narzędzia do konwersji?

bo python 2 miał też print instruction. Konwersja z print "dupa" zrobi print("dupa"). A dzielenia nie może poprawić bo nie wiadomo które miałeś na myśli bez testowania typu operandów. - Shalom 2015-10-13 20:55

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0