2013-08-30 3 views
2

Я читал учебник о python here и задавался вопросом, что если цикл for не имеет такого блока {}, как мы узнаем, какой блок кода находится в цикле for. Должны ли мы прочесть его на основе отступов кода? Или я пропустил что-то принципиальное в python? И пока я тестировал некоторый код python в блокноте ++, когда я был в цикле for и создавал новую строку в середине моего кода, он почему-то сделал строку кода и все выше нее блоком кода, а все остальное ниже что-то другое. Снова я что-то упускаю? Надеюсь, это не плохая практика программирования.для кода кода цикла

+5

Вы прочитали первую главу этого учебника? Все дело в отступе. –

+0

@RohitJain no Я пропустил его и сразу перешел к главе 2 переводчика. Тогда я вернусь. –

+0

@JackThor Да, это не просто стиль. Это синтаксис в python – Cruncher

ответ

6

Python запускает все на отступы. Уровень отступов - это то, как он знает, что с ним делается.

Например, это работает:

for i in range(10): 
    print i 

Но это взрывает с IndentationError:

for i in range(10): 
print i 

От docs:

Leading пробельных (пробелы и табуляции) в начало логической строки используется для вычисления уровня отступа строки e, который в turn используется для определения группировки операторов .

+0

, но если мне нужно добавить строку кода в ваш код, как этот 'for i в диапазоне (10); –

+0

@ JackThor отступ * есть * ваши брекеты. Если вы хотите добавить строку в цикле 'for', укажите ее на том же уровне, что и' print i'. После цикла 'for'? Вернемся к норме. Хотите еще одну область внутри чего-то уже отступом? Отступ снова. (И слово советов, использование пробелов или, по крайней мере, ваш редактор конвертирует вкладки в пробелы.) Если вы посмотрите на образец кода Python, это должно стать ясным довольно быстро. – vroomfondel

+0

@JackThor Мы используем 'pass' для пустых составных операторов:' для i в диапазоне (10): pass' –

Смежные вопросы