2016-03-23 6 views
1

zu erstellen Ich versuche, eine Funktion zu schreiben, die zwei natürliche Zahlen (m und n) und eine Zeichenfolge verbraucht und eine m-n-Matrix mit der Zeichenfolge druckt. Für BeispieleVersuchen, eine m-n-Matrix mit Schleifen in Python

my_function(1,5,'hi') => hihih 
my_function(2,5,'hi') => hihih 
         ihihi 

und so weiter. Ich muss dies entweder für oder while-Schleifen tun.

Ich bin nicht auf der Suche nach Antworten, ich hoffe, jemand kann mir helfen, es herauszufinden. Bisher kann ich nur daran denken, dass meine Saite lang genug ist und dann mit einer for-Schleife die Saite an der gewünschten Stelle auf eine neue Linie aufbricht. Dort stoße ich auf mein Problem. Wie sage ich Python (mit for-Schleifen), um meine Zeichenfolge in einer neuen Zeile an diesem Punkt zu starten.

Hoffe, dass jemand helfen kann.

Danke!

Antwort

-1

Sie brauchen nicht unbedingt Schleifen. Vielleicht so etwas wie dies hilft Ihnen den Einstieg: x=('hi'*5)[:5]

edit: Leider war nicht klar, dass man hatte Schleifen zu verwenden. außer Acht lassen.

0

Da Sie Schleifen verwenden müssen, finden Sie die Modulo Operator nützlich, das eine teilweise Arbeitslösung ist, werde ich den Rest lassen Sie herauszufinden, was anstelle des ? und der ... geht :

def my_function(n, m, s): 
    ln = ? 
    for i in range(n): 
     print("".join([s[(j+?) % ln] for ...])) 

Ein Hinweis auf was Modulo tut: auch wenn Sie

In [98]: l = [1,2,3] 

In [99]: l[4 % 3] 
Out[99]: 2 

Sie können es uns ohne beitreten e Druck richtig:

def my_function(n, m, s): 
    ln = ? 
    for i in range(n): 
     for ...: 
      print(s[(j + ?) % ln], end=?) 
     # print ? 

Es gibt schönere Möglichkeiten zu tun, was Sie wollen, aber ich nehme an, dies eine Lernübung ist.

+1

Ja, ich denke, sie wollen, dass wir über die Probleme auf eine bestimmte Art und Weise nachdenken. Es ist ziemlich nervig, sie lehren uns Rekursion in einem Modul und dann das nächste Modul theyre wie Sie Schleifen verwenden müssen, aber keine Rekursion. Danke für deine Hilfe, ich arbeite an dem, was du mir gegeben hast – Brandon