Avaleht
uus teema   vasta Tarkvara »  Programmeerimine »  Vaja veidike abi pythonis märgi kõik teemad loetuks
märgi mitteloetuks
vaata eelmist teemat :: vaata järgmist teemat
Hinnavaatlus :: Foorum :: Uudised :: Ärifoorumid :: HV F1 ennustusvõistlus :: Pangalink :: Telekavad :: HV toote otsing
autor
sõnum Saada viide sõbrale.  :: Teata moderaatorile teata moderaatorile
otsing:  
kimi
HV vaatleja

liitunud: 02.02.2012




sõnum 19.03.2013 00:57:10 Vaja veidike abi pythonis vasta tsitaadiga

Tere,

Tegelen programmeerimise õppimisega ja on vaja lahendada üks väike mure ühes suuremas koduülesandes.


Mul on tehtud funktsioonid:

tehe1():
tehe2():
tehe3():
jne

Hetkel olen probleemi ees, kus oleks vaja nüüd need "for x in range(arv):" loopi saada nii, et esimene kord kasutaks tehe1(), teisel korral tehe2(), kolmandal tehe3() jne. Oskab keegi aidata, kuidas sellist probleemi edukalt lahendada?

Tänud.
Kommentaarid: 7 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 7
tagasi üles
vaata kasutaja infot saada privaatsõnum
troglodyte
Kreisi kasutaja
troglodyte

liitunud: 09.08.2002




sõnum 19.03.2013 01:15:13 vasta tsitaadiga

Jäägiga jagamine.

Vähemalt esialgu tundub nii, sa võiksid täpsustada mida sa "jne" all silmas pead.

_________________
ph'nglui mglw'nafh Cthulhu R'lyeh wgah'nagl fhtagn
Kommentaarid: 34 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 34
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
kimi
HV vaatleja

liitunud: 02.02.2012




sõnum 19.03.2013 01:41:51 vasta tsitaadiga

jne all mõtlesin, et veel on funktsioone (ehk jada jätkub).

Oskad sa täpsustada, kuidas jäägiga jagamist sinna sobitada? Hetkel küll ei koida üldse.

EDIT: sain hakkama õnneks!

funktsioonid = {1:move1, 2:move2 3:move3}

hiljem

for i in range (3):
funktsioonid[i+1]()
Kommentaarid: 7 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 7
tagasi üles
vaata kasutaja infot saada privaatsõnum
Fukiku
Kreisi kasutaja
Fukiku

liitunud: 06.11.2003




sõnum 19.03.2013 13:22:50 vasta tsitaadiga

Mul tekkis siinkohal hetkeks küsimus, et kas need funktsioonid on sisuliselt piisavalt erinevad, et õigustada nende erinevatesse funktsioonidesse paigutamist? Äkki saaks ühe funktsiooni ja parameetriga hakkama?

Teiseks tekkis küsimus, et kas sul tsükkel on alati ühe pikkusega ja ainuke efekt, mida üritad saavutada on vähem koodiridu? Või on nimekiri funktsioonidest ja see, kui kaugele mööda nimistut minnakse, sõltub mingitest välistest tingimustest? Alati sama arvu funktsioonide korral soovitaks pigem need ühekordselt lahti kirjutada - need säästetud koodiread annavad koodi loetavusele minu arvates hetkel küll paraja hoobi.

_________________
Foxic is just a simple fox
Enne kui sa küsid oma küsimuse - küsi seda vannipardilt! Rangelt soovitatav enne programmeerimise alafoorumisse uue teema tegemist.
Kommentaarid: 2 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 2
tagasi üles
vaata kasutaja infot saada privaatsõnum
kimi
HV vaatleja

liitunud: 02.02.2012




sõnum 22.03.2013 20:17:36 vasta tsitaadiga

Tere,

Funktsioonid on sisult siiski erinevad. Tegemist on poomismänguga ja funktsiooniks on siin siis valesti vastamise korral mingi osa edasi joonistamine võllas.

Põhimõtteliselt vastasid sa teisega ära. Kui täidetakse mingi tingimus võetakse ette järgmine funktsioon.

Ma seda ei oska programmeerija seisukohalt kommenteerida, et kas on lihtsam lihtsam lugeda või mitte. Hetkel meeldib mulle nii, et defineerin mingi liigutuse ja kui programmis tuleb see koht, kus see liigutus peab toimuma, kirjutan lihtsalt "liigutus()" ja kõik.

Asi on selles, et ma alles hakkasin pythonit õppima oli vaja teha koduülesanne, mille nõuded jäid kaugelt alla sellele, mida ma teha tahtsin. Nõuded oli sellised, et koostada ülesanne, kus on kasutatud vähemalt kahte funktsiooni ja kahte if lauset, kusjuures üks peab nendest lõppema else'ga.

--------------------------------------------

Nüüd on mul uus probleem. Mul on definitsioon, mis joonistab 10 ringi. Nüüd oleks vaja saada kuidagi nii, et kui need kõik 10. ringi saavad joonistatud, siis pöörduks turtle suvaliselt tagasi ühe ringi juurde ja värviks selle punaseks.

Kas keegi oskab öelda, et kas olen õigel teel. Mõte on mul selline, et iga ringi joonistamise alguses küsin funktsiooniga pos() koordinaadid ja siis salvestaks need kuhugi järjendisse. Ja lõpus, kui kõik kümme ringi on joonistatud, siis laseks randomiga sealt järjendist valida ühe positsiooni ja käsuga goto() sõidaks sinna ja teeks siis selle värvimise osa.

KUI see on õige mõte, siis kuidas ma peaks muutujaid nimetama programmi sees, et need tuleskid erinevad. Mul on "i", mis muutub 1-10ni aga ma ei saa ju mingit tähte ja seda i-d liita, et pärast kasutada? Või saan? Mõtlen nii, et kui i on 1, siis salvestan a1, kui i = 2, siis a2 jne.

ja teine küsimus on selline, et kuidas see salvestamine üldse käiks. Kas ma peaks salvestama need kuhugi txt faili ja siis sealt päringu tegema või on võimalik neid kuidagi mällu jätta?

VÕI on äkki kellelgi mõni parem idee, kuidas seda suvalise ringi juurde tagasipöördumist lahendada? Ma nii ei sooviks teha, et suvalisel hetkel ringi joonistamise ajal värvib punaseks. Kõigepealt peaks siiski ära joonistama ringid ja hiljem suvalise ringi juurde tagasi pöörduma.
Kommentaarid: 7 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 7
tagasi üles
vaata kasutaja infot saada privaatsõnum
mikk36
HV Guru
mikk36

liitunud: 21.02.2004




sõnum 22.03.2013 20:57:42 vasta tsitaadiga

kimi, http://bytebaker.com/2008/11/03/switch-case-statement-in-python/
Leiad ehk midagi huvitavat lahendusvõimalust oma postituse esimesele osale.
Kommentaarid: 85 loe/lisa Kasutajad arvavad:  :: 0 :: 2 :: 78
tagasi üles
vaata kasutaja infot saada privaatsõnum
kimi
HV vaatleja

liitunud: 02.02.2012




sõnum 23.03.2013 14:45:05 vasta tsitaadiga

mikk36, tänud! Vaatan üle.

Sain enda viimasele probleemile ka lahenduse siiski. Pythonil on päris mitu võimalust listi lisamikses list.insert(i, a) või list.append(a) või list.extend(a). Kõiki neid on võimalik kuidagi modifitseeritud kujul sobivaks teha.

Mu põhiküsimus oli tol hetkel see, et kas ta jätab vanad koordinaadid mällu ja kirjutab üle või suudab python kuidagi ka lisada ning õnneks suudab.
Kommentaarid: 7 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 7
tagasi üles
vaata kasutaja infot saada privaatsõnum
näita postitusi alates eelmisest:   
uus teema   vasta Tarkvara »  Programmeerimine »  Vaja veidike abi pythonis
[vaata eelmist teemat] [vaata järgmist teemat]
 lisa lemmikuks
näita foorumit:  
 ignoreeri teemat 
sa ei või postitada uusi teemasid siia foorumisse
sa ei või vastata selle foorumi teemadele
sa ei või muuta oma postitusi selles foorumis
sa ei või kustutada oma postitusi selles foorumis
sa ei või vastata küsitlustele selles foorumis
sa ei saa lisada manuseid selles foorumis
sa võid manuseid alla laadida selles foorumis



Hinnavaatlus ei vastuta foorumis tehtud postituste eest.