Smii Posted March 1, 2015 Share Posted March 1, 2015 (edited) Šis ir mans Eureka bļāviens šeit par savām pirmajām patstāvīgi sarakstītajām koda rindiņām. Neesiet skarbi, man tas nenācās viegli – te nebija kāda : zīme, te atkal atstarpe piemirsusies. Sapnis iemācīties programmēt man ir kopš kāda 10 gadu vecuma, kad kasešu magnetofona trūkuma dēļ tika dzenāts Basic pa krievu BK 0010 (vai taml.) Tad nu lūk, pēc divdesmit četriem gadiem es esmu nolēmis pabeigt iesākto un iemācīties to lietu. Pajautāju draugam ar ko sākt - viņš teica Python ūber alles. Tā nu arī sāku, pirms kāda mēneša. Šeit Un beidzot nolēmu kaut ko pats uzrakstīt. #Programma kas parbauda vai epasts ir derigs epasts = raw_input("Kads ir tavs epasts? ") def parbaude(epasts): et_skaits = 0 punktu_skaits = 0 for et_zime in epasts: if et_zime == "@": et_skaits = et_skaits + 1 if et_skaits > 1: derigums = False return False elif et_skaits < 1: derigums = False return False else: derigums = True if derigums == True: for punkts in epasts: if punkts == ".": punktu_skaits = punktu_skaits + 1 if punktu_skaits < 1: derigums = False return False if derigums == True: if len(epasts) < 6: derigums = False return False else: return True if parbaude(epasts) == True: print "Paldies, jusu epasts %s ir pienemts." % (epasts) else: print "Epasts nav derigs." Viss. Esmu runājis P.S. Sieva kaut kā nesaprot, par ko es visu dienu priecājos. Edited March 1, 2015 by Smii Link to comment Share on other sites More sharing options...
osscar Posted March 1, 2015 Share Posted March 1, 2015 nu malacis es BK laikos pat spēlītēs programmēju beisikā, bet kā man teica viens IT guru - cilvēks kurš māk beisiku nekad nebūs nopietns programmētājs -- un viņam ir taisnība. Pēc tam mācījos RTU C++...nu tas bija kā cita pasaule, bet to tā pa īstam neiebraucu jo visam apakšā beisiks ar savu primitīvismu Link to comment Share on other sites More sharing options...
aikoN Posted March 1, 2015 Share Posted March 1, 2015 Forši, bet Tava e-pasta validācija ir ļoti nepilnīga, piemēram nav pārbaude uz speciālajiem simboliem un atstarpēm, utt Kaut kad sen uzrakstīju T-SQL funkciju, kas validē epastu, sanāca diezgan gara. Labāk lietot reg-ex. Link to comment Share on other sites More sharing options...
M_J Posted March 1, 2015 Share Posted March 1, 2015 Vai tas bija domāts, ka ja grib kļūt par nopietnu programmētāju, beisiku nedrīkst mācīties, jo tas sačakarē visu domāšanu? Man Beisiks patika. Nu tāds vienkāršais, bez visādiem navarotiem, tāds, kā bija "Bekām". Ienāca prātā doma - interesanti, vai tagad tāds ir kaut kur pieejams? Labprāt ar tādu paspēlētos. Link to comment Share on other sites More sharing options...
osscar Posted March 1, 2015 Share Posted March 1, 2015 ir ir - uz windozes zem dosa darbināju. qbasic vai kaut kā tā. Jā sačakarējot pareizo domāšanu "bez variantiem" :-) Link to comment Share on other sites More sharing options...
Pirkss Posted March 1, 2015 Share Posted March 1, 2015 Ir ZX Spectrum emulatori uz PC. Link to comment Share on other sites More sharing options...
M_J Posted March 1, 2015 Share Posted March 1, 2015 Paldies! Pameklēšu. Interesanti, vai assemblers arī sačakarē domāšanu? Jo beisiks un assemmblers ir divas lietas, kas man tā īsti patīk, pārējās ar kurām esmu niekojies Delfi7, Java - kaut kā jau pieciest var, bet tām pirmajām pavisam cits smeķis. Link to comment Share on other sites More sharing options...
binary Posted March 1, 2015 Share Posted March 1, 2015 es BK laikos pat spēlītēs programmēju beisikā, bet kā man teica viens IT guru - cilvēks kurš māk beisiku nekad nebūs nopietns programmētājs -- un viņam ir taisnība. Kas tad skaitās "nopietns programmētājs"? Tāds, kurš prot bīdīt klucīšus un ne vella nejēdz no vēstures? Ja par ASM, tad man kaut kā baigi pietrūkst, ka bērnībā nav sanācis kārtīgi pakost ASM… Tiešām pietrūkst. Un nevis psiholoģiski pietrūkst, bet tīri praktiski 1 Link to comment Share on other sites More sharing options...
androidss Posted March 1, 2015 Share Posted March 1, 2015 nākamais solis varētu būt uztaisīt to pašu, bet izmantojot regex Link to comment Share on other sites More sharing options...
Vilx- Posted March 1, 2015 Share Posted March 1, 2015 Mhh, mana pirmā valoda bija QBasic. Laikam jau tad esmu neatgriezeniski sabojāts. Mans viedoklis - sāc ar ko gribi, programmēt var iemācīties ar visu. Protams, ir dažas valodas, ar kuru tas būs grūtāk, vai var iemācīties kaut kādus sliktus ieradumus - bet, beigu beigās, arī tas viss ir pupu mizas. 2 Link to comment Share on other sites More sharing options...
HIGH-Zen Posted March 1, 2015 Share Posted March 1, 2015 Forši, bet Tava e-pasta validācija ir ļoti nepilnīga, piemēram nav pārbaude uz speciālajiem simboliem un atstarpēm, utt Kaut kad sen uzrakstīju T-SQL funkciju, kas validē epastu, sanāca diezgan gara. Labāk lietot reg-ex. Nu tak cilvēks tikko sācis un jau ar pirmo helloworldu viņu grib iedzīt analīzes paralīzē ar visādām validācijām un regexiem. Priekš pirmajiem soļiem ir ļoti labi. Ieteiktu nesteidzīgi sākt lasīt kādas grāmatas, nu tur "A Byte of Python" vai ko tamlīdzīgu. Un paskatīties arī kaut ko par PySide vai wxPython, startam pietiks ar kādu tutorial. Varētu jau ieteikt arī paša Python tutorial iekš viņu help-a, bet tas milzīgs un dokumentācija viņiem ir nožēlojama. Labāk grāmata. Link to comment Share on other sites More sharing options...
Smii Posted March 1, 2015 Author Share Posted March 1, 2015 (edited) Ok, uz planšetnieka nesanāks precīzi nocitēt, bet aikoN uzkāpa uz dvēseles ar speciālajiem simboliem; un viņam ir taisnība. Tas man nedeva mieru visu vakaru, kamēr izdomāju. def burti(epasts): pareizie_burti = ["a","b","c","d","e","f","g","h","i","j","k","l", "m","n","o","p","r","s","t","u","v","z","q","x","w","_",".","@","y","-", "1","2","3","4","5","6","7","8","9","0"] epasts = epasts.lower() garums = len(epasts) for burts_epasta in epasts: for burts_salidzinasanai in pareizie_burti: if burts_epasta == burts_salidzinasanai: garums -= 1 #Tiek izslegti pareizie burti if garums == 0: #Jabut izslegtiem visiem burtiem. Ja kads palicis tas ir neatlauts jo nebija liste. return True else: return False Šis ir papildinājums aukšējam kodamPar xxx@yyy.zz validāciju – tas šobrīd ir par sarežģītu. Edited March 3, 2015 by Smii Link to comment Share on other sites More sharing options...
Smii Posted March 1, 2015 Author Share Posted March 1, 2015 Mana Otrajā kodā epasta strings ir jāpārvērš mazajos burtis, tas piemirsās Ieleja, paldies par optimizēšanu Link to comment Share on other sites More sharing options...
HIGH-Zen Posted March 1, 2015 Share Posted March 1, 2015 Par xxx@yyy.zz validāciju – tas šobrīd ir par sarežģītu. Pagaidi pāris dienas un būta frīki biedri tev visu nooptimizēs un izlaizīs tavu helloworldu tā, ka nākotnē varēsi droši to laist prodakšanā. ielejaVēl nav viss liekais atmests if parbaude(epasts) == True: print u"paldies, jūsu e-pasts {0} ir pieņemts".format(epasts) else: print u"e-pasts nav derīgs" Link to comment Share on other sites More sharing options...
Smii Posted March 1, 2015 Author Share Posted March 1, 2015 Izdomāju kā arī to xxx@yyy.zz noteikt. Jānosaka @ vieta epasta un tai jābūt lielākai par 0,jānosaka pēdējā punkta vieta un tai jābūt lielākai par @ vietu. Nu un pēdējam punktam jābūt vismaz 2 vietas no beigām. Izdomāju kā arī to xxx@yyy.zz noteikt. Jānosaka @ vieta epasta un tai jābūt lielākai par 0,jānosaka pēdējā punkta vieta un tai jābūt lielākai par @ vietu. Nu un pēdējam punktam jābūt vismaz 2 vietas no beigām. Link to comment Share on other sites More sharing options...
HTC Posted March 2, 2015 Share Posted March 2, 2015 Smii, malacis, papildus vēl vari uzlikt, lai pārbauda vai domēnim ieraksti mx reāli eksistē, lai nebūtu tā, ka pēterītis norāda jebkādu hostu un sūta spamu (dnspython modulis + http://stackoverflow.com/questions/4336849/mx-record-lookup-and-check) Pats arī lēnām mācos pitonu un uz doto momentu ir uztaisīts: a) apis, kas pieņem json postu un ģenerē xls ievērojot formatēšanu (šūnu apvienošanu ieskaitot), b) skripts, kas regulāri lasa teksta failus un saliek datus iekš db (līdzīgs skripts uztaisīts arī uz bash) Bet bļīn, ar to xls drukāšanu ***** ne pa jokam un domāju, ka šodien vēl to mocīšu augšā p.s. topika nosaukums gan tāds divdomīgs Link to comment Share on other sites More sharing options...
VIL Posted March 2, 2015 Share Posted March 2, 2015 (edited) Sapnis iemācīties programmēt man ir kopš kāda 10 gadu vecuma, kad kasešu magnetofona trūkuma dēļ tika dzenāts Basic pa krievu BK 0010 (vai taml.) Tad nu lūk, pēc divdesmit četriem gadiem es esmu nolēmis pabeigt iesākto un iemācīties to lietu. Pajautāju draugam ar ko sākt - viņš teica Python ūber alles. Tā turpināt! cilvēks kurš māk beisiku nekad nebūs nopietns programmētājs bulš*ts. Ja cilvēks taisa vajadzīgu softu, ko citi cilvēki ilgstoši izmanto un priecājas, tad autors ir nopietns programmētājs. Izmantotajai valodai nav nozīmes. P.S. Tikko iedomājos, ka excelī makrosus var rakstīt tikai tajā pašā nīstajā beisikā, Ko nu? Edited March 2, 2015 by VIL Link to comment Share on other sites More sharing options...
Smii Posted March 2, 2015 Author Share Posted March 2, 2015 te būs xxx@zzz.yy pārbaude def sintakse(epasts): n = 0 # @ skaititajs p = 0 # punktu skaititajs et_vieta = [] # @ novietojuma liste punkta_vietas = [] # . novietojumu liste garums = len(epasts) # teoretiski var nedefinet for et in epasts: n += 1 if et == "@": et_vieta.append(n) for dot in epasts: p += 1 if dot == ".": punkta_vietas.append(p) #parbaudam vai: # et nav aiz pedeja punkta # et nav pirma zime # pedejais punkts ir vismaz divas vietas pirms beigam #Siem visiem jabut ka True if max(punkta_vietas) > min(et_vieta) and min(et_vieta) > 1 and max(punkta_vietas) <= garums - 2: return True else: return False Saliekot šos visus trīs gabalus kopā sanāk itin korekta epasta formāta pārbaude Protams, ka to visu var saoptimizēt vienā funkcijā, tomēr man tas vairāk šobrīd ir elegants galvas mežģis algoritmu loģikā un labs praktiskais darbs lai atkārtotu vienkāršākās funkcijas, listes un to visu for / if pasākumu. Kāpēc tieši epasta pārbaude? Tādēļ, ka mani vienmēr ir interesējis algoritms, kā tiek pārbaudīts epasts. Šoreiz offline režīmā Link to comment Share on other sites More sharing options...
VIL Posted March 3, 2015 Share Posted March 3, 2015 un Excel makrosi pēc definīcijas ir kaut kāds "state of the art"? manuprāt tieši otrādi Tieši tā. Katrs trešais exceļa lietotājs prot rakstīt kaut kādus makrosus. Vai līdz ar šo prasmi tiek slēgtas durvis un nopietno cilvēku pasauli. Link to comment Share on other sites More sharing options...
binary Posted March 3, 2015 Share Posted March 3, 2015 Ja cilvēks taisa vajadzīgu softu, ko citi cilvēki ilgstoši izmanto un priecājas, tad autors ir nopietns programmētājs. Izmantotajai valodai nav nozīmes. Vai līdz ar šo prasmi tiek slēgtas durvis un nopietno cilvēku pasauli. Viena lieta - nopietns cilvēks. Pavisam cita - nopietns programmētājs. Lai cilvēku varētu dēvēt par labu, nopietnu programmētāju, nepietiek ar 1 "vajadzīgu softu". Tāds softs var būt vienkārši veiksmīga haļava - cilvēks gluži vienkārši pareizajā brīdī paveicis pareizo lietu. Vēl jo vairāk, ja tas ir kaut kāds "nišas produkts", kur cilvēks sabakstījis simtrindīti ar kaudzi memory leaku, kuri konkrētā cilvēku lokā nesagādā problēmas. Ja tādi "veiksmīgi" softi atkārtojas vēl un vēl, un vēl, tad jā, tad var sākt runāt par nopietnu programmētāju. Vai vismaz par veiksmīgu kaut kādas nozares entuziastu ar kaut kādām loģiskās domāšanas ievirzēm. Link to comment Share on other sites More sharing options...
nevertell Posted March 3, 2015 Share Posted March 3, 2015 Pitonā taču ir tik jaukas iebūvētās funkcijas, piemēram split(), filter un visas citas iebūvētās stringu funkcijas. Link to comment Share on other sites More sharing options...
Raimonds1 Posted March 3, 2015 Share Posted March 3, 2015 Nezinu, vai būs par tēmu - par darbu dalīšanu programmēšanā - kantoros, kas izstrādā programmas un sadarbībā starp pasūtītāju un programmetāju. Cik būtiski ir, iepazīstot valodas pamatus, iemācīties rakstīt labas uzdevumus programmētājam, lai uzreiz ir redzams, ko vajag sasniegt ar programmu. Link to comment Share on other sites More sharing options...
Smii Posted March 3, 2015 Author Share Posted March 3, 2015 (edited) nevertell, skaidrs ka ir daudzas funkcijas, par kurām es vēl pagaidām nezinu, kuras to visu izdara 1 rindiņā. Es arī neloju ilūzijas par sava koda unikalitāti Piemēram, man tikko pieleca, ka visu to pirmo koda gabalu var aizvietot ar diviem apgalvojumiem koda trašajā daļā if len(et_vieta) == 1 and \ len(punkta_vietas) >=1 # ievietots sintakses pārbaudē nočeko arī punktu un @ zīmju skaitu. Bet pirmkārt es izbaudu šo domāšanas procesu un otrkārt tas nostiprina manas zināšanas, konkrētās tikko apgūtās tēmās par booleāņiem, listiem, pašdefinētām funkcijām un vēl pāris lietām, kuras man latviski būs grūti formulēt. Nu tur for, if, else – kā tas viss strādā. Jo viens ir bakstīt tutoriālī ko tev liek, pilnīgi cits, mēģināt pašam ko izdomāt un uzkodēt no nulles, iztiekot vien ar to, kas pierakstīts kladītē. Vairāk es to epasta padarīšanu nemocīšu, apsolos epasts_v3.py kompī ir noseivots, lai stāv. Kādreiz ierāmēšu un pielikšu pie sienas. Edited March 3, 2015 by Smii 1 Link to comment Share on other sites More sharing options...
nevertell Posted March 3, 2015 Share Posted March 3, 2015 Es jau nemēģinu tevi atturēt no mācišanās, un jā, izprast forelseifus ir labi. Ja negribi, lai kāds kautko priekšā saka un gribi mācīties - checkio.com, kā reiz priekš pitonistiem. Link to comment Share on other sites More sharing options...
MarisO Posted March 3, 2015 Share Posted March 3, 2015 Kādreiz ierāmēšu un pielikšu pie sienas. tur nevar divus @ simbolus iebarot ? Link to comment Share on other sites More sharing options...
Smii Posted March 3, 2015 Author Share Posted March 3, 2015 Nevar Nevertell, bez priekšā teikšanas jau neiztikt. Tiesa gan pirmkārt jau priekšā pasaka google, visbiežāk stackoverflow topiku veidolā. Link to comment Share on other sites More sharing options...
binary Posted March 3, 2015 Share Posted March 3, 2015 Nākamais uzdevums - apgriezt tekstā otrādi visus vārdus… siamakāN smuvedzu - tzeirgpa ātsket idārto susiv …sudrāv Nu tas tā, ja pašam ideju trūkst Link to comment Share on other sites More sharing options...
bubu Posted March 4, 2015 Share Posted March 4, 2015 (edited) " ".join(x[::-1] for x in s.split(" ")) Ja trūkst ideju, tad var iet uz https://projecteuler.net/ un risināt visus uzdevumus pēc kārtas. Labs veids kā iemācīties jaunu valodu (ja uzdevumu jau ir risināti, bet citā valodā). Edited March 4, 2015 by bubu Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now