DavidErikMollberg/kennsluromur huggingface dataset:
Það er að segja að maður leysi vandamálið í huganum eða maður getur til dæmis bara leyst það á pappír skrifað niður lausnaraðferðina á pappír eða haft hana í huga áður en maður byrjar að setjast niður og skrifa forrit til þess að sem útfærir lausnina og punktur númer tvö Að forrit er einhvers konar ritgerð um lausn á tilteknu vandamáli
Það er enginn forritari svo góður að hann geti búið til villulaus forrit alltaf það eru ýmis konar sérstök tilfelli sem koma upp í forritun sem er erfitt að sjá fyrir og það er oft í þeim sem að villur koma inn
Ja prentum bara hérna i ið í sérhverri ítrun í lykkjunni til að sjá hvaða gildi eru á i
Og þá fæ ég einn tveir þrír og fjórir
Hver er summan á þessum tímapunkti
Og þegar ég er búinn að fara að segja step over þá sjáum við að the sum er einmitt orðið einn
Það er orðið tveir það er næsta gildi í þessu bili eða þessu range
Ég gæti vissulega sagt step over ég get líka sagt hérna bara continue
Já fyrirgefið ég sko ég er ekki búinn að keyra núna þessa setningu
Segjum að ég eigi hérna bara fall sem heitir series sum
Það reiknast út einhver summa samkvæmt einhverri formúlu hérna og svo skilast summan hérna til baka úr fallinu
Nú til þess að reyna að finna út hvað er í gangi hér
Og ég slæ inn fimm þá sjáum við takið eftir því ég lendi þá inni í þessu falli hérna
Þannig að það var kannski hér á þessum tímapunkti sem að ég átta mig á því að ég hef gert hérna villu og þá gæti ég bara haldið áfram sagt continue og leyfa þessu að klára farið hér inn og sagt já þetta á einmitt að vera plús einn hérna og tekið þar með þennan break punkt af
Ég þarf í sjálfu sér ekki taka hann af ef ég vil prófa þetta aftur við skulum hafa hann aðeins inni keyrum bara debug hérna
Hvernig við lesum inn gögn um hvernig við skrifum út gögn
Sem er einmitt alltaf gott áður en maður byrjar að forrita
Þetta fall það bara opnar skrá skilar file objectinu sem stendur fyrir þessa skrá
Það er að segja þegar við tölum um svona file object
Við skulum bara þó að þetta heiti read file þá prentar þetta líka út viðkomandi línu af því mig langar mig til að sýna hvernig þetta virkar hérna í praxís
Nei ég gleymi að opna
jú það var data punktur t x t og hérna kemur eitthvert úttak má ég sjá sjáiði
Þannig að breytan line hún fær hérna einhvern röð þannig einhverja röð að stöfum
Þannig að það sem ég gæti gert hér er að segja breytum þessari línu hérna með því að kalla á fall sem heitir stripp
Þannig ég kalla á strip strikt skilar takið eftir við köllum á split fallið í line
Að eiga hérna eitthvað sem heitir bara out hvað eigum við að kalla þetta outfile eða out object
Read file og þannig að ég gæti svo sem read file and output sem sagt lesum skrá og skrifum og breytum þessu bara hérna read file and output þá hefur þetta aðeins stærra hlutverk en ég mundi vilja láta liggja milli hluta núna
Þannig ég er að fá out object hér líka og þegar ég er búinn að strippa hérna línuna þá prenta í línuna á skjáinn en get jafnframt prentað hana með því að segja line og hvað þarf ég að segja hér nú þarf ég hreinlega bara að fletta því upp vegna þess ég man ekki alveg já maður segir hér að það er nefnilega parameter sem heitir file
Í þessum fyrirlestri ætla ég að ræða um if setningar og bool segðir
Já það er true
Ég er að veita breytunni a gildið sjö semsagt það er segð hægra megin tveir plús fimm þetta er reikningssegð
Þegar ég ætla hins vegar að bera saman gildi á einhverju tvennu þá gæti ég til dæmis sagt hérna
Og ef við kannski tökum dæmi
Ég ætla að opna hérna búa til nýja skrá og ætla að skrifa hérna lítið forrit Segjum sem svo að ég ætla að taka tölu af
breytt þessum streng sem kemur út úr input inu yfir í integer
er ég kominn með integer inn í breytuna sem ég kalla num
þá fer Idle sjálfkrafa eða dregur Idle sjálfkrafa kóðann minn inn takið eftir því að hann setur hann núna
Keyri þetta input a number ef ég slæ inn núll núna þá fæ ég zero já ef ég keyri þetta aftur og slæ inn núna einn þá fæ ég not zero
Þannig að þetta er leiðin með if setningum getum við stýrt flæði í gegnum forritið undir einhverjum vissum skilyrðum
eitthvað eins og sjö þá fæ ég something else
í getum við sagt þrjár greinar hérna er fyrsta greinin eða fyrsta skilyrðið annað skilyrði þegar að num er samasem einn
Ég var að bæta við hérna skilyrðum hvað ef þetta er tveir þannig að ef ég slæ inn tvo hérna þá fæ ég einmitt two
Annars vegar er það þessi hér num samasem núll og hins vegar hérna num samasem einn
Nú þetta getum við prófað Input a number
mun Python túlkurinn semsagt athuga hvort þessi samsetta bool segð sé true og hvernig gerir hún það
Nei ég sló inn tvo
Þetta var sem sagt or virkinn
Og hann er raunverulega notaður til þess að snúa við bool gildi þannig að við getum til dæmis sagt hér
Prófum þetta
gera eitthvað svona num er samasem input af enter a number
þannig að litla a
Þannig að við getum notað föllin ord og c h r til þess að
og tengt því er það sem að heitir slicing
núll einn tveir þrír fjórir fimm sex u er er númer s sex það er að segja sjötti vísirinn það þýðir sjöundi stafurinn en hann er ekki takið eftir því hann er ekki með
Ef ég ætlaði að fá hann með þá myndi ég þurfa að segja þrír upp í sjö þá fæ ég ritu
Þannig að til þess að fá svona hlutaröð þá segir maður hvar maður ætlar að byrja
tilvik af a
óbreytanlegir það er ekki hægt að breyta strengjum
túlkinum sem segir
breyta einhverjum streng Ja ég verð raunverulega að búa til nýjan streng
á að byrja í ei byrja í einum
Þá fæ ég upp aðgerðir sem ég get beitt á strengi og þær eru mjög margar við höfum auðvitað engan tíma til þess að fara yfir þær allar ég ætla bara að gefa ykkur dæmi
út hvað gerist þegar ég kalla á string upper
skilar raunverulega nýjum streng athugið vegna þess að það er ekki hægt að breyta upphaflega stengnum
print string punktur
hvað eigum við að segja split hérna hérna er fall sem heitir split hvað í ósköpunum gerir það Við getum séð það keyrum þetta
Ef ég breyti því þannig að setja eitt space í strenginn eitt bil keyri þetta núna
nafnið test
Þannig að þetta er svona grundvallaratriði í format strengjum að það sem ég setti hér inni í gæsalappir
eða statements sem að skila ekki gildi
Ég gæti sagt hérna result er sama sem fimm plús þrír
það segði kannski aðeins meira að nú er ég kominn með aðeins meira lýsandi nafn á því
þá ef ég nota x sama sem þrír punktur einn fjórir einn fimm níu
Síðan erum við reyndar með fleiri og þetta heita tög eða types í Python Síðan erum við með fleiri innbyggð tög eins og til dæmis strengi og ýmislegt annað sem við komum til með að fjalla um seinna í námskeiðinu
Þetta er strengur þetta er alls ekki tala
Þannig hérna það sem er að gerast er að ég
strengnum þrír komma einn fjórir fimm níu í float tölu eða rauntölu
Svo er virki sem að er
mjög oft notaður hann er hver er afgangurinn af heiltöludeilingu
fjórum
upp í tíu
Nú þá get ég sagt hvað er þetta
gef mér aðeins upplýsingar um þetta pow það er segja math punktur pow
já hérna fæ ég reyndar aðra töl aðra niðurstöðu Ég fæ níu komma núll en ekki níu þannig að þetta er líklega hér er ég að örugglega keyra math punktur pow en hérna er ég að keyra pow sem virðist ekki vera í math módúlnum
Hvað gerist ef að við
Ef ég segi hér pow
Nú það sem ég ætlaði bara að ég ætla að ljúka þessu með því að skrifa hérna eitt lítið forrit
Þannig það sem ég vil gera hér
breyti því í integer og set það inn í aðra breytu hérna sem heitir first int hjá mér
þá ætla ég bara að sýna ykkur
hvað gerist ef ég keyri þetta upp í command glugga
Það er röð einstakra staka í lista skipti máli alveg eins og röð einstaka staka í strengjum skiptir máli
Og hvað fæ ég þá til baka Líka tóman lista
Listi er líka svipaður strengjum hvað það varðar og það er hægt að ítra yfir hann og það er nú vegna þess að hann er einmitt collection tag eins og eins og strengir
segjum hann inniheldur tvo bókstafi og svo töluna einn og tvo sjáið þið þannig að það sem ég er að geyma í þessum lista sem heitir b list það eru mismunandi tög ég er með sem sagt stafi
En ég er líka með tölustafi heiltölur
það er hægt breyta einstökum stökum í lista
Þetta eru svokallaðir
eða nested list hreiðraðir listar
Nú ætla ég að búa til lista þar sem fyrsta stakiði listanum er annar listi og annað stakið í listanum
þegar við erum að við getum litið á þetta sem hnit í hnitakerfi
Þá get ég væntanlega ekki sagt summan af B list er það
Þannig þegar við notum summu köllum á summu fallið með lista þá verður listinn að innihalda tölur
Nú hvað við sögðum í upphafi að listar eru svipaðir strengjum líka að því leytinu til að þeir eru hvoru tveggja er collection tag sem þýðir að það er hægt að ítra yfir þá Þannig að ég get sagt for element köllum þetta stak in a list
Þetta er svipað og við höfum séð fyrir fyrir strengi
Hérna stendur remove and return item at index
Eigum við ekki að prenta út líka last hérna sjáum þetta
Þannig að þið sjáið það eru ýmsar aðgerðir sem hægt er að beita á listum og þetta er eitthvað sem bara smám saman lærir
Já fjarlægir fyrsta tilvika einhverju gildi sem í fjarlægð sem níu sem ég setti inn áðan
Sjáið þá er nían farin
Sjáið ég fæ lista af einstökum orðum hérna this is a sentence
Og hérna alveg í blálokin ætli að benda á eitt fall í viðbót
Athugið það algrímið sjálft er bara lýsing á því hvernig við leysum vandamál og það keyrir ekki á tölvu en forritið okkar er síðan útfærslan á algríminu
Og þetta er kannski science hlutinn í computer science hvernig við greinum algrímið
Síðan getum við auðveldlega séð
Við erum að nota Python í þessu námskeiði til þess að útfæra algrím og ástæðan er sú að vegna þess að við teljum að það sé nú tiltölulega auðvelt fyrir
Síðan getum við líka að skoðað hvernig mismunandi tölvur
það er að segja að algrími raunverulega
að lokum hætti
Þetta eru alls ekki lýsandi breytunöfn vegna þess að þau segja okkur ekkert um tilgang breytunnar
Mjög erfitt fyrir okkur að skilja hver er tilgangur hérna while lykkjunnar og ástæðan er sú að breytunöfnin gefa okkur ekki til kynna hver tilgangur þeirra er
Og hér heitir þetta limit s t r nafnið á breytunni þannig að breytan hefur greinilega þann tilgang að vera einhvers konar limit
og þetta er s t r gefur til kynna að þetta sé einmitt strengur Það er tagið takið eftir það er sem sagt lowercase underscore lowercase
Þannig að strax erum við komin með lýsandi nafn þar
Ef það er erfitt að skrifa kóðann þá er mjög líklegt að sé erfitt að lesa hann Bætið þá við kommenti
Það er að segja að með því að skoða kóðann þá sé maður raunverulega þá skilji maður nákvæmlega
eða forrit Ja í fyrsta lagi það að forrit þarf að vera það sem heit á ensku heitir robust Við þurfum þegar við skrifum forrit
að gera grein fyrir inntaki að gera ráð fyrir inntaki sem að er kannski ólíklegt að notandi slái inn en það er hins vegar líklegt að á einhverjum tímapunkti muni það einmitt koma
Og markmiðið hjá okkur í þessu námskeiði er einmitt að þið verðið góð í þessu að leysa vandamál og nota svo Python sem útfærslu
að einfalda Að þegar við stöndum frammi fyrir einhverju tilteknu vandamáli þá getur verið gott fyrir okkur að reyna að brjóta það niður í smærri vandamál
Nú ef að lausnin okkar virkar ekki að einhverju leyti þá verðum við bara að stoppa og reyna að átta okkur á því ð svona að meta hvernig þetta hefur gengið hjá okkur greina þetta og halda áfram eða jafnvel byrja upp á nýtt Það er nefnilega ekkert að því að byrja upp á nýtt Stundum
Hvað er gildissvið
Og þegar við erum að tala um gildissvið þá erum við að tala um það í samhengi við breytur þannig að við segjum að það sé gildissvið einhverra tiltekinna breytu eða eða scope a þá variable og gildissvið á breytu eru raunverulega þær setningar sem að breytan er lifandi í það er að segja þar sem við getum nefnilega vísaði í breytuna
Gildissvið breytuna first inni í func eru þessar tvær setningar en svo er önnur breyta sem reyndar vill svo til að hefur sama nafn og hennar gildissviðið er bara hér
Þetta er lókal eða staðvær global eða víðvær
Hvað er það raunverulega sem gerist hérna þegar við köllum á fallið func með einhverju viðfangi hér sem í þessu tilviki listi og hérna í skilgreiningunni á fallinu er svokallaður parameter stiki og sem að tekur við þessum lista hérna í fallakallinu
Og ef við kannski bara ef við reynum að sýna það hérna í getum bara sýnt það hérna í kommenti hérna uppi
En það vill svo til að my list sem er líka tilvísun vísar á sama lista
Hvað gerist þá hins vegar ef ég segi hér a list er sama sem einhver allt annar listi fjórir fimm sex
Þá fæ ég nákvæmlega bara þennan streng hérna return x í veldinu ypsilon og svo svigi opnast og svo framvegis
Ef ég segi prófum það með því að segja print hvað heitir fallið okkar func punktur undirstrik undirstrik dock undirstrik undirstrik
og í Python þá notar maður lykilorð sem heitir class þegar maður er að skilgreina klasa og það er venja að nota stóra stafi nöfnum á á það er að segja byrja nafn klasa með stórum staf í Python
Hann verður niðurstaðan af því að kalla á counter smiðinn
Ég ætla að hafa hérna
eina breytu sem er valkvæð sem ætla að kalla þetta value og hún er hefur sjálfgefna gildið núll þannig segja það er að segja þegar ég bý mér til counter
Þá ætla ég að hafa hann
með sjálfgefið gildi núll en ég gæti sett inn eitthvert gildi sjálfur
sem býr til tilvikið og upphaf stillir það hérna með því að kalla á init En ég er ekkert að prenta út hérna
Constructor er smiður á íslensku
og aðgerðir er í sjálfu sér ekkert annað heldur en
notandinn sem kallar á increment
ja ókei bíðum aðeins spurningu ég ætla að prófa þetta hérna sjá hvort þetta keyri
Sko það sem er maður þarf að átta sig á hér í upphafi er það að og það er þetta kannski virðist vera dálítið skrýtið að þegar ég kalla fallið increment þá kalla ég á það með einu viðfangi hér í seinna skiptið og núll viðföngum hérna í upphafi
En í þessu tilviki væri eðlilegt fyrir mig að skila til dæmis hvert er gildið á tilvikinu Það að segja þessi breyta self punktur value hérna
Þannig að þetta fall á alltaf að skila streng þannig að við skulum skila hérna streng og segja bara
og því skilað sem að fallið skilar
kannski gott að eiga líka aðra aðgerð sem heitir decrement er það ekki
Keyri þetta og nú fæ ég counter value og tveir er það ekki vegna þess að það var þrír ég minnka eða það eru þá tveir núna
klasinn býður upp á og ég til þess að ég geti notað klasann Þá þarf ég raunverulega bara að þekkja interface ið eða skilin Ég þarf ekki að vita hvernig einstakar aðgerðir eru eru útfærðar
Ágætt að gera sér grein fyrir þessu
Það er vegna þess að hún fylgir sérhverju tilviki Sérhvert tilvik á sér afrit af þessari breytu
counter tveir punktur increment hérna
Og þá er það eitthvað sem er skilgreint
instance of counter Þá ætla ég að hækka
Já þarna er þessi munur
klasa breytu sem að vísar í með nafninu á klasanum
hann þarf bara að vita
Split munið þið það að það skilar þá lista til baka þannig að hér kemur listinn a list til baka
En nú skulum við ímynda okkur það að sá sem setti fram þessa kröfu þessa kröfulýsingu um hvernig forritið ætti að virka hann segir núna heyrðu það er komin hérna ný gagnaskipan í Python sem er eðlilegra að nota og hún heitir set vinsamlegast breyttu þínu forriti þannig að það noti þessa nýju gagnaskipan en virknin verði að langmestu leyti nákvæmlega eins og áður
Þetta var li listi tvö þá prentuðust út þessir tveir listar set einn og set tveir og interesction var prentað út og union var prentað út og takið eftir að þetta er allt raðað hérna
En nú er sem sagt snýst þetta um það að við þurfum að breyta okkar forriti til að nýta þessa nýju gagnaskipan sem heitir set
Hérna segir code refactoring is the process of restructuring existing computer code
Ég bara ítra yfir listann og fyrir sérhvert stak í listanum bæti ég við stakinu mengið sjálft sér um einkvæmnina UNK þarf ég ekki að kalla á unique elements og kalla svo bara á return sorted og þá heitir það hvað
Result set hérna
Við sækjum aftur þessi gögn hérna inntaks gögnin og hin líka já ég sé ekki betur en að þetta keyri eftir þessa breytingu og það er akkúrat krafan sem að var talað um í refactoring að við þurfum að sjá til þess að forritið náttúrulega keyri eftir eftir þessa breytingu en líka það um að við séum ekki að breyta virkni þess external behavior external behaviour hérna er raunverulega þá úttak sem við fáum út úr aðalforritinu okkar og það breyttist ekkert
Hér er fallið intersection það tók inn tvö mengi sem eru hérna set einn og set tveir og
Það er kannski ekki alveg nógu sniðugt vegna þess að ég vil geta sent inn mengi inn í intersection ekki lista þannig að eigum við ekki bara í stað þess að skila sorted útgáfu að skila bara menginu sjálfu og sjáum um röðunina seinna meir
Það þýðir það að við ættum í sjálfu sér að prófa þetta aftur svona að þegar við prentum út það er þá sem við getum raunverulega bara sorterað af því að það var krafan að þetta ætti að vera sorterað ef ég breyti þessu bara svona hérna
Já þetta á að vera
Miðað við mengið sem ég fæ með því að gera mengja aðgerð á tveimur mengjum er það ekki
Og ég fæ nákvæmlega sama þannig að það það sem er svo mikilvægt í þessu þegar maður er að gera refactoring það er einmitt þetta að passa það að external behavior breytist ekki og niðurstaðan sem ég fæ hérna aðalforritinu hún er nákvæmlega sú sama og ég var með áður en ég byrjaði að gera refactoring
Ef við aðeins rúllum yfir þetta er eitthvað hérna í viðbót sem ég gæti gert á annan kannski effektífari hátt
Með því að segja bara result set ið hérna kalla á smiðinn og í stað þess að búa til tómt mengi og ítra svo í gegnum listann og bæta sérhverju staki við þá get ég er það ekki bara sett listann hér inn sagt heyrðu það sem kemur inn í set er sjáið þið itterable
Bíðum nú við hverju kvartar hún yfir hér
Já nei
Við tókum forrit ef við sjáum hvernig þetta var hérna í upphafi list set p y forrit sem var hérna hvað
Ég þarf að það er að segja hvernig útfæri ég svona klasa ég Það er class vector tvípunktur
Þannig við sjáum það að ég er að senda lista inn sem viðfang númer tvö munið það self er sjálfgefið viðfang númer eitt
Og listinn kemur inn fyrir þennan parameter a list
Hvað þýðir að hún sé private
Og þetta er mjög algengt og og margir raunverulega sem mæla með því að að stýra svona aðganginum að breytum klasa gera þær private og koma í veg fyrir að utanaðkomandi aðili komist í þær
Ja síðan sögðu að við þurfum nánast alltaf en það er alla vega mjög góð regla að búa til s t r fall svo við getum einmitt prentað út tilvikið
Það tekur þennan self
Hvað gerir það
Það er að segja frá núlli upp í self elements lengdina á elements og fyrir sérhvert stak þarf það að segja self elements af i
Það er talan sem við ætlum að skala sérhvert stak með þannig við margföldum hérna með skalar
self elements og margfalda sérhvern stak með einni tölu með skalar
Hvernig lítur þetta þá út hjá okkur
Já það breyttist ekkert við þetta
Þá segir hún hérna type error object of type vector has no len
Og sko skilin okkar núna innihalda fjögur fjórar aðgerðir það er init aðgerðin það er s t r aðgerðin það len aðgerðin og það er scaling
Eða þá bara hlaupa því þarf ekki að segja einu sinni frá núlli ég get sagt frá og einum uppi í lengdina á self sem hefði nú sagt mér það að ég hefði getað gert það líka að hér er það ekki
Þannig skölunin hafði auðvitað áhrif ég var búin að margfalda með þremur
Person tilvik
Við skulum eiga einhverja prívat breytu sem heitir bara hvað first name og upphafsstillum það með því sem kemur inn hérna first og eigum við ekki að eiga eitthvað last name líka hérna
Og þá verð ég að passa já ég er búin að return a já ætti er þetta ekki
af því að það er sjálfgefið að Person erfir frá Object
hvað gerist ef að ég sendi inn
Þannig að ég hef í sjálfu sér ekkert grætt neitt á þessu
fyrir Stúdent
Ja það þýðir það að hún að hún kvartar hér og segir
í Person
þessi university breyta enda var erum við að kalla á s t r fallið í
Stúdent
með því að kalla á s t r fallið
Comment era þetta út
Já þetta get ég gert
Í stað þess að fara að end skrifa að hluta til hann hér aftur
Person eða s t r fallið í Person með self sem viðfang
svona stutt umfjöllun um það hvað
það erfir tvær þeirra frá Person sem er first name og last name En er með síðan sína eigin sem heitir self university hérna
Og takið eftir því
og svo bættum við bara við upplýsingum um
Í þessu myndbandi ætla ég að útfæra
Þannig að það gæti komið upp hér að
að í skránni kæmi til dæmis John Sweden tvisvar sinnum fyrir Það er mögulegt
Nú hvað á að gera Skrifið Python forrit sem les upplýsingar úr skránni flights punktur t x t og gerir eftirfarandi prentar út nöfn allra ferðalanganna í stafrófsröð
og hversu marga landa viðkomandi hefur komið til
Og ef við sjáum dæmi um skoðum dæmi um inntak úttak Þá sjáum við það að það kemur einmitt ferðalangurinn og svo kemur tvípunktur og
Þegar við erum búin að því
í forritinu
Þannig að væri þá ekki bara eðlilegt að segja hérna
Ja til þess að opna skrá þá
Ef hún finnst ekki þá verðum við með exception
og á þessum tímapunkti
skrifa ekki meiri kóða það er svo mikilvægt að útfæra eitt fall í einu og sjá hvort allt er í fína hvort að forritið okkar keyri eftir litla útfærslu eða litla breytingu á forritinu
kalla á splitt fallið
sagt flyers af name sem sagt
ferðalangur hefur komið til Er það listi af löndum
Það væri einn möguleiki en það var sérstaklega tekið fram í lýsingunni
Þannig að fyrir okkar dæmi hér þá er ég búinn að setja hérna Sweden
Nú þetta var það tilvik ef að nafnið var ekki til í uppflettitöflunni
er sama sem create flayers dictonary það tekur inn fæl strauminn okkar
að það sem að create flayers gerir það skilar dictionary sem lít virðist líta rétt út
Þannig að við þurfum að eiga okkur fall hérna sem heitir print dict
info from flyers
Og þegar ég kominn með nafnið
Phil hérna
flayers af name gefur okkur mengið gildið fyrir viðkomandi lykil þetta er uppfletti tafla Við flettum upp nafninu í flayers fáum til baka gildið hvert er gildið Það var mengi af þeim löndum sem viðkomandi hefur farið til
Þannig að þetta fer í gegnum þau lönd
Nú fæ John Sweden Iceland England
þannig ég fæ þá raunverulega það sem gerist ég raunverulega fæ lista til baka
þá ætla ég að geyma það
Þannig að ef að lengdin á sem sagt
Já ég er ekki að prenta neitt út hérna munið þið
kom upp að ég byrjaði raunverulega að skrifa fall sem átti að skrifa þetta út En en til þess að það hafi ennþá skýrara hlutverk þá brýt ég það þannig upp að ég er með eitt fall sem að sækir þessar upplýsingar og annað fall sem að prentar þær út
Þannig að síðasta fallið sem að ég þarf þá hér
Og þá er það eina sem eftir er það ekki það er bara að prófa þetta
Við fáum sem sagt John England Iceland Sweden Mary
en ef að við þurfum á þessu bili halda þá gætum við hreinlega bara sagt hérna
Og önnur leið hefði verið að búa til aðalforritið allt í einu og skrifað síðan raunverulega bara stubba
í röð
Prenta síðan út summu talnana og að lokum prentar út fjölda sléttra talna og oddatalna
A Hvað er þetta a
Akkúrat það sem ég vildi á þessum tímapunkti vegna þess að ég er raunverulega bara búinn að búa mér til stubba og það er mikilvægt að að forritið mitt keyri þrátt fyrir að ég sé bara með stubba
Sjáiði ég takið eftir hvernig ég skrifa þetta að ég skrifaði þetta ekki svona
Já það er bara nákvæmlega það sem þarf að gera
Ég þarf ekkert auka athugasemd til þess að hjálpa lesandanum að skilja þetta
Já við erum svo sem ekki er komin af því að þessum tímapunkti við kannski komum hérna ræðum það aðeins hérna á eftir þegar við erum komin aðeins lengra
Byrjum aðeins á get numbers hérna
Nú talandi um að hafa bil auðar línur í kóða
Er þetta ekki rétt hjá mér
Hvað þarf þá að gera
Ég gerði þessa breytingu þá er eðlilegt fyrir mig að prófa þetta enter a number einn tveir þrír fjórir fimm sex sjö allt virkar
Þess vegna kemur þessi athugasemd þetta er reyndar allt í lagi það kemur engin villa
Til þess að þurfa ekki að slá inn of margar tölur
Sérðu þetta virkar strax hérna
Fjarlægja óþarfa kóða nota ekki global breytur
Það var svo auðvelt að gera breytingar
Hvað vorum við að hvað er það sem ég ætlaði að byrja á Það var þetta með global breyturnar já
Það hefði verið hægt að sleppa því að senda þennan lista inn hérna láta sum ekki taka við þessum lista en get sum samt sem áður vísar í þennan lista hérna a list og þetta gengur ja við skulum ekki fullyrða fyrr en að þetta keyri
Vegna þess að a list er breyta sem er skilgreind í aðalforritinu og hún er þar með sýnileg eða hennar gildissvið munið þið við vorum að tala um scope