見出し画像

Pythonによる人工知能学習 その4 if文で分岐処理

オリジナルのボイスチェンジャーを開発するための人工知能学習の記録、その4。前回少しやったんですが、繰り返し処理のfor文と分岐処理のif文の書き方について、複数の開発言語を覚える時に、この微妙な違いが案外間違いやすい所だったりする。

✔変数(データの入れ物)について

a = 10
print(a)

データの入れ物である、変数について。プログラム言語によっては整数ですよ、文字ですよ、変更できますよ、変更出来ませんよと宣言して行うものですが、Pythonでは必要無いのかな?それとも省略できるけど追加できたりもする???一旦無しで覚えておこう

※一応、 int型、float型、str型、bool型など方もあるようですね。前に入力の処理の時、入力した値をfloat型で受け取っていたな。明示的に方を変換や整理したい時にはキャストするということか・・・

画像1

例えば、こんな感じで、小数点ありの数字をint型で出したり、文字型をint型に直して計算したりできるんだろうか・・・

画像2

出来た!ちなみに、moji変数をint型に直さずに5を足してみたら、実行時にエラーで落ちました。

✔変数の中身が数字に変換できるものかチェックする

画像3

.isdigit()で整数に変換できるか調べられる。

✔if文を使って分岐処理する

画像4

if文はこのように書くらしい。else ifや複数条件があるときはどうするんだろう・・・書籍になかったのでここだけはネットでチェックしてみる。

if 条件式1:
   `条件式1Trueのときに行う処理`
elif 条件式2:
   `条件式1Falseで条件式2Trueのときに行う処理`
elif 条件式3:
   `条件式1, 2Falseで条件式3Trueのときに行う処理`
...
else:
   `すべての条件式がFalseのときに行う処理`こ

このように書くみたいですね。else if が、elifと略されているところが特殊だなぁ。でもなんだか可愛いからいいか。

あと、比較する時の式の例が以下のよう。

画像5

大体は理解可能。isと==の違いは後でちゃんと理解したいですね。inとnot in が標準であるのは嬉しい。含む含まないというのは文字列に限るのかな。

Pythonならではの書き方として、10 < num < 100 のような書き方もできるようです。これは地味ですが便利。パッと見でどんな値を入れたいかわかりやすいですもんね。

画像6

inについては、文字列だけでなくリスト(配列?)でも使えるみたいですね。これまた便利。

✔Pythonのif文の注意点

TrueかFalseだけではなく、数字があるか0かなどでも分岐しちゃうようだ。他のプログラム言語では、返り値が0とか""(空文字)だったとしても、それは数字なのでFalse扱いではないんですが、その記述が間違わないようにしなきゃ。使い慣れたらその特性で分岐も書けそうだけど、他の言語を書く時にしくじりそうな所でもありますね。

使いやすい方法として、リストの内容が空だったり、文字列の内容が空の時の入力判定などには良い。こういう使い方はPHPでもやっていたかも。

画像7

✔論理演算子(and,or,not)で複数条件や否定を指定する

待ってました!あとはここを押さえておけば基本の分岐処理は書けますね。プログラミング言語は、変数、入出力、演算子、分岐、繰り返しができれば、基本は結構出来たりします。あとは用途や使いたいライブラリによってアレコレ覚えるだけですからね。

画像8

複数の論理演算子を併せることも可能、改行が必要な場合は、()で囲むか、改行の所に\(バックスラッシュ)を入れるといいらしい。()が馴染みあるかな。※これはif文だけのことでは無いらしい。

画像9

同じく条件をかけ合わせる時には、()でそれぞれ囲っていく事も出来そうですね。ただ、これは想定どおりの動作をしているか、少し怪しいので、またおいおい実際に作っていく時に確認していきます。

if文とfor文、一気にまとめようと思ったけど、if文だけでも従来のプログラムと違うところがあって、長くなったのでfor文は次回。

段々とPythonの基本がわかってきました。

この記事が気に入ったらサポートをしてみませんか?