この章でもif文について説明します。
条件式がfalseである場合でもif文を実行したい時にはelseを使います。
つまりelseを付け加えることにより条件式が条件を満たしてない時にif文の中身を実行させることができます。 では例をみてみましょう。 このようにelseを付け加えることにより、条件式がfalseのときに(条件を満たしてない)else以下を実行させることが出来ます。
この例は「num<=70」の部分がfalseなので、が実行されます。
月: 2015年5月
条件分岐ifの公式1
この章ではif文について説明します。
条件分岐とは例えば生活の場面で、もし、今日財布にお金が10000円あったらフランス料理にして、20000円あったら中華料理にすると皆さん判断していますが、プログラムでもこのような表現が出来る機能が備わっています。
このことを条件分岐と言います。 〇 ifは英語のifと同じで「もしも」という意味です。
〇条件式は条件を満たしていればtrueを返し、条件を満たしていないのならばfalseを返します。
trueとfalseについては後ほど説明しますが、ここでは条件式が条件を満たしていればif文が実行され、条件を満たしていなければif文は実行されないとだけ覚えておいてください。
〇条件式はとかなどの表現をやのような記号を使って表現します。
ではif文の構造について説明します。 「if 条件式:」の部分をヘッダ行と言います。
条件式の終わりには「:」を付けます。
ヘッダ行から下がステートメントブロックと呼ばれています。
ステートメントブロック内の文が複数ある場合はインデントを揃えてください。
次のようにインデントがずれているとエラーになります。 インデントを揃えるのはif文だけではなく、この章以降に説明するfor文やwhile文でも共通した規則なので覚えておいてください。
条件式はとかなどの表現を「>」や「<」のような記号を使って表現しますと説明しましたが、これらの記号を関係演算子と言います。
関係演算子は「>」や「<」の他にもあります。 ではここからは何がtrueで何がfalseか見てみましょう。 numは1より大きく、条件を満たしているので、trueになります。
このように条件を満たしていることをtrueと言います。
もっと正確に言うと、条件式は条件を満たしていればtrueになり、ブロックの中が実行され、条件を満たしていないならばfalseになり、その文は実行されません。
結果は以下の通りです。 以下のようにインデントが揃っていないとエラーになります。 結果はインデントエラーが出力されます。
次は文字列の比較をしてみましょう。 nameの値と条件式のは等しく、trueなので、「実行されました」が出力されます。
次はfalseの例を見てみましょう。 結果は何も表示されません。
なぜなら「num<1」の条件式が条件を満たしていないからです。
つまりfalseになり,ブロックの中は実行されません。
次の例を見てみましょう。 =>nameの値と条件式のは等しくないので、trueとなり、「実行されました」が出力されます。
関係演算子「!」の意味を確認してください。 関係演算子を使わなくても、条件式は書くことが出来るので、次の例で説明します。 これまでは関係演算子を使って、2つのデータの比較を行っていましたが、それだけではなくて、変数やリストやディクショナリなどに何かデータが入っているかどうかをif文を使って、確認することができます。
この例では変数aには5と言う数値が入っているので条件式がtrueになり、「trueです」が出力されます。
つまり、何かデータが入っていればtrueです。
次はfalseの例を見てみましょう。 この例は条件式がfalseなので何も実行されません。
次の例に進みます。
についてはtrue や falseを返すと説明しましたが、これらはif文と組み合わせて使われることが多いです。
結果は次の通りです。
ディクショナリを複製しよう
ディクショナリのキーの存在の有無を確認しよう
この章ではディクショナリにキーが存在するかどうかを確認する3種類の方法について説明します。
では例をみてみましょう。 1つ目はhas_keyメソッドを使います。 この形式は指定したキーが存在すればtrue、存在しなければfalseを取得することができます。
trueとfalseについては「条件分岐ifの公式1」で説明します。
2つ目はin演算子を使います。 この形式は指定したキーが存在すればtrue、存在しなければfalseを得ることが出来ます。
3つ目はnot in演算子を使います。 この形式は指定したキーが存在すればfalse、存在しなければtureを得ることが出来ます。
結果は以下の通りです。
ディクショナリからキー、値を取り出そう
この章ではディクショナリから「キーだけ」もしくは「値だけ」を取り出す方法について説明します。
では例をみてみましょう。 「キーだけ」をすべて取り出したい場合はkeysメソッドを使って以下の構文を使います。
取り出されたデータはリストで返されます。 「値だけ」をすべて取り出したい場合はvaluesメソッドを使って以下の構文を使います。
取り出されたデータはリストで返されます。 上の例では取り出したものを変数に入れない方法と変数に入れる方法の2種類で書いていますが、取り出したものを何かに使用したい場合には変数に入れてください。
結果は次の通りです。 先ほどの例は「キーだけ」もしくは「値だけ」を取り出しましたが、キーと値を両方取得するにはitemsメソッドを使用します。
では例をみてみましょう。 ディクショナリのキーと値を両方取得したい場合は以下の構文を使います。 itemsメソッドの戻り値はリストとして取得しますが、リストの各要素はタプルになります。
結果は次の通りです。
ディクショナリの要素を削除しよう
この章ではディクショナリの要素を削除する方法を4つ紹介します。 ディクショナリの指定した要素を削除するには以下の構文(del)を使います。 この例ではキーにを指定していますが、これによりのペアは削除されます。
結果は次の通りです。
では以下の例で2つ目の方法を紹介します。 すべての要素を削除したい場合は以下の構文(clear)を使います。 clearメソッドはすべての要素を削除する機能があります。
結果は次の通りです。
では以下の例で3つ目の方法を紹介します。 ディクショナリの中の指定した要素を削除したい場合は以下の構文(pop)を使います。 この例ではpopメソッドの引数にを指定していますが、これによりのペアは削除されます。
削除した値を受け取りたい場合はaのような変数を用意して、受け取ることが出来ます。
この例のaには削除した値である34が代入されています。
結果は次の通りです。
では次の例をみてみましょう。 popメソッドで削除する予定のキーを指定したにも関わらず、そのキーが存在しない場合はカンマで区切った2つ目の引数(第2引数)で 指定した値を返すことが出来ます。 この例ではというキーは存在しないので、aには98が入ります。
結果は98です。
では以下の例で4つ目の方法を紹介します。
次はディクショナリの任意の要素を削除する方法について説明します
では例をみてみましょう。 ディクショナリの任意の要素を削除するには以下の構文(popitem)を使います。 popitemメソッドはランダムに要素を削除する機能があります。
つまり、削除される要素はランダムに決定されるので、どれが削除されるかわかりません。
結果はが削除されましたので以下の通りです。 popitemで削除した要素を受け取りたい場合はタプルで受け取ることが出来ますので、次の例で説明します。 タプルであるaで削除したものを受け取っています。
結果はタプル形式で取得できます。
ディクショナリについて知ろう
この章ではディクショナリについて説明します。
ディクショナリとはリストと似ていて、複数のデータをまとめて入れることができます。
リストとの違いはリストはデータの管理を添え字で行いますが、ディクショナリは文字列であるキーで行います。
つまり、次の構文をみていただくと分かりますが、ディクショナリはキーと関連づけて値を設定します。
ディクショナリの基本構文は次の通りです。 では例をみてみましょう。 添え字の代わりにキーを使用します。
要素全体を{ }で囲んで、その中にキーと値の間を「:」で区切って書いていきます。
キーとはの部分のことを言います。
値とはの部分のことを言います。
ディクショナリとはキーと値がセットになって結びついているリストみたいなものですが、リストのように要素間に順番はありません。
リストの場合は添え字により、0から順番が付いています。
このディクショナリを使うと、ただ単に添え字でデータを管理しているのとは違って、紺野さんは34歳をのように関連付けて書けるので解りやすく管理できます。
ディクショナリの値を取得したい場合は以下の形式で書きます。 ですので、この例のは34 を出力します。
では次の例をみてみましょう。 ディクショナリの中にある値を変更したい場合(上書き)は以下の構文で書きます。 この構文で元々あるキーに新たな値を設定します。この例では紺野の34という値は上書きされて、45になります。
結果は45です。
次の例をみてみましょう。 上書きするのではなく、ディクショナリに新たなキーと値を入れたい場合は以下の構文を使います。 この例ではというキーを 新たに作成して、21という値を代入しています。
結果は21です。
次にディクショナリに他のディクショナリを入れる方法について説明します。
では例をみてみましょう。 元のディクショナリに他のディクショナリを入れたい場合は以下の構文(update)を使います。 この例では元のディクショナリがname、追加のディクショナリがname2です。
元のディクショナリのキーと同じキーが追加するディクショナリの中にある場合は上書きされます。
結果は次の通りです。
次はディクショナリの要素の数を取得する方法について説明します。
では例をみてみましょう。 ディクショナリの要素の数を取得するには以下の構文(len)を使います。 結果は3です。
タプルをソートしよう
この章ではタプルをソートする方法について説明します。
タプルをソートする場合はタプルをリストに変換しなくてはいけません。
その変換する方法を次の例で説明します。 タプルをリストに変換するには以下の構文を使います。 listを使って文字列をリストに変換する方法については説明しましたが、この他にもlistはタプルをリストに変換することもできます。
タプルをリストにした新たなnum2を作成したので、これを元にソートを行うことが可能です。
ちなみにはと書いても同じことです。
結果は以下の通りです。 タプルを直接ソートすると次のようにエラーが出ますので、気を付けてください。 これを実行するとエラーが出ます。
次はリストからタプルを作成する方法について説明します。
では例をみてみましょう。 リストをタプルに変換するには以下の構文を使います。 タプルに変わったのでのような操作はできません。
タプルは再度、値を入れることができないことは説明しました。
結果は次の通りです。 文字列をtupleの引数に指定すると文字列の1文字1文字をタプルの要素にすることが出来ますので、次の例で紹介します。 この構文で文字列の1文字1文字をタプルに変更することが出来ます。
以下のように数値型からはタプルを作成できません。 結果は以下の通りです。
タプルについて知ろう
この章ではタプルについて説明します。
タプルとはリストと同じく、複数のデータをまとめて扱うことができますが、リストとの違いは一度データを入れてしまったら、後から変更することができないことです。〇要素をカンマ区切りで入れていきます。
〇タプルの要素には違う種類の型も混ぜて入れることが出来ます。例えば以下のように数値型と文字列型を混ぜて入れることが出来ます。 では例をみてみましょう。 タプルの各要素を出力する場合はリストと同じで添え字を使います。
と言う形式で指定したタプルの中身を取得することが出来ます。
結果は次の通りです。 では次に進みます。
先ほど、リストとの違いは一度データを入れてしまったら、後から変更することが出来ないと言いましたが、次の例で説明します。 このようにタプルの要素に改めてデータを入れて出力しようとすると以下のようなエラーが出ますので注意してください。 添え字のマイナス指定もリストと同じくできますので、次の例で説明します。 添え字のマイナス指定の場合はタプルの末尾からと数えていきます。リストでも添え字のマイナス指定ができたことを思い出してください。
結果は次の通りです。
では次の例をみてみましょう。 以下の構文はリストの章でも説明しましたが、タプルでも使うことができます。 この構文で開始位置の要素から終了位置の一つ手前の要素までを取得することが出来ます。
結果は次の通りです。
次はタプルの要素が何個あるかを調べる方法について説明します。
では例をみてみましょう。 タプルの要素が何個あるのかを調べるには以下の構文を使用します。 len関数は文字列の長さを調べたり、リストの要素数を調べることができることは説明しましたが、タプルでも使うことができます。
結果は6です。
次の例はタプルとタプルを結合する方法について説明します。
では例をみてみましょう。 この構文でタプル2とタプル3を足した新たなタプル1を作成することができます。
結果は次の通りです。
リストを操作する他の機能を知ろう
この章ではリストを操作する他の機能について説明します。
初めにリストの要素数を取得する方法について説明します。
では例をみてみましょう。 リストの要素数を取得する構文は以下の通りです。 len関数ではリストの要素の数を取得することが出来ます。
この例では猫からネズミまで要素は5つありますので結果は5です。
戻り値をaなどの変数に入れてもいいです。 次は指定した要素の添え字を取得する方法について説明します。
では例をみてみましょう。 指定した要素の添え字を取得する構文は以下の通りです。 indexメソッドは同じ要素が複数ある場合には1番前から検索して、最初に見つかった要素に該当する添え字を取得します。
は2つありますが、最初に見つかった要素に該当する添え字を取得するので結果は0です。
次はリストの中で同じ要素が何個あるかを確認する方法について説明します。
では例をみてみましょう。 リストの中で同じ要素が何個あるのかを確認する構文は以下の通りです。 countメソッドはリストの中で同じ要素が何個あるのかを取得します。
という要素は2つありますので、結果は2です。
次はリストの中に指定した要素が存在するのかを確認する方法について説明します。
では例をみてみましょう。 リストの中に指定した要素が存在するか確認するには以下の構文を使います。 この形式はリストの中に指定した要素が含まれていれば true,含まれていなければfalseを返します。
このtrueや falseについては「条件分岐ifの公式1」で説明しますので、今は分からなくても結構です。
もう1つ、他の構文を紹介します。 この構文はリストの中に指定した要素が含まれていれば false,含まれていなければtrueを返します。
結果は以下の通りです。
次はリストの順番を並び変える方法について説明します。
では例をみてみましょう。 リストの順番を並び替えるには以下の構文を使います。 sortメソッドはリストの中身を並び替えます。
数値の場合は小さい方から大きい方へ、文字列の場合は文字コードの順番で並び替えます。
アルファベットの場合にはアルファベット順に並び替えますが、小文字より大文字の方が前に並びます。
結果は次の通りです。
次の例はリストの中の要素を単純に逆にする方法について説明します。
では例をみてみましょう。 リストの中の要素を逆するには以下の構文を使います。 reverseメソッドはリストの中の要素を単純に逆にします。
結果は以下の通りです。
次は文字列からリストを作成する方法について説明します。
では例をみてみましょう。
次の構文(list)で文字列からリストを作成する事が出来ます。 結果は次の通りですが、リストのカッコが付いているのが分かります。