Как сделать рамку из звездочек в пайтоне
Перейти к содержимому

Как сделать рамку из звездочек в пайтоне

  • автор:

Нужно вывести квадрат из звездочек

Author24 — интернет-сервис помощи студентам

n = int(input())
for i in range(n):
for j in range(n):
print(‘*’,end=»)
print()
Нужно вывести квадрат из звездочек. Обе стороны равны n. Для чего в конце нужен print()?

94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Вывести на экран квадрат из звездочек со стороной N
Напишите процедуру, которая принимает параметр – натуральное число N – и выводит на экран квадрат.

Вывести на экран фигуру из звездочек (квадрат из n строк, в каждой строке n звездочек)
Задание 1. Вывести на экран фигуру из звездочек (квадрат из n строк, в каждой строке n звездочек).

Вывести квадрат из звездочек
ПРЕДзадача. Х Дейтел П Дейтел КАК ПРОГРАМИРОВАТЬ НА C .№ 3.33 Напишите программу,которая.

Автоматизируй это!

Эксперт Python

7107 / 4611 / 1215
Регистрация: 30.03.2015
Сообщений: 13,243
Записей в блоге: 29

ЦитатаСообщение от Alex_Zhyr Посмотреть сообщение

Для чего в конце нужен print()?

1 2 3 4 5 6 7 8 9 10 11 12 13
>>> n = int(input()) 8 >>> for e in range(n): . print('*'*n) . ******** ******** ******** ******** ******** ******** ******** ********

1728 / 968 / 199
Регистрация: 22.02.2018
Сообщений: 2,694
Записей в блоге: 6

ЦитатаСообщение от Alex_Zhyr Посмотреть сообщение

Для чего в конце нужен print()?

Не знаю внутренней причины в питоне, и в каких случаях, но я заметил, что иногда, при наличие print в цикле, на экран все оптом выводится только если стоит print() за пределами цикла сразу после выхода из него. Я с этим столкнулся в примерах у Лутца.

87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

Вывести на экран квадрат из звездочек
Задание: напишите процедуру,которая принимает параметр-натуральное число N и выводит на экран.

Вывести квадрат в виде звездочек
Программа, которая считывает размер стороны квадрата и затем выводит этот квадрат в виде звездочек.

Вывести на экран квадрат из звездочек с толщиной стен в 2 символа
Вывести на экран квадрат из звездочек с толщиной стен в 2 символа

Квадрат из звездочек
Как сделать правую сторону квадрата.Число вводится пользователем и какое число он введет из такого.

Напечатать квадрат из звездочек
Напишите программу, которая читает размер стороны квадрата и затем печатает звездочками и пробелами.

Нарисовать квадрат из звездочек
Написать скрипт, который выводит в консоль квадрат из звездочек. Длина стороны квадрата считывается.

Или воспользуйтесь поиском по форуму:

Как сделать рамку из звездочек в пайтоне

Звездочка (*), известная как оператор умножения, — широко используемый символ во всех программах. В большинстве случаев нам достаточно использовать его просто как оператор умножения. Однако, если вы серьезно собираетесь стать экспертом по Python-у, то для вас пришло время узнать, насколько полезна и мощна звездочка в Python-е.

Этот статья покажет 5 примеров использования звездочек с достаточно понятными примерами, от самых элементарных до продвинутых.

Применение 1: Оператор умножения или возведения в степень

Самое простое применение — использовать звездочку в качестве инфиксного оператора:

  • Одна звёздочка * — для операции умножения.
  • Двойная ** — для операции возведения в степень.
 >>> 2*3 >>> 6 >>> 2**3 >>> 8 
Применение 2: Получение неограниченного количества аргументов

Функция не обязательно должна получать фиксированное количество аргументов. Если вам нужна большая гибкость или вы не уверены, сколько аргументов будет передано в функцию, вы можете передать в неё неограниченное количество аргументов. Время шоу звездочек.

Как показано в приведенном выше примере, при определении функции мы можем определить параметр с префиксом в виде одной или двух звездочек для захвата неограниченного числа аргументов.

  • Параметр с одним префиксом * может захватывать любое количество позиционных аргументов в кортеж.
  • Параметр с двойным префиксом ** может захватывать любое количество ключевых аргументов в словарь.

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

 def func(*args, **kwargs): pass 
Применение 3: Использование ключевых аргументов функции

Действительно замечательная возможность использования звездочек — это указать функции принимать только ключевые аргументы.

Пример говорит больше тысячи слов:

Как показано в приведенном выше примере, единственная звёздочка * ограничивает все следующие аргументы; они должны быть переданы в качестве ключевых аргументов.

Иногда нам необходимо использовать несколько ключевых аргументов, а также оставить несколько позиционных аргументов. Тогда мы просто ставим позиционные аргументы перед звездочкой.

Применение 4: Итеративная распаковка

Мы можем использовать звездочки для распаковки итераций, что сделает наши программы понятными и элегантными.

Например, если мы собираемся скомбинировать различные итерируемые объекты, например, список, кортеж и множество в новый список, то как лучше это сделать?

Очевидно, что мы можем использовать цикл for для итерации по всем элементам и дальнейшем добавления их в новый список один за другим:

Мы можем таким образом выполнить нашу миссию, но код выглядит очень длинным и не очень “питонистским”.

Более лучшим методом является использование list comprehensions:

Мы уменьшили цикл с трёх строчек, записав его в виде одной строки. Это уже в стиле Python, но это не самый простой способ!

Пришло время посмотреть, как удобны звездочки для решения этой задачи.

Как было сказано выше, мы можем использовать звездочку как префикса для итерируемых объектов для распаковки их элементов.

Кстати, если мы используем одну звёздочку * в качестве префикса словаря, его ключи будут распакованы. Если мы используем двойные звездочки ** в качестве префикса, будут распакованы его значения. Однако мы обязаны использовать ключи, для распаковывания значений. Из-за этого неудобства не принято извлекать элементы словаря звездочками.

Применение 5: Расширенная итеративная распаковка

Этот синтаксис распаковки был введен PEP 3132, чтобы сделать наш код более элегантным.

Этот PEP предлагает изменение синтаксиса итеративной распаковки, позволяя указать «перехватывающее» имя, которое будет присвоено всем элементам списка, не связанных с “обычным” именем.

Вывод

Звездочка — один из наиболее часто используемых операторов в программах. Помимо использования в качестве оператора умножения, в Python существует несколько элегантных и мощных его применений, которые помогут нашему коду стать более “питонистическим”.

Из символов * cделать пирамиду

123

Помогите написать программу (не полностью, а подсказать), которая выводит из символов * делают пирамиду формат ввода: Одно целое число — высота пирамиды (для картинки это число 3 ).
Формат вывода: Пирамида в формате, аналогичном показанному в примере. Я ещё очень зелёный в этой теме, поэтому пока туплю. Написал вот это(бред, но я пытался)

x=int(input()) for i in range(x): print('*'*x) 

Используется python 3.6
Отслеживать
49.3k 17 17 золотых знаков 57 57 серебряных знаков 101 101 бронзовый знак
задан 18 окт 2017 в 20:44
vojdelenije vojdelenije
147 2 2 золотых знака 2 2 серебряных знака 13 13 бронзовых знаков
Осталось слева пробелы добавлять
18 окт 2017 в 20:53

Я пошел вообще другим путем — выравнивание символов по левому краю\центру\правому краю. т.е. есть некая переменная, которая равна желаемой ширине пирамидки. Ну ок, строим пирамидку, и выравниваем по какому нужно параметру. Если нужно решение — сброшу, но подсказка более чем очевидна.

3 апр 2018 в 19:52

7 ответов 7

Сортировка: Сброс на вариант по умолчанию

x=int(input()) for i in range(x): print('%s%s' % (' ' * (x-i-1), '*' * (i*2+1))) 

Отслеживать
ответ дан 18 окт 2017 в 21:22
user239133 user239133
а что значит ‘%s%s’ ?
18 окт 2017 в 21:33
– user239133
18 окт 2017 в 21:37
огромное спасибо)))
18 окт 2017 в 21:39
можно чуть проще: for i in range(n): print(‘ ‘ * (n-i-1) + ‘*’ * (i*2+1))
19 окт 2017 в 20:38

@jfs, можно плюс на запятую заменить еще. По идее, так результат будет отправляться в stdout без лишнего конката (у меня в ответе соответственно лишнее форматирование). Но тут странные ответы и вопрос со словом «зеленый», что можно трактовать двояко, поэтому править ответ и поднимать вопрос на главную не нужно, наверное.

– user239133
19 окт 2017 в 20:47

Я читаю вашу картинку слева направо, но только по отвесную ось симметрии:

 * - 2 пробелы, 1 звездочка ** - 1 пробел, 2 звездочки *** - 0 пробелов, 3 звездочки 

Пробелов убывает, звездочек прибывает, но сумма пробелов и звездочек всегда 3
(в общем случае это x ).

Пусть количество звездочек будет в переменной i .

И так как i меняется от 1 по x (здесь x равно 3 ), вы можете писать:

* — (x — 1) пробелов, 1 звездочка (i == 1 в этой итерации)
** — (x — 2) пробелов, 2 звездочки (i == 2 в этой итерации)
*** — (x — 3) пробелов, 3 звездочки (i == 3 в этой итерации)

Значит, мы будем пользоваться циклом

for i in range(1, x + 1): 

причем число звездочек будет i и число пробелов (x — i) .

Да, я пока читал вашу картину только по отвесную ось, но прибавить остальные звездочки не будет проблема — или будет? (Всегда о 1 менее чем до отвесной оси.)

for i in range(1, x + 1): spaces = (x - i) * ' ' asterisks = i * '*' + (i - 1) * '*' print(f'') 

f (в Python 3.6+) непосредственно перед

  • начальным апострофом, или
  • начальной кавычкой

строки обозначает f-строку (форматированную).

Рисование символами

Author24 — интернет-сервис помощи студентам

Добрый день
Помогите усвоить задачу. Которая звучит так:
Предположим , у вас есть список списков, в котором каждое значение внутренних списков представляет собой строку, состоящую из одного символа, как в приведенном ниже примере.

1 2 3 4 5 6 7 8 9
grid =[['.', '.', '.', '.', '.', '.'], ['.', 'O', 'O', '.', '.', '.'], ['O', 'O', 'O', 'O', '.', '.'], ['O', 'O', 'O', 'O', 'O', '.'], ['.', 'O', 'O', 'O', 'O', 'O'], ['O', 'O', 'O', 'O', 'O', '.'], ['O', 'O', 'O', 'O', '.', '.'], ['.', 'O', 'O', '.', '.', '.'], ['.', '.', '.', '.', '.', '.']]

Элемент grid[x][y] можно интерпретировать как символ с координаиами Х и У в составе рисунка, нарисованного текстовым символом. Начало координат (0,0) находятся в верхнем левом углу, координата Х увеличивается слева на право, а координата У — сверху вниз.
Скопируйте предыдущее значение grid и напишите код, который использует его для вывода следующего изображения.

1 2 3 4 5 6 7
. ..OO.OO.. .OOOOOOO. .OOOOOOO. ..OOOOO.. . OOO. . O.

подсказка используйте циклы в цикле для вывода элементов grid[0][0], grid[1][0], grid[2][0] и так далее вплоть до элемента grid[8][0]. Этим вы заполните первую строку, после чего вам следует вывести символ новой строки. Затем программа должна вывести элементы grid[0][1],grid[1][1],grid[2][1], и т.д. Последний элемент, который должна вывести программа- grid[8][5].
Кроме того, не забудьте передать функции именованный аргумент end, если хотите отменить автоматический вывод символа новой строки при каждом вызове функции print().

Вот что у меня получается пока.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
grid =[['.', '.', '.', '.', '.', '.'], ['.', 'O', 'O', '.', '.', '.'], ['O', 'O', 'O', 'O', '.', '.'], ['O', 'O', 'O', 'O', 'O', '.'], ['.', 'O', 'O', 'O', 'O', 'O'], ['O', 'O', 'O', 'O', 'O', '.'], ['O', 'O', 'O', 'O', '.', '.'], ['.', 'O', 'O', '.', '.', '.'], ['.', '.', '.', '.', '.', '.']] for i in grid[0][0]: print(i) for i in grid[0][1]: print(i) for i in grid[0][2]: print(i) for i in grid[0][3]: print(i) for i in grid[0][4]: print(i) for i in grid[0][5]: print(i)

Программа выводит первые шесть точек, при удлинении циклов вывод продолжается снизу, а не с боку.( я пока не знаю как это сделать.) Подскажите как исправить? И как использовать end? Возможно есть способ укоротить программу и я не так что-то пишу и не правильно условие задачи понял. ?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *