Уведомления

Группа в Telegram: @pythonsu

#1 Июль 2, 2016 00:39:11

Valera_idi_syuda
Зарегистрирован: 2015-10-09
Сообщения: 13
Репутация: +  0  -
Профиль   Отправить e-mail  

Цикл в генератор

board = list([["O"] * 9 for x in range(9)])
i = iter([x if x>0 else '  ' for x in range(8, -1, -1)])
for row in board[0:8]:
    row.insert(0, str(next(i)))
    print(" ".join(row[:9]))

Написал что-то такое, но оно возвращает лист из None
[print(row.insert(0, str(next(i)))) for row in board[0:8]]

Отредактировано Valera_idi_syuda (Июль 2, 2016 00:43:52)

Офлайн

#2 Июль 2, 2016 01:11:54

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Цикл в генератор

потому что print() “выводит на экран”, и возвращает ничего == None



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#3 Июль 2, 2016 01:37:00

Valera_idi_syuda
Зарегистрирован: 2015-10-09
Сообщения: 13
Репутация: +  0  -
Профиль   Отправить e-mail  

Цикл в генератор

JOHN_16
потому что print() “выводит на экран”, и возвращает ничего == None
а почему оно None? И как сделать, чтобы было не None, а то, что в первом коде (пусть без вывода строки)

Офлайн

#4 Июль 2, 2016 10:31:58

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

Цикл в генератор

Резнесите обработку данных и их вывод. В более сложных ситуациях оформляется как генератор на yield.
Пишите так

board = [["O"] * 9 for x in range(9)]
i = (x if x>0 else '  ' for x in range(8, -1, -1))

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version