String-Split-Formatierung in Python 3

8

Ich versuche, diese Zeichenfolge unter einer Zeile zu formatieren, die fünf Wörter enthält. Allerdings bekomme ich das als Ausgabe:

  

Ich liebe Kekse, ja, ich tu einen Hund sehen

Erstens bekomme ich nicht 5 Wörter in einer Zeile, sondern alles in einer Zeile.

Zweitens, warum wird das "Lass uns" aufgeteilt? Ich dachte, wenn ich die Zeichenfolge mit "Wörtern" aufspalte, wird es nur geteilt, wenn dazwischen ein Leerzeichen ist?

Vorschläge?

%Vor%     
Student J 20.06.2013, 19:37
quelle

2 Antworten

17

Als Erstes rufen Sie keine Variable "string" auf, da sie das Modul <überschattet / a> mit dem gleichen Namen

Zweitens verwenden Sie split() , um Ihre Wortteilung zu übernehmen

%Vor%

Aus dem Re-Modul

  
    
      

\ W       Entspricht einem beliebigen Zeichen, das kein Unicode-Wortzeichen ist. Dies ist das Gegenteil von \ w. Wenn das ASCII-Flag verwendet wird, wird dies das Äquivalent von [^ a-zA-Z0-9_] (aber das Flag betrifft den gesamten regulären Ausdruck, so dass in solchen Fällen ein explizites [^ a-zA-Z0-9_] verwendet werden kann eine bessere Wahl).

    
  

Da das ' im obigen nicht aufgeführt ist, teilt der regexp die Zeichenfolge "Let's" in zwei Teile:

%Vor%

Dies ist die Ausgabe, die ich mit dem strip () - Ansatz oben erhalten habe:

%Vor%

Der Code könnte wahrscheinlich dazu vereinfacht werden, da counter==0 und die else-Klausel dasselbe tut. Ich führe auch in dort auf, um den Zähler loszuwerden:

%Vor%     
Fredrik Pihl 20.06.2013, 19:41
quelle
1
%Vor%

Das ist das Grundkonzept, teilen Sie es mit der Methode split ()

Schneiden Sie es dann mit Slice-Notation ab, um die ersten fünf Wörter zu erhalten

Dann schneiden Sie die ersten 5 Wörter ab und wiederholen Sie die Schleife

    
Stephan 20.06.2013 19:45
quelle

Tags und Links