praegune kellaaeg 20.06.2025 00:33:05
|
Hinnavaatlus
:: Foorum
:: Uudised
:: Ärifoorumid
:: HV F1 ennustusvõistlus
:: Pangalink
:: Telekavad
:: HV toote otsing
|
|
autor |
|
kimi
HV vaatleja
liitunud: 02.02.2012
|
19.03.2013 00:57:10
Vaja veidike abi pythonis |
|
|
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 |
|
 |
troglodyte
Kreisi kasutaja

liitunud: 09.08.2002
|
19.03.2013 01:15:13
|
|
|
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 |
|
 |
kimi
HV vaatleja
liitunud: 02.02.2012
|
19.03.2013 01:41:51
|
|
|
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 |
|
 |
Fukiku
Kreisi kasutaja

liitunud: 06.11.2003
|
19.03.2013 13:22:50
|
|
|
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 |
|
 |
kimi
HV vaatleja
liitunud: 02.02.2012
|
22.03.2013 20:17:36
|
|
|
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 |
|
 |
mikk36
HV Guru

liitunud: 21.02.2004
|
|
Kommentaarid: 85 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
2 :: |
78 |
|
tagasi üles |
|
 |
kimi
HV vaatleja
liitunud: 02.02.2012
|
23.03.2013 14:45:05
|
|
|
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 |
|
 |
|
lisa lemmikuks |
|
|
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.
|