#python #python-3.x
#python #python-3.x
Вопрос:
Здравствуйте, я довольно новичок в Python, и у меня есть вопрос, на котором я застрял:
Это исходный код для печати полого алмаза:
def print_diamond(height):
"""prints hollow diamond"""
print("{:^{}}".format("*", height))
for i in range(1, height // 2):
print("{:^{}}".format("*" " " * (2*i - 1) "*", height))
for i in range(height // 2, 0, -1):
print("{:^{}}".format("*" " " * (2*i - 1) "*", height))
print("{:^{}}".format("*", height))
#test code
print_diamond(5)
print_diamond(3)
print_diamond(7)
Это выводит:
*
* *
* *
* *
*
*
* *
*
*
* *
* *
* *
* *
* *
*
Как бы вы преобразовали этот код для печати сплошного алмаза?
*
*
***
*
*
***
*****
***
*
*
***
*****
*******
*****
***
*
Используя эти тесты:
print_diamond(1)
print_diamond(2)
print_diamond(3)
print_diamond(4)
Я попытался изменить форматирование, добавив » * «, но это отодвигает другой » * » в сторону. Спасибо.
Добавление » * » к пробелам » » не устраняет проблему, поскольку форматирование не работает с тестовым кодом solid diamond.
В настоящее время это не должно выводиться:
*
*
*
***
*
*
***
*
Комментарии:
1. Найдите места в вашей функции, которые печатают пробелы между звездочками.
2. Добро пожаловать, Шейли, вам следует поискать в Google руководства, подобные этому, от gfg , прежде чем отправлять вопрос
3. Посмотрите на мою новую правку
Ответ №1:
Просто замените " "
на "*"
в следующих строках :
print("{:^{}}".format("*" "*" * (2*i - 1) "*", height))
Комментарии:
1. Использование тестового кода print_diamond(2) делает все звездочки слева также print_diamond(1) печатает звездочку в двух строках