praegune kellaaeg 16.06.2024 16:20:02
|
Hinnavaatlus
:: Foorum
:: Uudised
:: Ärifoorumid
:: HV F1 ennustusvõistlus
:: Pangalink
:: Telekavad
:: HV toote otsing
|
|
autor |
sõnum |
|
estplayer
HV kasutaja
liitunud: 15.10.2008
|
04.11.2012 22:01:58
algaja pythoni probleem |
|
|
Tere!
Kirjutan Pythonis funktsiooni, mis võtab 2 stringi ja tagastab ühe stringi, mis on on justkui need 2 stringi omavahel "kokku seotud"
Näiteks on stringid "abc" ja "def" ning vastus on siis "adbecf"
Loodan, et saite mu mõttest aru, õpin ise Pythonit inglise keeles ja pole harjunud ennast niimoodi eesti keeles väljendama.
def laceStrings(s1, s2):
s3 = ""
if s1 == "" and s2 == "":
return ""
if s1 == "" and s2 != "":
return s2
if s1 != "" and s2 == "":
return s1
for i in s1:
for j in s2:
s3 += i + j
return s3
|
Ma saan siin aru milles mul viga tuleb, need nested for loopid ei sobi vist selle ülesande jaoks, aga ma ei oska seda kuidagi muud moodi teha. Oleks tore, kui annaksite veidike vihjed või pseudokoodi, et kuidas seda õigesti teha.
Aitäh
|
|
Kommentaarid: 29 loe/lisa |
Kasutajad arvavad: |
|
:: |
0 :: |
0 :: |
26 |
|
tagasi üles |
|
|
andrusny
Kreisi kasutaja
liitunud: 20.03.2006
|
04.11.2012 22:39:20
|
|
|
No tegelikult poleks ju üldse vaja kontrollida, kas sisendid on tühjad. Kui sa liidad mingile stringile tühja stringi, siis jääbki alles ainult see string
s1 = "abc"
s2 = "sde"
s3 = ""
s3 = s1 + s2
Kui mõlemad tühjad siis tagastatakse tühi string, kui üks tühi, tagastatakse teine.
_________________
|
|
Kommentaarid: 7 loe/lisa |
Kasutajad arvavad: |
|
:: |
0 :: |
0 :: |
7 |
|
tagasi üles |
|
|
troglodyte
Kreisi kasutaja
liitunud: 09.08.2002
|
04.11.2012 22:42:58
|
|
|
Mis peaks olema funktsiooni tulemus juhul, kui stringid on eri pikkusega? Näiteks s1 = "abc" ja s2 = "defgh"?
Lihtsaim lahendus, eeldades et need stringid on alati ühe pikkused, oleks kasutada üht for-tsükklit kus sees liidad kokku stringide s1 ja s2 elemendid indeksiga i = 0 .. len(s1)
python:
|
s3 = "" for i in xrange(len(s1)): s3 += s1[i] + s2[i]
|
Kui stringid võivad eri pikkusega olla siis pead natuke juurde nuputama.
Ise lahendaksin selle probleemi kasutades zip või itertools.izip_longest ja reduce, operator.add, str.join funktsioone.
Mis õpetust sa kasutad õppimiseks?
NB! Pythonis kontrollitakse seda kas string on tühi ("") kasutades lihtsalt selle stringi tõeväärtust. Ehk siis if s1 == "" asemel kirjutatakse lihtsalt if not s1
_________________ ph'nglui mglw'nafh Cthulhu R'lyeh wgah'nagl fhtagn |
|
Kommentaarid: 33 loe/lisa |
Kasutajad arvavad: |
|
:: |
0 :: |
0 :: |
33 |
|
tagasi üles |
|
|
estplayer
HV kasutaja
liitunud: 15.10.2008
|
04.11.2012 23:49:23
|
|
|
Tänud teile, lahendasin ära, pannes mõned if-laused juurde. Muidu õpin www.edx.org MITx 6.00x Introduction to Computer Science and Programming.
|
|
Kommentaarid: 29 loe/lisa |
Kasutajad arvavad: |
|
:: |
0 :: |
0 :: |
26 |
|
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.
|