Это интересный механизм для создания списка, который будет использоваться для отображения состояния доски для игры в крестики-нолики. Я начну с ответа на ваш третий вопрос и начну с него.
3) i
- сокращение от «index» при использовании в классической структуре цикла for. В Python циклы, основанные на индексах, обычно используются, когда вам нужен доступ к самому фактическому индексу (например, у вас есть что-то, что вам нужно для выполнения действия над array_member[i]
). Вы можете написать цикл как for index in range()
, если он более явный / имеет больший смысл; для языка не имеет значения, какое имя вы выберете для индексной переменной.
2) Основываясь на том, что мы рассмотрели в # 3, цель переменной square
в этом контексте - выступать в качестве индекса для списка board
, по которому мы итерируем. Соглашение об именовании square
чаще всего встречается при использовании цикла for-each, где, по-видимому, у вас уже будет список squares
, по которому вы перебираете:
for square in list_of_squares:
if square == 'X':
# Do something, etc.
1) На основании всего этого переменная square
начинается с присвоенного ей 0. После первой итерации цикла он становится равным 1, затем 2 и т. Д., Пока не достигнет предела, заданного диапазоном (в данном случае NUM_SQARES
или 9). Стоит отметить, что функция range не включает указанную границу, поэтому этот цикл будет выполняться от 0 до 8, что дает в общей сложности 9 «квадратов» в массиве.