Рейтинг:
12
OriginalGriff
Это ваше домашнее задание, поэтому мы не будем делать его за вас - никакого кода!
Но это не такая уж трудная задача:
1) получить слово для печати.
2) получить длину слова - это определяет, сколько строк вам нужно
3) петля: печать "верхней половины"
3.1) выведите строку от 0 до (длина * 2 - 1):
3.1.1) цикл: выведите пробелы перед первым символом
3.1.2) цикл: выведите начало слова.
3.1.3) цикл: выведите конец слова.
4) повторите 3 в обратном порядке.
Начните с печати только верхней половины и только начала слова. Когда у вас это работает, добавьте ведущие пробелы. Когда это сработает, добавьте конец слова.
Когда это сработает, переверните процесс, чтобы принести нижнюю половину. (Это должно быть довольно тривиально, потому что у вас есть полностью рабочий код для верхней половины.)
coderrrrrrrrrr12
я сделал шаблон, как в предварительном просмотре..
я хочу сделать его ромбовидным узором
я ничего не понял из 3.1
specifically.my проблема понимания заключается в том...как вы определяете начало и конец слова
в вопросе..я немного изменил свое решение
OriginalGriff
Посмотрите на то, что вы пытаетесь произвести:
....я
...Ини
..indni
.indidni
indiaidni
.indidni
..indni
...Ини
....я
Где ". " - это пробел.
Это явно две части: верхушка:
....я
...Ини
..indni
.indidni
indiaidni
И соответствующее дно:
.indidni
..indni
...Ини
....я
Так что сначала поработайте над одной половиной: верхней.
Это набор строк, где каждая строка начинается с некоторого количества пробелов, относящихся к номеру строки:
0: 4 .... я
1: 3 ...Ини
2: 2 ..индни
3: 1 .индидни
4: 0 indiaidni
А количество пробелов-это длина слова (5) минус номер строки плюс 1
Поэтому вам нужен цикл, который дает вам номер строки, и каждая строка начинается с цикла для печати пробелов. Достаточно просто?
Затем выведите количество символов для этой строки: номер строки плюс 1. Тоже довольно легко.
Затем выведите те же символы в обратном порядке! Опять же, это не трудно, когда вы сделали все предыдущие вещи.
Разбейте его на биты и работайте над каждым битом одновременно: таким образом, каждая задача, которую вы пытаетесь выполнить, достаточно проста!
Попробуйте - посмотрите, как далеко вы доберетесь.
coderrrrrrrrrr12
стра=raw_input()
a=len(stra)
список=[]
список2=[]
для i в диапазоне(1,a+1):
b=(10**i//9)**2
для j в диапазоне(a+1-i,1,-1):
печатать " ",
в то время как b>=0:
c=b%10
b=b/10
распечатать стра[с-1],
если b==0:
перерыв
печатать
для i в диапазоне(a-1,0,-1):
b=(10**i//9)**2
для j в диапазоне(1,a+1-i):
печатать " ",
в то время как b>=0:
c=b%10
b=b/10
распечатать стра[с-1],
если b==0:
перерыв
печатать
Большое вам спасибо ......
OriginalGriff
Всегда пожалуйста!