こんにちは。完全自動化研究所の小佐井です。
RPAとプログラミングの基礎を身に付ける連載の第4回です。
Sikuliで学ぶRPA超入門の第4回です。いままで、「Hello」と1回だけ入力させていましたが、今回は5回書かせます。プログラム基礎構造の最後章「繰り返し処理」です。
この記事は第3回目の続きとなっています。第3回目を実践していない方は次の記事をお読みください。
それでは、どうぞ!
繰り返し処理を学ぼう
さっそく開発を始めていきましょう!
まずは準備です。
まず準備をしましょう
準備1:別名で保存しましょう
前回で使ったプログラムを変更して使いますが、区別するために別名で保存します。SikuliX開発画面のメニュー「ファイル」をクリックし(図1➊)、「名前を付けて保存」をクリックします(図1❷)。
図1 名前を付けて保存
図2のポップアップが出るはずです。
図2 保存ダイアログ(1)
フォルダ名に「JB100104」と書き加えて(図3➊)、「Save」をクリックしてください(図3➋)。
図3 保存ダイアログ(2)
準備2:余計なファイルを削除しましょう
前回、日時を付けてファイルを保存したので、いくつかファイルがデスクトップ上にできているはずです。今回のプログラムにとっては邪魔なので「Hello.txt」以外のSikuliXが作ったテキストファイルは削除してください(図4)。
図4 デスクトップ上のファイル
ロボの開発を始めます
プログラムを書こう
13行目の「type(“Hello”)」をコメントアウトしましょう。そして、14行目からリスト1のプログラムを記述してください。
num = 0
while num < 5:
type("Hello")
type(Key.ENTER)
num += 1
リスト1 繰り返し処理
15行目の「while num < 5:」を入力してEnterキーを押すと、16行目は右側にインデント(字下げ)されるはずです。できましたか?SikuliXのソースコードウィンドウで見てみるとリスト2のようになっているはずです。
リスト2 現在のプログラム
14行目の「num = 0」は、前回のページの変数を理解していれば、わかりますね。「num」というのは変数です。変数numに0(ゼロ)を入れた(代入した)ということになります。
15行目の「while num < 5:」は、whileの後の条件式「num < 5」が「真」である間は繰り返して実行しますよ、ということです。「真」?中学生のときに習ったような??という方多いと思います。もう少し噛み砕いて言うと、「変数numが5より小さい間は繰り返す」ということです。
繰り返されるプログラムはリスト3の青枠部分になります。インデントしている部分はwhileの影響を受けて、繰り返し処理されます。
リスト3 while文の説明
リスト3の青枠部分のプログラムを一つずつ見ていきましょう。
- Helloとタイプする
- Enterキーを押す
- 変数numに1を足す
3番目に変数numに1を足すということはどういう動きになるでしょう?最初0がnumが入っています(13行目)ので、繰返し1回目ではnumには1が代入されます。2回目には2が代入され、、というわけです。
変数numに数値を足しながら増やしていくことを「インクリメントする」と言います。
他のプログラム言語では「num = num + 1」と書く場合もあります。これでは長いので、Pythonでは「num += 1」と書けるようになっています。
逆に数値を減らしていく場合は「num -= 1」と記述します。
リスト3のようにインデントでwhileの影響範囲を表現するのがPythonの特徴です。他のプログラム言語では()や{}で囲うことで表現することが多いです。
他の多くのプログラム言語では、Pythonのように強制的にインデントしなくてはいけない、ということがないので、「読みづらくなる」こともあります。
実行しよう
今回書くプログラムはこれだけです。しっかりとプログラムを保存してから実行してください。「Hello.txt」をダブルクリックしてメモ帳が開くと、続けて「Hello」が5回入力されます(図5)。別名で保存されて、メモ帳が閉じたら完了です。
図5 メモ帳にタイプされた状態
まとめ
このページでは繰返し処理を学びました。同時に変数も使いました。短いプログラムでしたが、とても重要なことが詰まっています。これで、プログラムの基本構造3つ「順次処理」「条件分岐」「繰り返し処理」を網羅したことになります!おめでとうございます!
SikuliXで学ぶRPA超入門の他の回はこちらです。