Mireczki, czy wy tak samo mieliscie wrazenie "chaotycznosci" pythona, jesli przestawiliscie sie np. z C++? Przykladowo skladnia pętli for, czy tez nieużywanie nawiasów, a używanie tabulatorów (wtf) - no wydaje się to dziwne i ciezko się przestawic..
@pejczi może I wydaje się dziwne, ale serio, te wcięcia to jest jedna z najlepszych rzeczy w tym języku. W końcu tak czy trzeba ładnie formatowac kod, nie? To wyjebmy nawiasy. Zmusza to też do ograniczania zagnieżdżen.
@DILERIUM: No wlasnie ja jestem przyzwyczajony do wielu zagniezdzen pętli for i jak probowalem sobie stawiac jakies zadania, to dluzsza chwile myslalem jak je zagniezdzic, a tu musialem pobawic sie niestety wiecej operatorami logicznymi, etc.
Zastanawia mnie tylko jak wyglada latanie po tablicach dwuwymiarowych (tutaj listach) skoro jest problem z zagniezdzaniem.
Chodzi mi o budowe samej petli : w c++ robilismy to w stylu for(poczatek;koniec;iterator) W pythonie jest cos w stylu
@Almagest: Spacja, tabulatory - chodzi mi o uzywanie znakow bialych zamiast nawiasow jak czlowiek, przez co wszystko jest duzo ciezsze do pisania i staje sie irytujace, bo nie do konca wiesz jak twoj kod zostanie zinterpretowany..
bo nie do konca wiesz jak twoj kod zostanie zinterpretowany..
@pejczi: Nie występuje to zjawisko. Nie wiem czy Ty piszesz w notatniku, czy nie znasz zupełnie zasad składni Pythona, ale nie mam pojęcia o czym mówisz.
Ustaw sobie w IDE (?), żeby tabulator robił 4 spacje.
Spacja, tabulatory - chodzi mi o uzywanie znakow bialych zamiast nawiasow jak czlowiek, przez co wszystko jest duzo ciezsze do pisania i staje sie irytujace
@pejczi: To znaczy, że w c++ nie robisz w ogóle wcięć tylko stawiasz same nawiasy? Bo jak postępujesz według jakichkolwiek sensownych style guideliness, to i tak robisz wcięcia w 100% jak w Pythonie, tylko musisz dodatkowo klepać te nawiasy. Jak nie wiesz jak zostanie zinterpretowany? Przecież wszystko jest jednoznaczne. Nawet nie ma problemu z dangling else, który trapi większość języków.
@Ilythiiri: Wiesz co, poki co to bawie sie w shellu, staram sie oswoic z sama skladnia jezyka , wczesniej mialem doswiadczenie jedynie z C++ i Java, troche Ra liznalem, przez co sam Python to dla mnie nowość, ale obok R to w zasadzie jedyny jezyk stosowany w Machine Learningu i Data Science, z czym obecnie sie bawie, wiec musze sie przelamac.
@Almagest: Nie no, oczywiscie ze robie wciecia tak aby wszystko bylo czytelne. Rano jak wejde to pokaze przyklad moich niepewnosci jesli chodzi o znaki biale w pythonie, najpewniej sie myle i moje watpliwosci sa niesluszne, no ale moze komus kto ma podobne zagwozdki to pomoze w naprowadzeniu na poprawny tok myslowy :-)
@pejczi: Jak to mawia Raymond Hettinger, core-developer Pythona, petla for nikogo by nie dziwiła gdyby nazywała się foreach. No i czasem dziwi to, ze nie tworzy swojego scope'a, jak tutaj:
@pejczi: Co rozumiesz przez "klasyczny odpowiednik fora"? Iterowanie w C++ przez iteratory sprowadza się do foreacha. Klasyczny for (taki zależny od rozmiaru i indeksu iterującego po size_t - to co nazywasz "iteratorem" w pętli tak naprawdę nim nie jest) nie ma racji bytu we współczesnym programowaniu opartym o generatory/lazy evaluation, na którym opiera się bardzo duży arsenał użytecznych feature'ów Pythona.
@3denos mnie ubiegł, ale enumerate może być tym, czego szukasz. Odnośnik
@pejczi: i tu jest twój problem. Pisz w pliku, to będziesz widział co jest jak głęboko wcięte. Akurat jednym z założeń pythona jest to, żeby interpreter był maksymalnie prosty i składnia była jednoznaczna.
#programowanie #python
I nie widzę nic dziwnego w pętli for
Zastanawia mnie tylko jak wyglada latanie po tablicach dwuwymiarowych (tutaj listach) skoro jest problem z zagniezdzaniem.
Chodzi mi o budowe samej petli :
w c++ robilismy to w stylu
for(poczatek;koniec;iterator)
W pythonie jest cos w stylu
@pejczi: Nie występuje to zjawisko. Nie wiem czy Ty piszesz w notatniku, czy nie znasz zupełnie zasad składni Pythona, ale nie mam pojęcia o czym mówisz.
Ustaw sobie w IDE (?), żeby tabulator robił 4 spacje.
Jak nie wiesz jak zostanie zinterpretowany? Przecież wszystko jest jednoznaczne. Nawet nie ma problemu z dangling else, który trapi większość języków.
Rano jak wejde to pokaze przyklad moich niepewnosci jesli chodzi o znaki biale w pythonie, najpewniej sie myle i moje watpliwosci sa niesluszne, no ale moze komus kto ma podobne zagwozdki to pomoze w naprowadzeniu na poprawny tok myslowy :-)
...ale to chyba akurat nie jest az tak dziwne.
colors = ["red", "green", "blue"]
for i in range(0, len(colors)):
print(colors[i])
...ale jest to nieoptymalne i po prostu nieladne. Zamiast tego:
for color in colors:
print(color)
...jest duzo czytelniejsze i szybsze (zoptymalizowane w jezyku).
Jesli bardzo potrzebujesz bardzo indexu, to mozesz uzyć czegoś takiego jak enumerate:
for index, color in enumerate(colors):
print(index, color)
...ale nie znajdziesz dokładnie konstrukcji
@3denos mnie ubiegł, ale enumerate może być tym, czego szukasz. Odnośnik
W c++ nie formatujesz kodu? Nie wierze.
Co jest chaotycznego w petli for?
Twoim zdaniem dodanie kilkunastu znakow w postaci srednikow, nawiasow i innych dupereli sprawia, ze kod jrst czytelniejszy??
for i in range(10):
____print(j)
Czy moze:
for(ini i;i<size;i++)
{
std::cout<<costam[i]<<std::endl;
}
@pejczi: Wręcz odwrotnie, szczególnie zakładając, że nie jest Ci obca konstrukcja z cpp:
for (auto e:elements)
, która w .py jest zapisana jeszcze bardziej naturalnie:
for e in elements:
@pejczi: i tu jest twój problem. Pisz w pliku, to będziesz widział co jest jak głęboko wcięte.
Akurat jednym z założeń pythona jest to, żeby interpreter był maksymalnie prosty i składnia była jednoznaczna.
Jakie przydatne frameworki i biblioteki wypadałoby ogarnąć (znacie oprócz tego jakieś ciekawe ktore moglbym wykorzystac w analizie danych)?
Pycharm jest w sumie jedynym godnym polecenia, chyba że jesteś fanem notatnika z milionem wtyczek.
Z bibliotek numpy na to pandas i matplotlib na początku.