20.04.2019, 02:21 [+3 UTC]
в нашей команде: 3 551 чел. | участники онлайн: 3 (рекорд: 21)

:: РЕГИСТРАЦИЯ

задать вопрос

все разделы

правила

новости

участники

доска почёта

форум

блоги

поиск

статистика

наш журнал

наши встречи

наша галерея

отзывы о нас

поддержка

руководство

Версия системы:
7.74 (12.04.2019)
JS-v.1.33 | CSS-v.3.35

Общие новости:
09.03.2019, 10:08

Форум:
19.04.2019, 22:45

Последний вопрос:
19.04.2019, 18:03
Всего: 149309

Последний ответ:
19.04.2019, 21:38
Всего: 258211

Последняя рассылка:
19.04.2019, 17:45

Писем в очереди:
0

Мы в соцсетях:

Наша кнопка:

RFpro.ru - здесь вам помогут!

Отзывы о нас:
09.03.2018, 16:52 »
svrvsvrv
Большое спасибо за подробный ответ! [вопрос № 192730, ответ № 276236]
28.06.2012, 19:24 »
Глух
спасибо за участие. У меня на вкладке "Визуальные эффекты" параметров быстродействия пункта "Включение композиции рабочего стола" нет. [вопрос № 186424, ответ № 271312]
19.07.2011, 14:21 »
Wopross
Все понятно. Спасибо . [вопрос № 183780, ответ № 267925]

РАЗДЕЛ • PHP / Perl / Python

Создание программ на языках PHP, Perl и Python.

[администратор рассылки: Коцюрбенко Алексей Владимирович (Модератор)]

Лучшие эксперты в этом разделе

Коцюрбенко Алексей Владимирович
Статус: Модератор
Рейтинг: 336
Хватов Сергей
Статус: Академик
Рейтинг: 39
Асмик Гаряка
Статус: Советник
Рейтинг: 0

Перейти к консультации №:
 

Консультация онлайн # 195105
Раздел: • PHP / Perl / Python
Автор вопроса: smfjl2@yandex.ru (Посетитель)
Отправлена: 01.04.2019, 15:06
Поступило ответов: 1

Здравствуйте! Прошу помощи в следующем вопросе
Python
как заполните массив размерностью n × m числами от 1 до mn, расположив их по спирали, закрученной по часовой стрелке

Состояние: Консультация закрыта

Здравствуйте, smfjl2@yandex.ru!

В задании не сказано спираль раскручивается или закручивается. так что реализована закручивающаяся. Раскручивающаяся на самом деле реализуется так же, только значения подставляются другие smile

Код (Python) :: выделить код
#!/usr/bin/python3

import sys

# ввожу размеры
width, height = map (int, input("Введите размеры через пробел: ширина высота: ").split())

# создаю массив
array = [[None] * width for y in range(height)]

xf = 0; xl = width; yf = 0; yl = height
val = 1

while True:
    # двигаюсь слева направо
    if xl <= xf: break
    for x in range (xf, xl):
        array[yf][x] = val
        val += 1
    yf += 1
    # сверху вниз
    if yl <= yf: break
    for y in range (yf, yl):
        array[y][xl - 1] = val
        val += 1
    xl -= 1
    # справа налево
    if xl <= xf: break
    for x in range (xl, xf, -1):
        array[yl - 1][x - 1] = val
        val += 1
    yl -= 1
    # снизу вверх
    if yl <= yf: break
    for y in range (yl, yf, -1):
        array[y - 1][xf] = val
        val += 1
    xf += 1

# вывод
for y in range (height):
    for x in range (width):
        sys.stdout.write("{0:4}".format(array[y][x]))
    sys.stdout.write("\n")


Написано на Python 3 под Linux

Результат:

$ ./195105.py 
Введите размеры через пробел: ширина высота: 5 3
   1   2   3   4   5
  12  13  14  15   6
  11  10   9   8   7
$ ./195105.py 
Введите размеры через пробел: ширина высота: 3 5
   1   2   3
  12  13   4
  11  14   5
  10  15   6
   9   8   7
$ ./195105.py 
Введите размеры через пробел: ширина высота: 1 1
   1
$ ./195105.py 
Введите размеры через пробел: ширина высота: 1 2
   1
   2
$ ./195105.py 
Введите размеры через пробел: ширина высота: 2 1
   1   2
$ ./195105.py 
Введите размеры через пробел: ширина высота: 0 0
$ ./195105.py 
Введите размеры через пробел: ширина высота: no
Traceback (most recent call last):
  File "./195105.py", line 6, in <module>
    width, height = map (int, input("Введите размеры через пробел: ширина высота: ").split())
ValueError: invalid literal for int() with base 10: 'no'


Консультировал: Хватов Сергей (Академик)
Дата отправки: 02.04.2019, 22:15

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.

Яндекс Rambler's Top100

главная страница | поддержка | задать вопрос

Время генерирования страницы: 0.18195 сек.

© 2001-2019, Портал RFPRO.RU, Россия
Калашников О.А.  |  Гладенюк А.Г.
Версия системы: 7.74 от 12.04.2019
Версия JS: 1.33 | Версия CSS: 3.35