2016-01-02 3 views
2

Это моя проблемаРазмеры поля + - + в Python 3.4

Создайте программу, которая принимает число, введенное пользователем. Это число определяет размеры квадрата и может быть любым положительным целым числом. Вход выхода 1 будет:

+--+ 
    +--+ 

while an input of 2 will output 

    +--+--+ 
    +--+--+ 
    +--+--+ 

and an input of 3 will output 

    +--+--+--+ 
    +--+--+--+ 
    +--+--+--+ 
    +--+--+--+ 

etc…Show outputs for user inputs of 1, 2, 3, and 4. 

Не совсем уверен, с чего начать на этом и хотел бы некоторые советы, но я не ищу полный ответ (в конце концов, это домашнее задание), а что-то назовите меня в правильном направлении, будет очень признателен.

+0

'for _ in range (n + 1): print (" - ". Join (" + "* (n + 1)))' или что-то. – Veedrac

+2

Один шаг за раз. Сначала создайте программу, которая принимает введенный пользователем номер. Это сделано? Теперь убедитесь, что это положительное число, помните, что 'raw_input()' (при условии, что Python 2) возвращает строку. Сначала сделайте все, что работает. Теперь исследуйте, используя либо цикл, либо, возможно, даже оператор '*' в строке, есть несколько способов сделать это. – cdarke

+0

Большое спасибо, спасибо – Ronincat

ответ

2

Рассмотрим это:

"--".join("++") 

Дает одну строку одной коробке:

+--+ 

Чтобы повторить для нескольких строк, вы можете сделать:

"--".join("+" * (some_count+1)) 

Для этого, вы 'd получить выход:

+--+  # 1 
+--+--+  # 2 
+--+--+--+ # 3 
... 

Теперь нам просто нужно повторить, что для многих вертикальных линий. Вы можете рассмотреть возможность делать "\n".join, чтобы повторить, или вы можете использовать цикл for и распечатать несколько строк. Это ваша работа!

+0

Чистый, компактный, читаемый и закодированный. Отличный ответ. – MeetTitan

0

Законченное с

"""Problem set 2 question 2 box problem Joe White 2016""" 
num=int(input("enter a number ")) #Assigns user's number to variable num 
for blank in range (num+1): print ("--".join("+" * (num+1))) #print ("--".join("+" * (num+1))): prints +--+ as many times as the user entered. However if more than 1 it prints in the form +--+--+ instad of +--++--+. for blank in range (num+1) adds another column of +--+ underneath to create a box 

отлично работает для всех выходов. Спасибо всем, кто отправил комментарий/ответ!

+0

вы должны использовать '_' вместо' blank', если вы просто выбрасываете переменную цикла. В Python нет ничего особенного в '_', но он идиоматически используется, чтобы сказать будущим кодерам, что вы не используете переменную. 'blank' может иметь смысл,' _' никогда не будет. –

+0

@AdamSmith. _ может иметь смысл, если вы делаете интернационализацию. Явное имя, указывающее, что значение отбрасывается, может сделать код более четким и менее подверженным ошибкам. –

+0

@MadPhysicist у нас есть один в Python. Это '_'. 'for _ in some_iterator' встречается везде в идиоматическом коде Python. –