2017年8月22日こんにちは、さのです。前回(第5回)の記事はこちらこちら。list[5]」でももちろん大丈夫です!どこから見ていけばいいのかから考えていきましょう。出力結果が2行あるので、print関数が2つあるなと気付けるはずです。追加されていることに気が付きます。そこに気付いたらまずはそれをprint関数で出力すればいいのです。1行目との違いは何でしょうか。59の要素が消え、順番が降順になっていますね。それに気づければもう簡単です。removeメソッドで要素59削除し、いったんsortメソッドで昇順に並び替えてからreverseメソッドでそれを逆順にします。「removeメソッド」→「sortメソッド」→「reverseメソッド」という順で説明しましたが、もちろん「sortメソッド」→「reverseメソッド」→「removeメソッド」でも「sortメソッド」→「removeメソッド」→「reverseメソッド」でも同じ出力になりますね。その辺も確認しておいてください!さて本日は何をやるかといいますと、プログラミングを学ぶ上で1番大切といっても過言ではない、「if文」を学んでいきます。その名の通り、「もし~だったら」というプログラミングです。どの言語をやっても必ず出てきますので、ここでマスターすれば他の言語をやるときにも応用可能です。【Chapter5】一番大事な文法、「if文」!if文(基本編)・まずはifとelse・elifで分岐させてみようif文(応用編)・andとor・複雑なプログラムを書いてみよう(input関数)目次if文(基本編)まずはifとelseelifで分岐させてみようif文(応用編)andとor複雑なプログラムを書いてみよう(input関数)if文(基本編)一番大事だから気合を入れましょう!と先ほど言いましたが、そんなに難しくはないので心配はいりません!まずはifとelseまずはホントにキソのキソから。ifというのは「もし~だったら」という意味です、中学校でやりましたね。「~」はifの後ろに書いてある条件のことです。elseも中学レベルの英単語で、「他に」とか「そうでないならば」という意味の副詞ですね。このまんまの意味でプログラムが動きます。プログラム例を見ていきましょう。less」は「100以下」という意味です。1行目でaに100を代入しましたね。「=」は代入ですよ、覚えていましたね?2行目に今回のテーマであるif文が使われています。先ほど説明したルール通りに理解すると、「もしa>100だったら」ということですね。print関数があります。「もしa>100だったら」、このプログラムにつながります。今回はaは100なので、a>100ではありませんね(a>100というのは100よりも大きいという意味なので、100は含まれません)。100’)」にはつながらず、この行は実行されないのです。このまま終わるわけにはいきません。いうことで「そうでないならば」を意味するelseがあるのです。ifの条件が正しくなかったら、if文の次の行には進まず、その次のelseに進みます。elseはそれ以外ということなので、ifでないならば100%elseですね。以上の流れでelseの次の行のprint関数につながり、それが結果として出力されるのです。ややこしかったですかね。aの値を変えてやってみましょう。100先ほどのaの値を110にしてみました。100」となりましたね。100’)」が実行されたというわけです。今回はelseまでプログラムが進む必要がなかったということになります。条件に当てはまったら◇◇◇◇へ!当てはまらなかったらelseで△△△△へ!※if、elseのあとのコロン「:」を忘れずに!!elifで分岐させてみようifとelseでは2つにしか分岐させることができませんでしたね。分岐させたいと思ったはず。それをかなえてくれるのがelifと呼ばれるものです。ifを短縮したものです。elseとifが混ざったので、「そうでないならばもし~」という意味です。プログラム例を見ていきましょう。100まずifで「もしaが100より大きかったら」ということを表しいています。今回aは100より大きくないので、その下のprint関数が無視され、その次のelifに進みます。最初のifの条件に当てはまらなかったら、先ほどの2分岐ではelseに進みましたが、elifがあるとこちらに進みます。このプログラムでelifは「aが100未満だったら」という条件を表しているので、今回はこの条件も当てはまりません。分岐させることだって可能です。120」が実行されましたね。120」となぜ「=」が2つあるのでしょう。「=」が1つだと代入するという意味でした。それとの違いを出すために、数学的な等号を表すときは「=」を2つ書くというルールがあるのです。%elifの使い方をまとめると、こんな感じです。Go!andとorこれまでは、1つのifやelifにつき、条件を1つしか追加できませんでした。ここからは、and(かつ)とor(または)を使うことで、2つ以上の条件を追加できるようになります。100最初のifは「aは0より小さい」という条件です。この条件は間違っているので、次のelifに進みます。ここでandが使われていますね。「aは0より大きい”かつ”100以下」という条件です。この「かつ」を表せるのがandで、andで繋いだ2つの条件がどちらも当てはまったら正しいとみなされ、その下のprint関数へ進みます。aは500なのでこれも違います。次、elif「aは0より大きい”または”100以下」という条件です。この「または」を表すのがorで、orの前後のどちらかの条件が当てはまったら正しいとみなされます。今回は0より大きいという条件の方に当てはまったのでその下のprint関数が実行されました。最後に書いてある「aは数じゃないよ」という意味は分かりますか?3つ目の条件である「aは0より大きい”または”100以下」というのは、数字すべてのことですよね(虚数があるよとかいうクレームは受け付けません)。3つ目の条件で当てはまらず、elseにプログラムが進んだ時点でそれは数字ではないよということです。複雑なプログラムを書いてみよう(input関数)複雑なプログラムを書く前に、1つだけATOMの設定をします。パッケージを追加しましょう。Packages」の検索窓で「platformio-ide-terminal」と検索し、それをインストールなんのための作業だったかというと、書いたプログラムを実行するためのものです。atom-runnerでいいじゃんと思うかもしれませんが、それではできない実行をこれからするので、このターミナルというパッケージをインストールしました。atom-runnerで実行できないのは、入力を伴うプログラムです。〇」とプログラムの頭で定義していた〇の数字についてしかif文で実行できてませんでした。入力を伴えるということは、その場その場で好きな数字を入力できるということです。プログラム例を見てみましょう。print('20代です。print('30代です。print('40代です。print('50代です。print('60才以上です。print('未成年です。お酒を飲んではいけません!')ifやelif、elseの中身については今までと同じ分岐の仕方ですので、簡単ですね。今までと異なる点は最初の行です。aを具体的な数字で定義していません。これが入力を伴うことのできるinput関数です。inputと記すことで、そこにプログラムを実行したあとから数字を入力していいですよという合図を送れるのです。今回は年齢を入力してくださいということなので、「int」で整数を入力するinput関数になっています。これを先ほどインストールしたターミナルで実行してみましょう。画面左下のプラスボタンを押してください。ターミナルが起動します。そこに、pythonと書き、そのあとに今プログラムを書いているファイルの名前を入力します。したらEnterキーを押してください。あなたの年齢を教えてください>>と出ましたね。そこに自分の年齢などを適当に入れてみてください。その年齢にあったプログラムが実行されますね。あなたの年齢を教えてください>>45あなたの年齢は45歳です40代です。人生もあと半分です!このように、input関数を使うと、プログラムの中身をいじる必要がなく、代入する数字を変えることができるのです。input関数は実行後からでも文字入力を受け付ける!2行目にも何気にはじめてみるものがありますね、%dとはなんでしょう。これは事前に定義したものをprint関数内に挿入、置換できるという役割を持ちます。イメージとしては、第4回で挿入させたいとき+を用いましたよね、それの応用版です。今回の例では、%dにaで定義した年齢を置換したいので、%aという記述がくっついてますね。置換したいaが整数なので、%dという記述になっています。置換したいもの(文字列か整数か小数か)によって%〇の〇の部分は変わってきます。それを次にまとめます。%c)ここで1つ注意点。このif文を書く上で、このようなミスをする人たちが多発しています。print('20代です。print('30代です。print('40代です。print('50代です。print('60才以上です。print('未成年です。お酒を飲んではいけません!')なにがダメかわかりますか?45歳と入力した場合を考えてみましょう。先ほどのように、「40代です。40:」が正しくないといけません。20:」も正しいですね。40:」にたどり着かずに終了してしまうのです。このように、if文では被りなく書く必要があります。いかがだったでしょうか。最後のinput関数はちょっとややこしかったかもしれませんが、本日のメインであるif文はしっかり分かっていただけたと信じています。最後にクイズです!これができたら今日の内容完璧です!今までにやった知識をフルに使って解いてみてください!身長[m]と体重[kg]を入力すると、BMIを計算してそれを表示し、さらにその値によって健康状態を判別するプログラムを作ってください。それによって計算されたBMI値が18.5未満だと「痩せ型です、太りましょう!」、18.5以上25.0未満だと「標準です、健康!」、25.0以上だと「肥満です、痩せましょう!」と表示してください。体重を入力してください>>□□あなたのBMIは◎◎です標準です、健康!※私はWindows派なので、この記事の通り進めていくとMacを使っている方はうまくいかないことがあるかもしれません。ご要望があれば、頑張って対応していきたいと思います。ちなみに私はDELLのXPS13、Windows10でやっています。※記事を読んでいて「おかしいぞ?」とかプログラミングをして「実行してもエラーだぞ?」などあったら遠慮なく以下のメッセージから教えてください。お願いします!その他疑問も受け付けております。メッセージ最後まで読んでいただきありがとうございました。第7回【Chapter6】繰り返し構文!for文とwhile文https://ainow.ai/2017/07/31/115760/こんちは。