2015-03-29 7 views
0

После 2 часов поиска ответа я отказался. Прямо сейчас я получаю линии точек, но я хочу, чтобы это был прямоугольник. Я хочу, чтобы это печатало прямоугольник, длина и ширина которого вводится пользователем.Как я могу заставить его нарисовать прямоугольник с точками?

Ожидаемый результат:

********** 
*  * 
*  * 
*  * 
*  * 
*  * 
*  * 
*  * 
*  * 
********** 
+0

В чем именно ваш вопрос? Каков вход, ожидаемый выход и фактический выход? Вы получаете какие-либо ошибки? Если да, то каков их полный текст? Пожалуйста, отредактируйте свой вопрос и поместите в него информацию, иначе это может быть закрыто как «Неясно, что вы спрашиваете» или «Слишком широко». – MattDMo

+0

Вы не задали вопрос, кроме «пожалуйста, дайте коды». – Mathemats

ответ

2

печати * раз ширина в самом начале и в конце. Печать двух "*" с шириной - 2 раза пространства betweem

print("*" * width_number) 
for _ in range(length_number): 
    print("*" + (" " * (width_number-2)+ "*")) 
print("*" * width_number) 

Вы также можете использовать str.format:

print("*" * width_number) 
for _ in range(length_number): 
    print("*{:^{fill}}*".format(" ",fill=width_number-2)) 
print("*" * width_number) 


Insert width: 
10 
Insert length: 
10 
********** 
*  * 
*  * 
*  * 
*  * 
*  * 
*  * 
*  * 
*  * 
*  * 
*  * 
********** 
+0

Спасибо, что помогли мне так быстро :) Сэкономил мне много времени :) –

+0

@MihkelKull, не беспокойтесь, вы могли бы получить больше творчества с помощью циклов, но этот метод довольно прост. –

0

Попробуйте этот код

print("Insert width:") 
width_number= int(input()) 
print("Insert length:") 
length_number = int(input()) 
print("* "*width_number) 
for length in range(length_number - 2): 
    print("* ", end="") 
    for width in range(width_number - 2): 
     print(" ", end="") 
    print("* ") 
print("* "*width_number) 

Если вы хотите пробелы между *

+0

Спасибо, человек :) Уже получил мой ответ, но спасибо в любом случае :) –

Смежные вопросы