Gartenzaun-Verschlüsselung

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
RauberRacing
User
Beiträge: 25
Registriert: Montag 19. November 2007, 10:03
Wohnort: Schwarzenbach
Kontaktdaten:

Dienstag 4. Dezember 2007, 21:08

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
Benutzeravatar
kaytec
User
Beiträge: 544
Registriert: Dienstag 13. Februar 2007, 21:57

Dienstag 4. Dezember 2007, 21:36

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
RauberRacing
User
Beiträge: 25
Registriert: Montag 19. November 2007, 10:03
Wohnort: Schwarzenbach
Kontaktdaten:

Dienstag 4. Dezember 2007, 21:45

super danke genauso hats geklappt
btw. hab win
BlackJack

Dienstag 4. Dezember 2007, 21:51

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])
Jan-Peer
User
Beiträge: 166
Registriert: Dienstag 2. Oktober 2007, 10:55

Dienstag 4. Dezember 2007, 21:56

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. :)
RauberRacing
User
Beiträge: 25
Registriert: Montag 19. November 2007, 10:03
Wohnort: Schwarzenbach
Kontaktdaten:

Dienstag 4. Dezember 2007, 22:35

@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... ;)
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Dienstag 4. Dezember 2007, 22:57

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.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Antworten