2016-06-22 2 views
-2

Ich versuche, einen Code zu programmieren, der Breite, Höhe und ein Zeichen akzeptiert. drucken Sie es in einem Raster [W * H] Mein Code ist wie folgt ..Wie drucke ich die Ausgabe im [w * h] -Format in Python

width = int(raw_input("Width of myarray: ")) 
height = int(raw_input("Height of Array: ")) 
c= raw_input("Initial char: ") 
a=(width*c), (height*c) 
print a 

Ausgang:

Width of myarray: 3 
Height of Array: 3 
Initial char: + 
+++++++++ 

Ich brauche die Ausgabe in [['+', '+', '+'], ['+', '+', '+'], ['+', '+', '+']] dieses Format.

+0

Was Ihr Code macht zur Zeit ausgegeben? Was macht es, was du nicht erwartest? – Sayse

+0

Ich erwarte, dass es in [['+', '+', '+'], ['+', '+', '+'], ['+', '+', '+' ]] dieses Format. –

+0

Ja, und was macht es derzeit, dass Sie nicht erwarten? – Sayse

Antwort

1
width = 3 
height = 3 
c= '+' 

row = [] 
a = [] 
# create an individual row with the given width 
for i in range(0,width): 
    row.append(c) 
# create the array of rows with the given height 
for i in range(0,height): 
    a.append(row) 

print a 

Ausgang:

[['+', '+', '+'], ['+', '+', '+'], ['+', '+', '+']] 

Eine Möglichkeit, dies für Schleifen ohne zu tun und reicht sich wie folgt:

width = 3 
height = 3 
c= '+' 

row = [] 
a = [] 
# create an individual row with the given width 
row = [c] * width 
# create the array of rows with the given height 
a = [row] * height 

print a 

Ausgang:

[['+', '+', '+'], ['+', '+', '+'], ['+', '+', '+']] 

Wenn Sie wollte Überprüfen Sie die angegebenen Werte, dann können Sie t verwenden ry/except Blöcke:

width = raw_input("Width of myarray: ") 
height = raw_input("Height of Array: ") 
c= raw_input("Initial char: ") 
a = [] 

try: 
    width = int(width) 
    height = int(height) 
    row = [] 
    row = [c] * width 
    a = [row] * height 
    print a 
except: 
    print None 

Ausgang:

Width of myarray: 
Height of Array: 
Initial char: 
None 
0

Das sollte funktionieren. Geben Sie diese Zeile für Zeile in IDLE, wenn Sie möchten (Stapel wird nicht unterstützt nativ Python Einzug Anforderungen):

def arr(): 
global array1 
width = int(input('Enter width: \n')) 
height = int(input('Enter height: \n')) 
character = input('Desired character: \n') 
array1 = [[character for i in range(width)] for i in range(height)] 
print(array1) 

Nennen Sie es mit:

arr() 

es so laufen sollte:

>>> arr() 
Enter width: 
3 
Enter height: 
4 
Desired character: 
+ 

.

.

Ausgabe

[['+', '+', '+'], ['+', '+', '+'], ['+', '+', '+'], ['+', '+', '+']] 

.

.

.

EDIT:

In Antwort auf Ihren Kommentar unten, können Sie diese verwenden:

def arr(): 
    global array1 
    width = input('Enter width: \n') 
    if (width == ''): 
     print('None') 
    if (width.isnumeric()): 
     width1 = int(width) 
    height = input('Enter height: \n') 
    if (height == ''): 
     print('None') 
    if (height.isnumeric()): 
     height1 = int(height) 
    character = input('Desired character: \n') 
    if (character == ''): 
     print('None') 
    if (width != '' and height != '' and character != ''): 
     if (width.isnumeric() and height.isnumeric()): 
      array1 = [[character for i in range(width1)] for i in range(height1)] 
      print(array1) 
    else: 
     print('None') 
+0

Ist es möglich, die Ausgabe "None" zu bekommen, wenn keine Eingabe gegeben ist ?? –

+0

Ich habe eine Bearbeitung über – Inquisitor01

+0

getan Hat das für dich funktioniert? – Inquisitor01

Verwandte Themen