2018.09.13ゆうちゃん(中1)との勉強会。変数は覚えたので、次は型変換と簡単な入出力「input()」,「print()」をやってみます。ここまでやれば、やっと、プログラムっぽくなってくるね。type()でデータ型を確認したり、計算した結果を文字列と組み合わせて出力したりしてみましょう。「きたよ~」今日も、ゆうちゃんがやってきました。あれ、また背が伸びた?1週間違うだけで、ぐっと、背が伸びてる気がする。夏休み前に身長抜かれて、ショック(うれしい?)だったんだけど、あっという間に、見上げるようになっちゃうんだろうな~。あの、ゆうちゃんが、おっさんになってしまう~。声変わりはしてないけど・・・。今日も、Pytyonの勉強はじめましょう!目次0.ゆうちゃんとPythonシリーズ1.数値の足し算と文字列の足し算の比較。以下の英語の名称を覚えましょう。私が実際に購入した教材のご紹介0.ゆうちゃんとPythonシリーズこの記事は「ゆうちゃんとPythonシリーズ」の記事です。一連の記事は、以下のリンク集を参照してください。中学生のゆうちゃんとPythonシリーズなお、それぞれの記事は、シリーズの中でそれまでに習った文法を使ってサンプルコードを考えています。実際には、もっと、効率のよい書き方があるかもしれませんが、ご了承ください。1.数値の足し算と文字列の足し算の比較。復習ですが、1+2を計算して出力してみましょう。簡単なプログラムですね。2」を記述することもできます。2」と出力されるのではなく、計算結果である「3」が出力されます。’2’)を出力します。’2’は、文字列型(str型、ストリング型)です。結果は出力03のように、12となります。「+」という演算子は、数値の場合は2つの数値の和を求めますが、文字列の場合は、2つの文字列を結合します。このように、pythonはデータ型を判断しながら実行の方法を変えています。コードを記述する側も、しっかり、データ型を意識しましょう。'2')#出力031212さてさて、コード04、コード05はエラーになるコードです。コード04は、文字列型(str型、ストリング型)と整数型(int型、イント型)の和を求めようとしていますが、演算子「+」は、違うデータ型である文字列型と数値型(int型、float型)の演算を行うことはできません。エラー#「+」で「'1'」と「2」の演算はできません。‘2’で、’1’にならないかなと思って実行してみましたが、エラーになりました。演算子「-」は、文字列と文字列の演算には使えません。エラー#「-」では文字列の演算はできません。(読み:インプット)を使うことによって、プログラムを実行した後に、データを入力することができます。input()関数は以下のような書式になります。入力されたデータは左辺(さへん)の「変数名」に代入されます。右辺(うへん)の括弧の中の文字列は入力待ちのときに表示されます。言葉ではわかりにくいと思いますので、Pythonの統合開発環境(IDE)のひとつであるSpyderを使って、コード06を実行してみます。input('数字をいれてね:')print(x)Spyderの画面は、以下の通りです。左側は「テキストエディタ」右下は「Ipythonコンソール」です。左側のテキストエディタにコード06を入力し、ツールバーの「緑の横向き▼ボタン」を押すか、キーボードの「F5(ファンクション5)ボタン」を押すとプログラムが実行され、右下のIpyhonコンソールの部分に、以下のように表示されます。数字を入れてね:ここで、データを入力するのですが、この「数字を入れてね:」の右側ぐらいを、一度、マウスでクリックしてください。これが、ポイントです。キーボードで、「3」と入力します。「数字を入れてね:」の右をクリックしないと、左側のテキストエディタに「3」が記述されたり、うまく入力できません。数字を入れてね:3そして、「enterキー」を押すと、コード06の「x」に「3」が代入され、「print(x)」によって、「3」が出力されます。数字を入れてね:33input()の括弧の中の文字列は省略でき、コード07のような書き方もできますが、「数字を入れてね:」のようなコメントがなにも表示されないので、慣れていないと何が起こったのかわからず、びっくりすると思います。できるだけ、文字列は入れるようにしましょう。input()print(x)3.type()で型を調べようこのようにデータ型は大切です。そこで、type()という便利な関数を紹介します。typeの括弧の中に型を調べたいものを入れると、型を調べることができます。コード08の出力結果が出力08です。「1」「1.1」「’a’」の型がそれぞれ「int」「float」「str」になっていることがわかります。出力の「class」という部分は、今は無視してもかまいません。'str'>では、変数はどうなるのでしょうか。コード09に対する出力09を見てみましょう。変数xの型は、変数xに代入した値の型と同じになっています。「x」という名称の変数は、実行の途中で「int型」→「float型」→「str型」とデータ型が変化しています。プログラミング言語によっては、このようなデータ型の変化を許さない言語もあり、Pythonのようにデータ型の変化を許す言語を「動的型付け言語(どうてきかたづけげんご)」といい、許さない言語を「静的型付け言語(せいてきかたづけげんご)」といいます。'str'>さて、最後にinput()関数で入力したデータの型を調べてみましょう。文字列型になっていることがわかります。このように、input()関数で入力したデータはすべて文字列型になるので、注意する必要があります。データ型が原因のエラーコード11はエラーになります。10」の計算結果なので整数型です。x)」では、文字列型の「’計算結果は’」と整数型の「x」を連結することができません。intコード12もエラーになります。コード12では、input()で入力したデータは文字列型です。10」で文字列型の「x」と整数型の「10」の和を求めることはできません。コード11もコード12も、ついつい、間違えてしまうエラーなので注意する必要があります。intところで、出力11、出力12はエラーメッセージです。+10」とエラーの内容が表示されます。int」をgoogle翻訳で翻訳してみると「TypeError:intでなくstrでなければなりません」と翻訳されます。翻訳されない部分があったり、変な日本語になることも多いですが、エラーの内容の雰囲気はつかむことができます。今は、こんな便利なツールがあるので、是非、google翻訳を使って、エラーメッセージに慣れましょう。ゆうちゃんはエラーが大嫌いです。して、横目で私を見て、助けてほしそうな顔をします。「すごく考えたけど、なんでエラーになるのかわからない」と言うけど、私から見ると、まだまだです。エラーは消えないときには1日かけて消えないことがあります。時間ばかりが過ぎていき、冷や汗タラリ。エラー消しに慣れないと長いプログラムは組めません。ゆうちゃん、エラーが出たら翻訳しようね!そして、たくさんエラーがでたときは、わかるエラーからひとつずつ消していこうね。(少数)、文字列型、という名称で覚えるほうがわかりやすいですが、以下の英語の名称と読みも覚えましょう。ここでは型変換を勉強しますが、英語名で説明します。覚えてから解説に進んでください。str()の一覧表です。注意点としては、int()関数で、float型をint型に変換するとき、四捨五入ではなく、切り捨てになります。使う機能なので、しっかり覚えましょう。(2)コード11、コード12の修正それでは、エラーが発生した先ほどのコードを修正します。先ほどのコード11は4行目でstr()関数を使うと「’計算結果は’」と「x」がいずれもstr型になり、連結可能になります。10の計算が可能になります。‘b’)計算結果などの出力ができる関数として、print()があります。‘b’)タイプ」を覚えましょう。‘b’)タイプ」の方が、型変換も不要ですし楽です。‘b’)タイプの出力コード15と出力15を見てください。‘b’)タイプ」では、全てstr型である必要があり、それぞれのstr型を「+」で連結します。str型でないものはstr型に変換する必要があります。出力15のように出力したデータとデータの間を詰めて出力できます。b」とはならず、「ab」とできます。'b')#出力15abなお、くりかえしの説明になってしまいますが、「+」で連結できるのはstr型だけです。コード16はエラーになります。‘b’)タイプ」では、「,」で区切れば、違う型を並べて出力することができるので、全てをstr型に変換する不要がありません。簡単なので、ちょっとした出力ならば、こちらの方が楽です。それぞれのデータは、出力のときにデータとデータの間に半角スペースが入ります。