この記事を読むことによって、
内包表記の二重ループ
論理演算子のandとorの使い所
上記によってPythonで市松模様のドット絵を描画
の概要を掴めます。
主に、Pythonの二重ループを学習中で、規則的で簡単なドット絵を描きたい方を対象にしています。
題材は、1つおきに色が塗りつぶされている市松模様です。
Excelで完成形を作成致しました。

この図を見ての通り、2で割り切れる行 and 2で割り切れる列の所に色が塗りつぶされています。
また、2で割り切れない行 and 2で割り切れない列の所に色が塗り潰されています。
これをPythonで作って行きます。
まずは、この様な枠線のみを作成致します。

ここでは最初に内包表記を使ってリスト(配列)の全ての要素に「□」で埋めます。
10行10列の□を取り出すには、リストarrayを行ごとに取り出す変数line、lineからドットごとに取り出す変数dotを使った二重ループで、内ループの所で改行することによって、次の行に行く前に改行をしています。
#市松模様の二次元リストを内包表記で作成
array=[['□' for i in range(10)] for j in range(10)]
#ドット絵の取り出し
for line in array:
for dot in line:
print(dot,end='')
print()
実行結果です。

では、これを一つ置きに「■」に置き換えて行きます。
リストは0行0列から始まります。
このリストarrryは1番最初がarray[0][0]、1番最後がarray[9][9]です。
そこで、一つ置きになるように、IF文の中で論理演算子のand と or を使い、
「2で割り切れる行 and 2で割り切れる列」 or
「2で割ると1余る行 and 2で割ると1余る列」を「■」にします。
#市松模様の二次元リストを内包表記で作成
array=[['□' for i in range(10)] for j in range(10)]
#市松模様の1つ置きに■を格納(i,j共に偶数・i,j共に奇数の時に■)
for i in range(len(array)):
for j in range(len(array[0])):
if(i%2==0 and j%2==0) or (i%2==1 and j%2==1):
array[i][j] = '■'
#ドット絵の取り出し
for line in array:
for dot in line:
print(dot,end='')
print()
実行結果です。

お疲れ様でした。ブレイクタイムPhotoは、

柏市にある、あけぼの山農業公園のひまわりです。
ご精読ありがとうございました。
■ 独習Python ■
Kindle版
単行本(ソフトカバー)