2017-02-01 9 views
-6

Я использую processing.pyPython одну строку для петель

я был после этого Тута (Java)

https://www.youtube.com/watch?v=H7frvcAHXps

и мне интересно, если я могу использовать один и тот же вид для петля в питоне

for(int y = 0; y < height; y = y + cellSize): 

    for(int x = 0; x < width; x = x + cellSize): 

     rect(x, 0, cellSize, cellSize) 

Я получаю сообщение об ошибке, когда я пытаюсь запустить код:

processing.app.SketchException: Maybe there's an unclosed paren or quote mark somewhere before this line? 

Я предполагаю, что, вероятно, легко, но немного другой способ, чтобы сделать использовать тот же самый вид вложенной для петель (на одной строке) в питоне

+0

Привет, добро пожаловать в SO, 'for' loop не работает одинаково в python. Пожалуйста, ознакомьтесь с базовым учебником, например https://wiki.python.org/moin/ForLoop –

+3

. Вы также оставили свой бит public public void main. –

ответ

2

Это будет эквивалент в питона. В range(0, height, cellSize), 0 и height являются границами диапазона, а cellSize - это количество приращений счетчика.

for y in range(0, height, cellSize): 
    for x in range(0, width, cellSize): 
     rect(x, 0, cellSize, cellSize) 
+1

... хотя вы редко, если вообще когда-либо, используете эту конструкцию в python. Вместо этого вы выполняете цикл на контейнерах или генераторах. Скорее всего, здесь у вас будет коллекция ячеек и просто сделайте 'для ячейки в сетке:' – spectras

+0

как у вас есть коллекция ячеек? без 2 вложенных циклов? –

+1

@KippFhtagn> либо путем структурирования ваших объектов, чтобы на самом деле у вас был объект коллекции, либо путем создания [генератора] (http://stackoverflow.com/a/1756156/3212865), разделяющего * как на цикле * от *, что сделать * while цикл. – spectras