2017-03-18 5 views
1

Der Benutzer sollte in der Lage sein, einzugeben, was sie ein zeitstabiles Diagramm erstellen möchten, und dann wird das Programm ein gut angeordnetes Diagramm erstellen. Es sollte dem Benutzer nicht erlauben, eine Zahl unter 1 einzugeben. Er sollte sie fragen, ob sie danach noch ein anderes Zeitdiagramm erstellen möchten. Beachten Sie, dass Sie geschachtelte Schleifen sein sollten. Achten Sie genau auf die Formatierung.Generieren eines Diagramms (Python-Schleife)

Example input/output 


What timestables do you want to do? 5 

    1 2 3 4 5 
    ---------------------------------- 
1 * 1 2 3 4 5 
2 * 2 4 6 8 10 
3 * 3 6 9 12 15 
4 * 4 8 12 16 20 
5 * 5 10 15 20 25 

Do you want to do another timestables chart (y for yes)? y 

What timestables do you want to do? -3 

Not a valid number. 
What timestables do you want to do? 7 

    1 2 3 4 5 6 7 
    -------------------------------------------------- 
1 * 1 2 3 4 5 6 7 
2 * 2 4 6 8 10 12 14 
3 * 3 6 9 12 15 18 21 
4 * 4 8 12 16 20 24 28 
5 * 5 10 15 20 25 30 35 
6 * 6 12 18 24 30 36 42 
7 * 7 14 21 28 35 42 49 

Do you want to do another timestables chart (y for yes)? nooo 

Hope you got smarter! 

Ich versuche, einen Code zu schreiben, um die Ausgabe wie die oben aussehen, aber ich bin ganz fest, was zu tun. Auf der Unterseite ist, was ich jetzt habe und ich fragte mich, ob jemand mir helfen kann herauszufinden, wie man diesen Code schreibt. Danke

column = int(input("What timestables do you want to do? ")) 
for x in range(1, column+1): 
    print(x, sep="\t") 

Antwort

0

Es gibt end= Argument, das Sie auf die print Funktion übergeben können. Normalerweise wird print\n zu Ende hinzufügen. Für Ihren Fall eine Registerkarte vorbei ist eine gute Wahl:

print(x, end='\t') 
0

Dies sollte den Hauptteil der Tabelle korrekt erzeugen, aber es wird chaotisch, wenn Sie versuchen, eine timestable mit großen Zahlen zu drucken (nicht sicher, warum Sie würde :-))

size = int(input("Please enter the size of the table: ")) 
# list comprehension to make 2d list 
arr = [[i for i in range(1, size+1)] for j in range(size)] 
# this multiplies all the numbers in the 2d list so they can be printed later 
for i in range(len(arr)): 
    for j in range(len(arr[i])): 
     arr[i][j] = (i+1)*(j+1) 
# print list 
for i in range(len(arr)): 
    print(str("{:2.2g}".format(i+1)) + " * " + str("{:2.2g}".format(i+1)) + " ", end="") 
    for j in range(len(arr[i])): 
     print(str("{:2.2g}".format(arr[i][j])) + " ", end="") 
    # newline 
    print() 

Der wichtige Teil ist der str("{:2.2g}".format(i+1)). Es formatiert die Dezimalstelle auf 2 Stellen und das g löscht die Nullen. Auschecken Python Decimals format

0

Standardmäßig fügt die Druckfunktion "\n" hinzu. Sie können das Argument , end ="") oder , end ="\t") übergeben. Überprüfen Sie diese link kann es helfen.

Verwandte Themen