raivix95 Ierakstīts Jūnijs 10, 2022 Share Ierakstīts Jūnijs 10, 2022 (labots) Interesē grāmatas taustāmā formā par Python3 angļu valodā. Konkrēti par to, kā rakstāms 'truly pythonic' kods, par refaktoringu, par OOP. Respektīvi intermediate-advanced līmenis, bet var piedāvāt visu, kas ir. Interesē ieteikumi par to, kas labs un derīgs, bet jo īpaši ceru, ka kādam ir kāda lieka grāmatiņa, ko uzdāvināt, nopārdot, iemainīt. Nebaraties, ja vajadzēja tirgus sadaļā postot. Labots Jūnijs 10, 2022 - raivix95 Link to comment Share on other sites More sharing options...
AndrisBB Jūnijs 10, 2022 Share Jūnijs 10, 2022 Es drīzāk paskatītos kautkādus video kursus. Kautvai Linkedin Learning, tur netrūkst par visādām Python tēmām. https://www.linkedin.com/learning/topics/python Plural sight ar nav slikts, sen gan neko neesu tur skatijies. Link to comment Share on other sites More sharing options...
Mateushs Jūnijs 11, 2022 Share Jūnijs 11, 2022 On 6/10/2022 at 9:17 AM, raivix95 said: Interesē grāmatas taustāmā formā par Python3 angļu valodā. Konkrēti par to, kā rakstāms 'truly pythonic' kods, par refaktoringu, par OOP. Respektīvi intermediate-advanced līmenis, bet var piedāvāt visu, kas ir. Interesē ieteikumi par to, kas labs un derīgs, bet jo īpaši ceru, ka kādam ir kāda lieka grāmatiņa, ko uzdāvināt, nopārdot, iemainīt. Nebaraties, ja vajadzēja tirgus sadaļā postot. Ja gribi sākt apgūt programmēšanu ar Python, tad tas nav labākais veids, kā to darīt. Vispār, cik redzu Linux pasaulē, nozīmīgas programmas Python valodā pamazām tiek pārrakstītas uz C/C++. Programmas Python valodā darbojas lēnāk nekā tajā pašā C valodā rakstītās, turklāt, lai izpildītos Python skripts, sistēmā ir nepieciešams interpretators. Daudz jau Python tiek reklamēts kā valoda, kura palīdz viegli ieiet programmēšanā, taču ir redzēts, ka tiem, kuri sāka programmēšanas pamatus apgūt Python valodā, pēc tam ir nopietnas problēmas saprast citkārt elementāras lietas programmēšanā. Ne velti saka, ka pirmajai valodai, ar ko sāk apgūt programmēšanu, ir liela nozīme. Saka, ka Python sabojā domāšanu... 1 Link to comment Share on other sites More sharing options...
AndrisBB Jūnijs 11, 2022 Share Jūnijs 11, 2022 Pa lielam viss kaut cik resursu prasīgais Pitonā tāpat ir implementēts iekš C. Tik cik Pitons izsauc C funkcijas. Skaidrs ka ja sāks kārtot mega datu daudzumus tīri Pitonā, tad tas būs daudz lēnāk. Bet savādāk nekādas lielās starpības nebūs. Link to comment Share on other sites More sharing options...
raivix95 Jūnijs 11, 2022 Author Share Jūnijs 11, 2022 (labots) pirms 6 stundām , Mateushs teica: Ja gribi sākt apgūt programmēšanu ar Python, tad tas nav labākais veids, kā to darīt. Vispār, cik redzu Linux pasaulē, nozīmīgas programmas Python valodā pamazām tiek pārrakstītas uz C/C++. Programmas Python valodā darbojas lēnāk nekā tajā pašā C valodā rakstītās, turklāt, lai izpildītos Python skripts, sistēmā ir nepieciešams interpretators. Daudz jau Python tiek reklamēts kā valoda, kura palīdz viegli ieiet programmēšanā, taču ir redzēts, ka tiem, kuri sāka programmēšanas pamatus apgūt Python valodā, pēc tam ir nopietnas problēmas saprast citkārt elementāras lietas programmēšanā. Ne velti saka, ka pirmajai valodai, ar ko sāk apgūt programmēšanu, ir liela nozīme. Saka, ka Python sabojā domāšanu... pirms 4 stundām , AndrisBB teica: Pa lielam viss kaut cik resursu prasīgais Pitonā tāpat ir implementēts iekš C. Tik cik Pitons izsauc C funkcijas. Skaidrs ka ja sāks kārtot mega datu daudzumus tīri Pitonā, tad tas būs daudz lēnāk. Bet savādāk nekādas lielās starpības nebūs. Python māku un jau citiem mācu. Bet gribās tīri palasīties par dziļākām niansēm, mainīgo scopiem, lambda funkcijām, list comprehensioniem, refaktoringu, atmiņas menedžmentu un tādām lietām. Zinu labus resursus internetā, bet gribās kādu grāmatu krājumā, ko varētu pašam palasīties un kā uzskates materiālu izmantot apmācībā. Un, starp citu, Python 3.11 versijā ātrdarbība būs uzlabota par 10-60%. Un arguments, ka Python nav laba 1. progr. valoda man nav saprotams. Pats kā pirmo ieraudzīju C++, bet tas ir ilgais ceļš kāpās. Tur pat ar elementāru uzdevumu noķēpājies līdz ausīm, sēdi un prāto, kāpēc kods nekompilējas, kādā brīdī viss aiziet, bet pats nesaproti, kāpēc. Python ir lieliska valoda. Viegli lasāma, iesācējam draudzīga, ar lielu community un bibliotēku bāzi. Labots Jūnijs 11, 2022 - raivix95 1 1 Link to comment Share on other sites More sharing options...
zeds Jūnijs 11, 2022 Share Jūnijs 11, 2022 Pirms 43 minūtēm , raivix95 teica: Python māku un jau citiem mācu. Bet gribās tīri palasīties par dziļākām niansēm, mainīgo scopiem, lambda funkcijām, list comprehensioniem, refaktoringu, atmiņas menedžmentu un tādām lietām. Zinu labus resursus internetā, bet gribās kādu grāmatu krājumā, ko varētu pašam palasīties un kā uzskates materiālu izmantot apmācībā. Un, starp citu, Python 3.11 versijā ātrdarbība būs uzlabota par 10-60%. Un arguments, ka Python nav laba 1. progr. valoda man nav saprotams. Pats kā pirmo ieraudzīju C++, bet tas ir ilgais ceļš kāpās. Tur pat ar elementāru uzdevumu noķēpājies līdz ausīm, sēdi un prāto, kāpēc kods nekompilējas, kādā brīdī viss aiziet, bet pats nesaproti, kāpēc. Python ir lieliska valoda. Viegli lasāma, iesācējam draudzīga, ar lielu community un bibliotēku bāzi. Tādas vienas grāmatas īsti nav laikam. Pats pašlaik lasu un varu rekomendēt "Data Structures & Algorithms in Python". Michael T.Goodrich , Roberto Tamassia, Michael H. Goldwasser. No grāmatām ko izlasīt man ir ieteikuši citi "Real Python" un "Automate Boring Stuff with Python". 1 Link to comment Share on other sites More sharing options...
raivix95 Jūnijs 12, 2022 Author Share Jūnijs 12, 2022 pirms 9 stundām , zeds teica: Pats pašlaik lasu Lasi digitālā formātā? pirms 9 stundām , zeds teica: "Automate Boring Stuff with Python". Par šo esmu dzirdējis, ka esot laba Link to comment Share on other sites More sharing options...
binary Jūnijs 12, 2022 Share Jūnijs 12, 2022 (labots) pirms 23 stundām , raivix95 teica: Python māku un jau citiem mācu. Tiem, kam māci, neaizmirsti ielikt eksāmenā jautājumu, kāds te rezultāts būs (pats gan jau zini pareizo atbildi, ja jau Python māki ): result = False == False in [False] Labots Jūnijs 12, 2022 - binary 1 1 Link to comment Share on other sites More sharing options...
raivix95 Jūnijs 12, 2022 Author Share Jūnijs 12, 2022 pirms 1 stundas , binary teica: Tiem, kam māci, neaizmirsti ielikt eksāmenā jautājumu, kāds te rezultāts būs (pats gan jau zini pareizo atbildi, ja jau Python māki ): result = False == False in [False] False in [False] ir True False == True ir False result = False Pareizi? Link to comment Share on other sites More sharing options...
AndrisBB Jūnijs 12, 2022 Share Jūnijs 12, 2022 Pareizi, nekā jau tur īpaši viltīga tanī piemērā nav. Varbū vienīgi uz pārsteigumu var pārbaudīt programmētājus. Domās ka nevar būt tik vienkārši, tāpēc sāks šaubīties Link to comment Share on other sites More sharing options...
binary Jūnijs 13, 2022 Share Jūnijs 13, 2022 (labots) pirms 7 stundām , raivix95 teica: Pareizi? Nepareizi. >>> result = False == False in [False] >>> result True Tas tev nav C, kurā "jādomā" būtu apmēram tā, kā uzrakstīji. pirms 7 stundām , AndrisBB teica: Varbū vienīgi uz pārsteigumu var pārbaudīt programmētājus. Domās ka nevar būt tik vienkārši, tāpēc sāks šaubīties Ja sāks šaubīties, tad pareizi vien būs. Pārbaude te ir nevis "uz pārsteigumu", bet uz Python mācēšanu Labots Jūnijs 13, 2022 - binary Link to comment Share on other sites More sharing options...
TOoMoOT Jūnijs 13, 2022 Share Jūnijs 13, 2022 Nezināju, ka Python tā uzvedās. Tādas nianses ir labi zināt, bet izmantot būtu slikta prakse, jo vēlāk lasot kodu tas jauks gaisu. Skaidrojums: source: https://stackoverflow.com/questions/34163067/why-does-false-false-in-false-return-true Link to comment Share on other sites More sharing options...
binary Jūnijs 13, 2022 Share Jūnijs 13, 2022 (labots) Pirms 26 minūtēm , TOoMoOT teica: Tādas nianses ir labi zināt, bet izmantot būtu slikta prakse, jo vēlāk lasot kodu tas jauks gaisu. Jā un nē. Slikta prakse - ja projektā var strādāt cilvēki, kas "neprot" python. Laba prakse - ja projektā strādā cilvēki, kas pārāk tendēti uz "pythonic" koda rakstīšanu. Es droši vien izvairītos no tādu konstrukciju rakstīšanas. Tas pats attiecas arī uz citām valodām (šobrīd - Perl) - valodas fīčas ir labi zināt, bet ja kaut ko var uzrakstīt "C stilā" vai "specifiskās valodas stilā", tad cenšamies pieturēties pie "C stila", ja vien "specifiskās valodas stils" nedod būtisku ieguvumu. Pēc dokumentācijas spriežot, lai arī rezultāts "(x == y) and (y in [z])" un "x == y in [z]" izteiksmēm ir identisks, tehniski tomēr ir atšķirības - "except that y is evaluated only once", attiecīgi arī ātrdarbība varētu atšķirties: >>> import dis >>> def f1(a,b,c): return a == b in [c] ... >>> def f2(a,b,c): return (a == b) and (b in [c]) ... >>> dis.dis(f1) 1 0 LOAD_FAST 0 (a) 2 LOAD_FAST 1 (b) 4 DUP_TOP 6 ROT_THREE 8 COMPARE_OP 2 (==) 10 JUMP_IF_FALSE_OR_POP 10 (to 20) 12 LOAD_FAST 2 (c) 14 BUILD_TUPLE 1 16 CONTAINS_OP 0 18 RETURN_VALUE >> 20 ROT_TWO 22 POP_TOP 24 RETURN_VALUE >>> dis.dis(f2) 1 0 LOAD_FAST 0 (a) 2 LOAD_FAST 1 (b) 4 COMPARE_OP 2 (==) 6 JUMP_IF_FALSE_OR_POP 8 (to 16) 8 LOAD_FAST 1 (b) 10 LOAD_FAST 2 (c) 12 BUILD_TUPLE 1 14 CONTAINS_OP 0 >> 16 RETURN_VALUE >>> Labots Jūnijs 13, 2022 - binary Link to comment Share on other sites More sharing options...
AndrisBB Jūnijs 13, 2022 Share Jūnijs 13, 2022 Realitāte jau ir tāda, ka tādu kodu neviens nerakstītu. Uzrakstītu result = False in [False] Pirms 57 minūtēm , TOoMoOT teica: Skaidrojums: Stack overflow reizēm nav tā vieta kam ticēt skaidrojumiem. Ja tā būtu taisnība False == False in [False] is evaluated as (False == False) and (False in [False]) Tad pēc tās pašas loģikas False in [False] == False vajadzētu būt (False in [False]) and (False == False) Bet tur rezultāts ir pretējs Link to comment Share on other sites More sharing options...
TOoMoOT Jūnijs 13, 2022 Share Jūnijs 13, 2022 Pirms 15 minūtēm , AndrisBB teica: Tad pēc tās pašas loģikas False in [False] == False vajadzētu būt (False in [False]) and (False == False) Nē, pēc tās pašas loģikas sanāk: (False in [False]) and ([False] == False) Tāpēc arī attiecīgi rezultāts cits 1 stundu atpakaļ, binary teica: Slikta prakse - ja projektā var strādāt cilvēki, kas "neprot" python. Laba prakse - ja projektā strādā cilvēki, kas pārāk tendēti uz "pythonic" koda rakstīšanu. Kādā utopijā tu dzīvo? Link to comment Share on other sites More sharing options...
AndrisBB Jūnijs 13, 2022 Share Jūnijs 13, 2022 Te jēdzīgāks izskaidrojums https://www.geeksforgeeks.org/chaining-comparison-operators-python/ Pa lielam jau ja kāds tēlotu pārāk lielu 'gudro' un sāktu rakstīt kodu kā pieminētais, kur liela daļa vēlāko labotāju var iekrist, tad pirmajā piegājienā visdrīzāk es liktu viņam izlabot. Vai ja man slikts garastāvokis un tāds kods ir izraisījis kādas reālas problēmas, tad dabūtu brīdinājumu. Parasti jau iesācējiem patīk tā dudroties un demonstrēt savas zināšanas nebūtiskos sīkumos. 1 Link to comment Share on other sites More sharing options...
binary Jūnijs 13, 2022 Share Jūnijs 13, 2022 (labots) 1 stundu atpakaļ, AndrisBB teica: Realitāte jau ir tāda, ka tādu kodu neviens nerakstītu. Uzrakstītu result = False in [False] Nu neviens arī nerakstītu "False in [False]", vērtības ņemtu no mainīgajiem vai funkciju izsaukumiem. Tikpat labi tā izteiksme varēja būt "0 < func(a,b,c)<= 1", kurai ir pilnīgi normāli use cases. Sanāk arī daudz lasāmāk nekā piešķirt tā func(a,b,c) rezultātu mainīgajam, pēc tam rakstīt "(0 < smth) and (smth <= 1)". Pirms 54 minūtēm , TOoMoOT teica: Kādā utopijā tu dzīvo? Kādā ziņā? Pirms 14 minūtēm , AndrisBB teica: Parasti jau iesācējiem patīk tā dudroties un demonstrēt savas zināšanas nebūtiskos sīkumos. Tikpat labi varētu teikt, ka SQL nedrīkst izmantot "BETWEEN", obligāti jāraksta C stilā. Labots Jūnijs 13, 2022 - binary Link to comment Share on other sites More sharing options...
AndrisBB Jūnijs 13, 2022 Share Jūnijs 13, 2022 Nav ne jausmas par SQL, bet ja tur sanāk tāda pati gudrošanās, tad neviens nebūtu priecīgs par tādu kodu. Pirms 13 minūtēm , binary teica: Nu neviens arī nerakstītu "False in [False]", vērtības ņemtu no mainīgajiem vai funkciju izsaukumiem. Nu tā liste jau var būt aizpildīta, kur citur. Link to comment Share on other sites More sharing options...
binary Jūnijs 13, 2022 Share Jūnijs 13, 2022 (labots) Pirms 10 minūtēm , AndrisBB teica: Nav ne jausmas par SQL, bet ja tur sanāk tāda pati gudrošanās, tad neviens nebūtu priecīgs par tādu kodu. SQL - "x between a and b" Python - "a <= x <= b" C - "x >= a && x <= b" Faktiski viens un tas pats, tikai dažādās valodās. Ja neproti SQL, tad jā, sanāk "tāda pati gudrošanās". Bet tie, kas prot SQL, nebūtu priecīgi, ja kāds tur sāktu bāzt C "pieeju". P.S. Autors interesējās par "truly pythonic". Ja atmiņa neviļ, tad "pythonic" pieeja nereti atšķiras no "klasikas". Labots Jūnijs 13, 2022 - binary 1 Link to comment Share on other sites More sharing options...
TOoMoOT Jūnijs 13, 2022 Share Jūnijs 13, 2022 Pirms 4 minūtēm , binary teica: Pirms 54 minūtēm , TOoMoOT teica: Kādā utopijā tu dzīvo? Kādā ziņā? Tu principā uzrakstīji, ka labā prakse ir viszinoši developeri un sliktā prakse ir developeri, kas nezina visu Labās prakses parasti ir specifiskākas un uz konkrētiem keisiem. 100x esmu lasījis labajās praksēs, ka nevajag lietot saīsinātus pierakstus, ja tie prasa ilgāku lasīšanu nekā garāks pieraksts un palielina kļūdīšanās iespēju (arī citiem devloperiem). 1.) Cik bieži ir tā, ka projektā visi developeri ir tieši uz Python orientēti? Ja no pythonic sintakses nav ieguvums, tad labāk rakstīt tā, lai arī Javascript Seniors kodu var izlasīt bez pārpratumiem. 2.) Cik bieži realitātē, komandā visi ir tip-top developeri? Atgādinu, ka runāju, konkrēti par "comparisson chaining". Manuprāt, tas bezjēdzīgs saīsinājums, kas var sagādāt galvassāpes komandai. Esmu redzējis demo ar tiešām foršiem "pythonic way" piemēriem, kurus ir labi zināt. ComparisonChaining tur neredzēju Pirms 4 minūtēm , binary teica: SQL - "x between a and b" Ja neproti SQL, tad jā, sanāk "tāda pati gudrošanās". Bet tie, kas prot SQL, nebūtu priecīgi, ja kāds tur sāktu bāzt C "pieeju". BETWEEN ir savādāk, jo to tāpat sapratīs visi, kas lasa to SQL. Link to comment Share on other sites More sharing options...
binary Jūnijs 13, 2022 Share Jūnijs 13, 2022 Pirms 1 minūtes , TOoMoOT teica: Tu principā uzrakstīji, ka labā prakse ir viszinoši developeri un sliktā prakse ir developeri, kas nezina visu Labās prakses parasti ir specifiskākas un uz konkrētiem keisiem. Nē nē, tas, ko rakstīju - ja projektā strādā cilvēki, kam python nav "dzimtā valoda", tad tādu "pythonic" fīču izmantošana būtu slikta prakse. Nu kā piemērs - reiz strādāju uzņēmumā, kam visādi iekšējie rīki bija rakstīti pythonā (scons, visādas validācijas, procesu automatizācijas utt), bet python bija izvēlēts tīri kā ērta cross platform scripting valoda tādu lietu veikšanai. Tur jebkurš C, C++, C# developeris varēja kaut ko pielabot, kaut ko pievienot, īpaši neiespringstot python niansēs. Savukārt ja projektā strādā python guru, produkts viscaur ir rakstīts pythonā, tad pythonic fīču izmantošana ir ļoti OK prakse. Pirms 7 minūtēm , TOoMoOT teica: 1.) Cik bieži ir tā, ka projektā visi developeri ir tieši uz Python orientēti? Atkarīgs no produkta. Laiku pa laikam gadās redzēt sludinājumus, kur Python ir nevis kā palīgvaloda, bet kā galvenā/vienīgā nepieciešamā valoda. Pirms 6 minūtēm , TOoMoOT teica: 2.) Cik bieži realitātē, komandā visi ir tip-top developeri? Diemžēl ļoti reti Pirms 9 minūtēm , TOoMoOT teica: BETWEEN ir savādāk, jo to tāpat sapratīs visi, kas lasa to SQL. Savādāk, un tomēr - tāpat. Visi nesapratīs. Šad tad sanāk rakstīt SQL, bet man pat tā komentāra rakstīšanas laikā vajadzēja googlēt, ko tad tas "between" nozīmē - a < b < c, a < b <= c vai a <= b <= c. Un nākas to darīt (t.i., googlēt) katru reizi, kad to "between" kaut kur jāpielieto. 1 Link to comment Share on other sites More sharing options...
AndrisBB Jūnijs 13, 2022 Share Jūnijs 13, 2022 Nu es ikdienā lasu/rakstu vismaz 5 valodās. Sīkumos nezinu nevienu. Ja kādu arī izpētu līdz sīkumiem, tad tāpat pēc mēneša jau aizmirst. Pa lielam jau sanāk fokusēties uz to ko vēlas panākt, nevis tur čakaratēs ar valodas sīkumiem. 1 Link to comment Share on other sites More sharing options...
raivix95 Jūnijs 13, 2022 Author Share Jūnijs 13, 2022 1 stundu atpakaļ, TOoMoOT teica: Tu principā uzrakstīji, ka labā prakse ir viszinoši developeri un sliktā prakse ir developeri, kas nezina visu Labās prakses parasti ir specifiskākas un uz konkrētiem keisiem. 100x esmu lasījis labajās praksēs, ka nevajag lietot saīsinātus pierakstus, ja tie prasa ilgāku lasīšanu nekā garāks pieraksts un palielina kļūdīšanās iespēju (arī citiem devloperiem). 1.) Cik bieži ir tā, ka projektā visi developeri ir tieši uz Python orientēti? Ja no pythonic sintakses nav ieguvums, tad labāk rakstīt tā, lai arī Javascript Seniors kodu var izlasīt bez pārpratumiem. 2.) Cik bieži realitātē, komandā visi ir tip-top developeri? Atgādinu, ka runāju, konkrēti par "comparisson chaining". Manuprāt, tas bezjēdzīgs saīsinājums, kas var sagādāt galvassāpes komandai. Esmu redzējis demo ar tiešām foršiem "pythonic way" piemēriem, kurus ir labi zināt. ComparisonChaining tur neredzēju BETWEEN ir savādāk, jo to tāpat sapratīs visi, kas lasa to SQL. Ilgāka lasīšana, bet ātrāka darbība. Tas pats īsais if strādā ātrāk par garo variantu. Protams, ne visur īso var pielietot. Link to comment Share on other sites More sharing options...
binary Jūnijs 13, 2022 Share Jūnijs 13, 2022 (labots) Starp citu, par to comparison chaining - pat ja to neizmanto, tāpat ir vērts zināt, lai nesanāk šādi: >>> a = 3 >>> l = [3, 5] >>> if a in l == True: ... print("yeah") ... else: ... print("nope") ... nope Nu… It kā tak pilnīgi normāla izteiksme (nēnu piekrītu, salīdzināt ar True ir tā mazliet jocīgi ), tikai rezultāts tāds, ka nezinātājs var trīs dienas notriekt, lai atrastu bugu, un pēc tam vēl pusi dienas, lai izdomātu, kāpēc tā. Labots Jūnijs 13, 2022 - binary Link to comment Share on other sites More sharing options...
raivix95 Jūnijs 13, 2022 Author Share Jūnijs 13, 2022 (labots) Pirms 22 minūtēm , binary teica: Starp citu, par to comparison chaining - pat ja to neizmanto, tāpat ir vērts zināt, lai nesanāk šādi: >>> a = 3 >>> l = [3, 5] >>> if a in l == True: ... print("yeah") ... else: ... print("nope") ... nope Nu… It kā tak pilnīgi normāla izteiksme (nēnu piekrītu, salīdzināt ar True ir tā mazliet jocīgi ), tikai rezultāts tāds, ka nezinātājs var trīs dienas notriekt, lai atrastu bugu, un pēc tam vēl pusi dienas, lai izdomātu, kāpēc tā. (a in l) ieliekam iekavās un viss ir citādi 1 stundu atpakaļ, AndrisBB teica: Nu es ikdienā lasu/rakstu vismaz 5 valodās. Sīkumos nezinu nevienu. Ja kādu arī izpētu līdz sīkumiem, tad tāpat pēc mēneša jau aizmirst. Pa lielam jau sanāk fokusēties uz to ko vēlas panākt, nevis tur čakaratēs ar valodas sīkumiem. Mazo viltību zināšana ļauj labāk izprast, kā valoda strādā under-the-hood. Reālā darbā tam, protams, nav nozīmes, bet man ieslēdzies azarts izzināt pythonu. Labots Jūnijs 13, 2022 - raivix95 Link to comment Share on other sites More sharing options...
AndrisBB Jūnijs 13, 2022 Share Jūnijs 13, 2022 Pitonā jau tāpat neko īpaši kritisku nerakstam. Vairāk kautkādus augstāka līmeņa skriptus utt, kur performance ir faktiski nebūtisks faktors. Tur sīkumu zināšana vai nezināšana nekādu lielo lomu nespēlē. Pārsvarā jau vecais labais C visur, šur tur C+, kur no tā jēga. Link to comment Share on other sites More sharing options...
binary Jūnijs 13, 2022 Share Jūnijs 13, 2022 Pirms 6 minūtēm , raivix95 teica: Reālā darbā tam, protams, nav nozīmes, bet (..) (..) bet esmu strādājies pie "nereālā projekta" kur tieši kaut kādas nebūt "under the hood" zināšanas ļāva pythonā rakstītu projektu pielāgot tam, lai developmenta laikā nebūtu pēc katrām izmaiņām visus procesus jārestartē, lai notestētu veiktās izmaiņas. Ieguvums developēšanas ērtībai un ātrumam - vismaz desmitkārtīgs. Pirms 1 minūtes , AndrisBB teica: Pitonā jau tāpat neko īpaši kritisku nerakstam. Vairāk kautkādus augstāka līmeņa skriptus utt, kur performance ir faktiski nebūtisks faktors. Jūs nerakstāt, citi raksta. Link to comment Share on other sites More sharing options...
AndrisBB Jūnijs 13, 2022 Share Jūnijs 13, 2022 Pirms 13 minūtēm , binary teica: Jūs nerakstāt, citi raksta. Nu tur jau tas āķis. Ja kāds raksta tādu kodu 'iekšējai' lietošanai, tad OK. Bet ja kods tiek rakstīts priekš klienta, tad tā jau ir problēma. Link to comment Share on other sites More sharing options...
raivix95 Jūnijs 14, 2022 Author Share Jūnijs 14, 2022 Grāmatā "Fluent Python" uzdūros piemēram, kas nedaudz mulsina Klases 2. rindā tiek izmantota split() metode stringam. Vai saprotamāk un lasāmāk nebūtu definēt uzreiz sarakstu ar 4 elementiem? Vai tiešām šāds īpatnējs piegājiens ir pythonic stils? Varbūt @binary mācēs atbildēt. Link to comment Share on other sites More sharing options...
AndrisBB Jūnijs 14, 2022 Share Jūnijs 14, 2022 Pirms 19 minūtēm , raivix95 teica: pythonic stils? Tas tapēc ka Pitonismā smukāks kods ir reizēm svarīgāks par ātrāku kodu. Tāpat arī to 'Ranks' būtu effektīvāk uzrakstīt kā listi uzreiz, nevis tur ciklu taisīt Link to comment Share on other sites More sharing options...
AndrisBB Jūnijs 14, 2022 Share Jūnijs 14, 2022 Var jau būt ka Pitons tos klases līmeņa mainīgos atrisina pirms palaiž kodu, kad reģistrē klasi un tad run-timā nav starpības. Link to comment Share on other sites More sharing options...
zeds Jūnijs 14, 2022 Share Jūnijs 14, 2022 raivix: Varbūt autors vienkārši gribēja prikolīgu paņēmienu parādīt mācību nolūkiem. Tad jā. Citādi nepitoniski, neglīti un bezjēdzīgi. Link to comment Share on other sites More sharing options...
raivix95 Jūnijs 14, 2022 Author Share Jūnijs 14, 2022 pirms 1 stundas , AndrisBB teica: Tas tapēc ka Pitonismā smukāks kods ir reizēm svarīgāks par ātrāku kodu. Tanī pat laikā 'The Zen of Python' saka, ka Practicality beats purity Link to comment Share on other sites More sharing options...
binary Jūnijs 14, 2022 Share Jūnijs 14, 2022 pirms 2 stundām , raivix95 teica: Vai tiešām šāds īpatnējs piegājiens ir pythonic stils? Varbūt @binary mācēs atbildēt. @binary neprot pitonu un nemācēs atbildēt stackoverflowā kā arguments split() lietošanai minēts, ka garāku stringu gadījumā variants ar split() būtu īsāks un lasāmāks. Varbūt grāmatas autors tā pieradis rakstīt. Šķita, varbūt split() varētu būt ātrāks - tur tomēr sanāk veidot vienu python stringu, savukārt pats split() varētu būt implementēts kādā ātrākā valodā. Bet ar 4 vērtībām tomēr split() ir ~2x lēnāks, vismaz uz 3.10. >>> import dis >>> import timeit >>> >>> def f1(): l = 'spades diamonds clubs hearts'.split() ... >>> def f2(): l = ['spades', 'diamonds', 'clubs', 'hearts'] ... >>> print(timeit.timeit('f1()', setup='from __main__ import f1')) 0.11569541800417937 >>> print(timeit.timeit('f2()', setup='from __main__ import f2')) 0.06425718698301353 >>> >>> dis.dis(f1) 1 0 LOAD_CONST 1 ('spades diamonds clubs hearts') 2 LOAD_METHOD 0 (split) 4 CALL_METHOD 0 6 STORE_FAST 0 (l) 8 LOAD_CONST 0 (None) 10 RETURN_VALUE >>> dis.dis(f2) 1 0 BUILD_LIST 0 2 LOAD_CONST 1 (('spades', 'diamonds', 'clubs', 'hearts')) 4 LIST_EXTEND 1 6 STORE_FAST 0 (l) 8 LOAD_CONST 0 (None) 10 RETURN_VALUE >>> Tīri no praktiskā viedokļa, korektāk laikam būtu izmantot tupli: >>> def f3(): l = ('spades', 'diamonds', 'clubs', 'hearts') ... >>> print(timeit.timeit('f3()', setup='from __main__ import f3')) 0.03993227900355123 >>> >>> dis.dis(f3) 1 0 LOAD_CONST 1 (('spades', 'diamonds', 'clubs', 'hearts')) 2 STORE_FAST 0 (l) 4 LOAD_CONST 0 (None) 6 RETURN_VALUE Vēl variants - varbūt autors vienkārši gribēja pēc iespējas īsākā koda gabalā parādīt pēc iespējas vairāk veidu, kā pitonā var izveidot dažādas kolekcijas. Link to comment Share on other sites More sharing options...
Recommended Posts