【SikuliX】【Python】構文~繰り返し(for文/while文)編~

画像識別で目的の場所(オブジェクト)を指定するなど、GUIを自動で操作するフリーツール:「sikuliX」。その sikuliX での繰り返し(for / while 文)について、本記事で紹介していこうと思います。

※sikuliXの構文は、基本的にPython の構文がそのまま利用できます。そのため、一部Pythonの文法の説明になっている部分があります。

スポンサーリンク

for文の構文

以下に、一例としてよく使いそうなものを記載します。

なお、sikuliXで動かす場合、インデントの位置(Tabキー:1つ分)も正確に設定しないと、エラーとなりプログラムが実行されませんので、注意しましょう。

基本形

基本の構文パターンは以下のように記載できます。

基本形

for “変数” in “繰り返したい回数”:

繰り返したい処理


構文例

count = 1

for count in range(5):

print(count)

実行結果

「1」「2」「3」「4」「5」が順に表示される。

※指定した回数だけループを使いたい場合は、range関数を使用しなければなりません。使用しない場合は、TypeError: ‘int’ object is not iterable が表示されます。これは、for文の繰り返しの箇所が、iterableなものでないといけないためです。

※iterableとは、「1つずつ返す機能をもったオブジェクト」と思ってください。具体的には、「リスト」「文字列」「配列」などが挙げられます。

else文

else を使用したパターンです。

for文でも条件分岐(if文)と同じように、elseが使用できます。elseで記載された処理は、for文の繰り返しが終わった時に、実行される処理になります。

else文

for “変数” in “繰り返したい回数”:

繰り返したい処理

else:

繰り返し回数が終わった時に実行される処理


構文例

count = 1

for count in 5:

print(count)

else:

print(“finish the loop”)

実行結果

「1」「2」「3」「4」「5」「finish the loop」が順に表示される。

こちらのパターンでは、elseを使う意味や利点が分かりにくいと思います。elseを使わなくても同じことじゃないか?と思うかもしれません。

そんな場合は、次のbreak文およびcontinue文を確認してください。break文を利用する利点が分かるかと思います。

スポンサーリンク

break文

以下は、break文です。

if文と併用することで、for文の繰り返しの途中でも for文から抜けることができます。

break文

for “変数” in “繰り返したい回数”:

繰り返したい処理

break


構文例1

count = 1

for count in 5:

print(count)

if count == 3

break

実行結果1

「1」「2」「3」が順に表示される。


構文例2

count = 1

for count in 5:

print(count)

if count == 3

print(“finish the loop by 3”)

break

else

print(“finish the loop by 5”)

print(“finish the loop by 3 or 5”)

実行結果2

「1」「2」「3」「finish the loop by 3」「finish the loop by 3 or 5」が順に表示される。

continue文

以下は、continue文です。

if文と併用することで、特定の条件下の処理をした後でも、引き続き for文の繰り返しを続けることができます。

continue文

for “変数” in “繰り返したい回数”:

繰り返したい処理

continue


構文例1

count = 1

for count in 5:

print(count)

if count == 3

continue

実行結果1

「1」「2」「3」「4」「5」が順に表示される。


構文例2

count = 1

for count in 5:

print(count)

if count == 3

print(“finish the loop by 3”)

continue

else

print(“finish the loop by 5”)

print(“finish the loop by 3 or 5”)

実行結果2

「1」「2」「3」「finish the loop by 3」「finish the loop by 5」「finish the loop by 3 or 5」が順に表示される。

リスト

配列を使用し、以下のような記載もできます。

リスト

for “変数” in “リスト”:

繰り返したい処理


構文例

music = [‘pops’, ‘classic’, ‘jazz’]

for elements in music:

print(elements)

実行結果

「pops」「classic」「jazz」が順に表示される。

スポンサーリンク

while文の構文

こちらでも、一例としてよく使いそうなものを記載します。

基本形

基本の構文パターンは以下のように記載できます。

基本形

while 条件式

繰り返したい処理


構文例

count = 0

while count < 5:

print(count)

count = count + 1

実行結果

「0」「1」「2」「3」「4」が順に表示される。

while文で注意しないといけないのは、条件式に変化をつける式( 上記例では、インクリメント:count = count + 1)を記載しないと、いつまでもループが続き、永久ループになってしまいます。意図的に永久ループを起こしたい場合を除き、条件に変化をつけるようにしましょう。

break文

永久ループにしたい場合は、条件式を「True」や「1」と設定すれば良いです。この場合、ループを抜けるための処理をするには条件分岐(if文)とbreakを使うと良いと思います。

break文

while 条件式

繰り返したい処理

break


構文例

count = 0

while True:

if count == 5

break

print(count)

count = count + 1

実行結果

「0」「1」「2」「3」「4」が順に表示される。

また、その他のfor文で説明した内容は、同様にwhile文でも通用するので試してみてください。

まとめ

今回は、繰り返し(for文 / while文)について記載しました。どちらを利用するかは、各々考えて使ってみてください。

なお、本記事の内容はあくまで一例です。基本形をベースに、他にも色々試してみると、新たな気づきもあるかと思います。

↓↓sikuliX についての以下の記事も、どうぞ↓↓

【RPA】sikuliXのインストール方法

【RPA】sikuliX の基本的な使い方

スポンサーリンク