2017-10-24 4 views
0

Ich versuche, ein Programm zu schreiben, das den Benutzer auffordert, 2 Zahlen für die Zeile und die Spalten einzugeben. Dann gibt es in einer Rasterform durch den Stern, aber innerhalb einer for Schleife.Zeilen mit der Benutzereingabe multiplizieren?

userrow = int(input("Enter the size of the row:")) 
usercolumn = int(input("Enter the size of the column: ")) 

row = 0 
column = 0 

for row in ('*'): 
    print(row * userrow) 

    for column in ('*'): 
     print(column * usercolumn) 

#gridlayout = row * column 
print("The grid layout is: ", row, column) 
+0

Schauen Sie sich an, was für Zeile in ('*'): Drucken (Zeile) 'Drucke. Verstehst du, warum es das tut? –

Antwort

1

Hallo würde dies die Arbeit tun? Es gibt keine Notwendigkeit für 2 Schleifen. auch keinen Sinn machen 2 gleichen Variablen (Zeile und userrow)

userrow = 2 
usercolumn = 3 

for i in range(0,usercolumn): 
    print(userrow * '*') 

print("The grid layout is: ", userrow, usercolumn) 

Ausgang:

** 
** 
** 
The grid layout is: 2 3 
3

Ich werde zunächst erklären, was Ihre aktuellen Code der Fall ist, warum es falsch ist, und dann, wie Sie den Code neu zu schreiben .

for row in ('*'): 
    print(row * userrow) 

    for column in ('*'): 
     print(column * usercolumn) 

Diese iteriert eine variable row durch '*' benannt. Da dies ein Iterable der Größe 1 ist, wird es effektiv nicht looped. So Ihr Code ist im Wesentlichen:

row = '*' 
print(row * userrow) 
for column in '*': 
    print(column * usercolumn) 

Das gleiche gilt für die Spalte gesagt werden:

row = '*' 
print(row * userrow) 
column = '*' 
print(column * usercolumn) 

Dieses nur druckt userrow Sternchen und dann usercolumn Sternchen. Was Sie stattdessen tun wollen, ist Loop userrow mal oder usercolumn Zeiten:

for i in range(usercolumn): 
    print('*' * userrow) 

das funktionieren würde, was usercolumn Sternchen druckt, userrow mal. Alternativ print('\n'.join(['*'*usercolumn]*userrow)).

+0

Ah richtig, ich war mir nicht 100% ig sicher, was ich falsch gemacht habe, also danke, dass du es betont hast. Ich habe es gerade getestet, wirklich nützlich danke :) – Morph

+0

@Morph Kein Problem! Froh, dass ich Helfen kann. – HyperNeutrino

Verwandte Themen