2017-01-27 4 views
0

Я пытался нарисовать квадрат с помощью звездочки, но этот код не работает Это кодКак нарисовать вещи без черепахи в питоне

def drawStar(numStars): 
    for x in range(0,numStars): 
     print("* ") 

def menu(): 
    # prompting the user to pick what they want drawn 
    input("Welcome to my draw shapes program ") 
    print("What would you like me to draw") 
    input(" Draw a Square (1)\n Draw a Rectangle (2)\n Draw a Rectangle (2)\n Draw an Arrow Head (3)\n Exit (4)") 

def drawSquare(): 
    width = int(input("What is the width of your square ")) 
    for x in range(0,width): 
     drawStar(width) 
drawSquare() 

Это выход я продолжал получать

What is the width of your square 2 
* 
* 
None 
* 
* 
None 
+1

'' drawStar' return's 'None'; 'drawSquare'' return '' None' и не 'print' ничего –

ответ

0

Прямоугольник:

m, n = 10, 10 
for i in range(m): 
    for j in range(n): 
     print('*' if i in [0, n-1] or j in [0, m-1] else ' ', end='') 
    print() 

Треугольник:

m, n = 10, 10 
for i in range(m): 
    for j in range(n): 
     print('*' if i in [j, m-1] or j == 0 else ' ', end='') 
    print() 
+0

Пожалуйста, добавьте некоторое повествование. Хотя дамп кода поможет OP с непосредственной проблемой отправки задания, немного повествования помогут в будущем улучшить намного больше. –

0
print("* ") 

print() функция по умолчанию гравюр символ новой строки после того, как данные, которые вы предоставляете. Вот почему вы видите каждую звездочку (и пробел) на отдельной строке. Функция print() принимает аргумент ключевого слова с именем end, чтобы указать что-то еще для печати в конце.

Вы, вероятно, хотите что-то вроде этого:

def drawStar(numStars): 
    for x in range(0,numStars): 
     print("* ", end='') 
    print() 

или в качестве альтернативы, вы можете использовать функцию из питона, что строки могут быть умножены на номер:

def drawStar(numStars): 
    print("* " * numStars) 
Смежные вопросы