Seite 1 von 1

Gartenzaun-Verschlüsselung

Verfasst: Dienstag 4. Dezember 2007, 21:08
von RauberRacing
wir haben in der Schule immo als Hausaufgabe die Gartenzaunverschlüsselung zu realisieren.
jetzt meine Frage soweit klappt das, aber ich muss momentan mit print in der Funktion arbeiten, sonst gibt er nur die erste string aus (joeyNeu1)
bräuchte also im prinzip

return joeyNeu1 + *ZEILENUMBRUCH* + joeyNeu2

kann mir da jemand helfen? danke

hier der code

Code: Alles auswählen

def gartenzaun(joey):
    zaehler = 0
    joeyNeu1 = ''
    while (zaehler < len(joey)):
        joeyNeu1 = joeyNeu1 + joey[zaehler] + '  '
        zaehler = zaehler + 2
    zaehler = 1
    joeyNeu2 = '  '
    while (zaehler < len(joey)):
        joeyNeu2 = joeyNeu2 + joey [zaehler] + '  '
        zaehler = zaehler + 2

    print joeyNeu1
    print joeyNeu2

Verfasst: Dienstag 4. Dezember 2007, 21:36
von kaytec
Hallo RauberRacing !

Code: Alles auswählen

a = 'b' + '\n' + 'c'
so geht es bei Linux - falls du Win hast funktioniert es genauso nur '\n' sieht anders aus.

gruß frank

Verfasst: Dienstag 4. Dezember 2007, 21:45
von RauberRacing
super danke genauso hats geklappt
btw. hab win

Verfasst: Dienstag 4. Dezember 2007, 21:51
von BlackJack
Sinnlose Vornamen als Variablennamen scheint irgendwie in Mode zu sein in letzter Zeit. :roll:

Die Klammern um die ``while``-Bedingungen sind überflüssig. In einer Situation wo man vor dem Beginn der Schleife schon weiss wie oft die Schleife durchlaufen wird, ist eine ``for``-Schleife das Mittel der Wahl.

In diesem Fall kommt man sogar gänzlich ohne explizite Schleifen aus:

Code: Alles auswählen

def gartenzaun(string):
    return '  '.join(string[::2]) + '\n  ' + '  '.join(string[1::2])

Verfasst: Dienstag 4. Dezember 2007, 21:56
von Jan-Peer
Noch schöner würde ich es finden, wenn die beiden Zeilen nicht zusammen als ein String zurückgegeben würden, sondern z.B. als Tupel. Dann hätte der spätere Verwender der Funktion mehr Einfluß darauf, wie der String ausgegeben wird (man denke nur an GUIs). Wenn er es dann mit \n ausgeben möchte, kann er die beiden ja immer noch zusammensetzen. :)

Verfasst: Dienstag 4. Dezember 2007, 22:35
von RauberRacing
@Jan-Peer: Was is ein Tupel? Sry aber bin mehr oder weniger Programmier-Neuling... also es reicht halt fürn Hausgebrauch aber mehr leider (noch) nicht

@BlackJack: Joa das mit 'Joey' is bei uns im LK eigtl en running gag... ;)

Verfasst: Dienstag 4. Dezember 2007, 22:57
von Leonidas
RauberRacing hat geschrieben:@Jan-Peer: Was is ein Tupel? Sry aber bin mehr oder weniger Programmier-Neuling... also es reicht halt fürn Hausgebrauch aber mehr leider (noch) nicht
Du kannst dir ein Tupel als Liste vorstellen, die unveränderbar ist. So wie `[1, 2, 3]` eine Liste ist, ist `(1, 2, 3)` das Tupel.