書籍「退屈なことはPythonにやらせよう」を教本にした「投資家のためのプログラミング勉強会(投プロ)」第3回目です。

  • 第1回 複数の株情報サイトを一度に表示してみよう
    • プログラミング初めの一歩
    • 変数とは?
  • 第2回 指定した証券コードの関連サイトを表示する
    • 文字列の結合
    • print()関数でディスプレイに変数を表示する
    • input()関数でキーボードから文字を変数に入力する

今日はプログラミングの超重要要素である「条件分岐」について学びます。この条件分岐と後日学習する「ループ」を理解すると、プログラミングで実現できることが一気に拡がりますので、頑張って学んでいきましょう。(書籍では第1部2章の内容となります)

なお、投プロは現在オンラインのみでの勉強会ですが、近い将来は実際の勉強会方式でも開始します。独学ではなかなかできないプログラミングの勉強を投資家仲間とワイワイできると楽しいですよね。(平日夕方以降、五反田〜恵比寿あたりの貸会議室で行う予定です)

さて、前回は指定した証券コードの関連ウェブページを一気に開くアプリを作りました。
本日は条件分岐と文字列の長さを取得する関数を使って、クリック一発ウェブページ表示アプリ 「一発クン」のバージョンアップをしていきましょう。


こちらは前回のソースコードです。

証券コードを入力すると、その関連ページを一気に表示してくれる機能でしたが、実在しない証券コード(例えば “ABS76” など)を入力すると、「ページが存在しない」というエラーがブラウザ上に表示されてしまいます。

そこで今回は、入力した値が証券コードとして有効かどうかのチェックを行う機能を追加したいと思います。

「有効な証券コードが有効かどうか」は「入力文字が4桁の文字列かどうか」で判定します。(より厳密にチェックする場合は、実在する証券コードとの付け合わせ処理が必要ですが、これは4章の「リスト」を勉強した際に実装しますのでお楽しみに)

ある値が有効かどうかを判定するロジックは「条件分岐」という方法を使います。Pythonではifという命令で表します。もちろん英語のifです、わかりやすいですね。
使い方はこうです。
今回判定したい条件は、入力された証券コードの文字列の長さが4かどうかなので、YESならばウェブページを開き、NOならばエラーメッセージを表示するようにプログラミングしていきます。
ここで文字列の長さを計る関数 len() の登場です。
lenは()の中に長さを測りたい文字変数を入れるとその文字列長を返してくれる便利な関数です。(lenはlengthの略ですね)
では実際に使って動きを確認してみましょう。(プログラミングはこのようにとっとと自分の手を動かしていろいろ試してみることが理解への早道です!)

上記を実行すると、キーボードから入力した文字の文字数が表示されたはずです。

stock_codeという変数にキーボードから入力した文字列がセットされて、その文字列をlen関数に入れると文字列の数が変数mにセットされます。さらにprint関数にmを渡すと、その文字数が表示されるのです。

文字列長の取得方法が理解できたところでいよいよ条件分岐に進んでいきましょう。
今回判定したい条件は「mが4かどうか」ということでした。
これをPythonではこのように判定できます。

==は両側の変数が同じかどうかを判定してくれる命令です。変数に値を代入する=(イコール)とは関係ないので注意してください。==という命令だ、と覚えてください。

==の判定結果はTrueかFalseで返してくれます。(True/FalseはPythonの世界でYes/Noを表します)

では実際に判定結果を変数hanteiに入れてprint()関数で表示してみましょう。mに6を入れた場合と4を入れた場合で試してみましょう。

どうなりましたか?(読むだけではなく実際に手を動かして実行してみてくださいね!)

と表示されましたか?

=の記号が並んで表示されるので違和感があるかもしれませんが、上記の意味を押さえていれば理解できると思います。Pythonでは==の他にも下記の判定機能が用意されています。

上から「mが4でなければTrue、4ならば False(==と逆の判定をする)」「mが4より大きければTrue」「mが4より小さければTrue」という判定となります。
他にも判定機能がありますが詳細は「退屈なことはPythonにやらせよう」の2.2比較演算子を確認してみてください。

繰り返しますが、= と==は似て非なるものですので混乱しないように!

それでは今回勉強したlen関数と==を頭にいれつつ「入力された証券コードの文字列の長さが4かどうかを判定し、YESならばウェブページを開き、NOならばエラーメッセージを表示する」というように if を使って前回のソースコードを改造してみましょう。(答えを見る前に皆さんも実際に書いてみてくださいね)

どうでしょうか?できましたか??

ifの使い方で注意したい点は、
  • 条件部分にはTrueかFalseがセットされる変数を記載する
  • ifとelseのすぐ後ろにコロンが必要(これはPythonのお約束で記載しないとエラーになります)
  • ifとelseの後の処理はインデント(文字下げ)が必要(これもPythonのお約束)
です。特に後の二つは忘れるとハマりやすいので注意しましょう。ifの詳細は「退屈なことはPythonにやらせよう」の2.7.1も参照してください。
なお条件式は下記のような記載も可能です。

ifの条件部分にはTrueかFalseが来さえすれば、このように様々な方法で記載できます。

本日はここまでです。
条件分岐は、
  • 株価が1,200円を超えたら自分にメール通知する
  • 損失が100,000円を超えたらツイッターに「うぎゃー!」っとメンションする

などなどプログラミングで実現したい機能を考えた時には必ず必要な処理となりますので、しっかり勉強していきましょう!

次回は、入力された証券コードをさらに詳細にチェックできる機能を追加して、一発クンをバージョンアップしていきます。

次回の学習予定

  • forループ(2.7.7)
  • リスト(4.1)

退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミング
退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミング

こちらの本を教本にした「投資家のためのプログラミング勉強会(投プロ)」を主宰しています。

そもそもプログラミングとはなんぞや、Pythonを実行させる環境をどのように用意するか、などプログラミングにおける超基本的な内容が、我々のような非ソフトウェアエンジニア向けに分かりやすく記載されています。はじめの一歩にはこれ以上ない教材です(^^)

Please follow and like us:

コメントをどうぞ

メールアドレスが公開されることはありません。

CAPTCHA


Social media & sharing icons powered by UltimatelySocial