この章では自動計算プログラムを作ります。このプログラムではリスト、while、if文が出てきますので、これらの使い方のイメージを掴んでください。 このプログラムでは5問の計算を行うプログラムです。
最後に5問中いくつ正解したのか正解数を表示して終了になります。
では先頭から説明します。 この箇所ではリストを2つ作成しています。
これらのリストには初めにすべて0が入っていますが、後ほど数値がそれぞれ5つ入ります。
answerは答えを入れるリストで、resultは正解の答えが入っているリストです。
次に以下の箇所の説明をします。 num1とnum2にはそれぞれ0から50までの数値がランダムに入ります。
乱数については説明済みですので、ここでは詳しくは書きません。
次に以下の箇所の説明をします。 ここでは以下の赤枠の箇所の表示を行っています。
while文で5回ループしているので、5回の式が表示されます。 では次の箇所の説明をします。 raw_input関数はユーザーに入力をさせる関数であることは説明済みですが、この関数は文字列として入力されるのでint関数で整数に変換しなくてはいけません。
そして、その入力値は答えになりますので、answerに5回入力していきます。
つまり、whileで5回ループしていますので以下の順番でリストにデータが入っていきます。 以下の箇所では実際の答えがリストとして入力されます。 whileで5回ループしていますので以下の順番でリストにデータが入っていきます。 次に以下の箇所の説明をします。 この箇所では正解数をカウントしています。
rightanwerには正解数が入るのですが、初めに0が入っています。
そしてif文でリスト同士の値を比べて、同じであればrightanswerに1を足します。このif文はwhileの中に入っているので、5回ループして、その都度答え合わせをします。
最後に以下の箇所で出力をして、終わりになります。
タグ: リスト
リストを操作する他の機能を知ろう
この章ではリストを操作する他の機能について説明します。
初めにリストの要素数を取得する方法について説明します。
では例をみてみましょう。 リストの要素数を取得する構文は以下の通りです。 len関数ではリストの要素の数を取得することが出来ます。
この例では猫からネズミまで要素は5つありますので結果は5です。
戻り値をaなどの変数に入れてもいいです。 次は指定した要素の添え字を取得する方法について説明します。
では例をみてみましょう。 指定した要素の添え字を取得する構文は以下の通りです。 indexメソッドは同じ要素が複数ある場合には1番前から検索して、最初に見つかった要素に該当する添え字を取得します。
は2つありますが、最初に見つかった要素に該当する添え字を取得するので結果は0です。
次はリストの中で同じ要素が何個あるかを確認する方法について説明します。
では例をみてみましょう。 リストの中で同じ要素が何個あるのかを確認する構文は以下の通りです。 countメソッドはリストの中で同じ要素が何個あるのかを取得します。
という要素は2つありますので、結果は2です。
次はリストの中に指定した要素が存在するのかを確認する方法について説明します。
では例をみてみましょう。 リストの中に指定した要素が存在するか確認するには以下の構文を使います。 この形式はリストの中に指定した要素が含まれていれば true,含まれていなければfalseを返します。
このtrueや falseについては「条件分岐ifの公式1」で説明しますので、今は分からなくても結構です。
もう1つ、他の構文を紹介します。 この構文はリストの中に指定した要素が含まれていれば false,含まれていなければtrueを返します。
結果は以下の通りです。
次はリストの順番を並び変える方法について説明します。
では例をみてみましょう。 リストの順番を並び替えるには以下の構文を使います。 sortメソッドはリストの中身を並び替えます。
数値の場合は小さい方から大きい方へ、文字列の場合は文字コードの順番で並び替えます。
アルファベットの場合にはアルファベット順に並び替えますが、小文字より大文字の方が前に並びます。
結果は次の通りです。
次の例はリストの中の要素を単純に逆にする方法について説明します。
では例をみてみましょう。 リストの中の要素を逆するには以下の構文を使います。 reverseメソッドはリストの中の要素を単純に逆にします。
結果は以下の通りです。
次は文字列からリストを作成する方法について説明します。
では例をみてみましょう。
次の構文(list)で文字列からリストを作成する事が出来ます。 結果は次の通りですが、リストのカッコが付いているのが分かります。
リストの要素を削除する方法を知ろう
この章ではリストの要素を削除する方法について説明します。
削除する方法は4つあるので、順に説明していきます。 リストの要素を削除する方法の1つ目はremoveメソッドを使います。 removeメソッドは指定したリストの要素を削除する機能があります。
この例ではを指定しているので、この要素を削除します。
しかし、この例のように同じ要素が2つある場合は前の要素から削除します。
結果は以下の通りです。 リストの要素を削除する方法の2つ目はdel文を使います。 del文は指定したリストの要素を削除する機能があります。
例では0番目の要素のを指定しているので、この要素を削除します。
結果は以下の通りです。 リストの要素を削除する方法の3つ目はpopメソッドを使います。 popメソッドは指定した添え字に相当するデータを削除します。
例では0番目の要素のを指定しているので、この要素を削除します。
添え字を省略すると末尾の要素が削除されます。
結果は以下の通りです。 popメソッドの添え字を省略した例もみてみましょう。 添え字を省略すると末尾の要素が削除されますので、結果は以下の通りです。
次の例をみてみましょう。 リストの要素を削除する方法の4つ目はカラのリストを使います。 開始位置から終了位置の1つ手前までの要素に対して、カラのリストを入れます。
例ではに対して、カラのリストを入れているので、その要素は削除されます。
結果は以下の通りです。
リストの変更、追加する方法を知ろう
この章ではリストの要素を変更する方法と新しい要素を追加する方法について説明します。
リストの要素を変更する方法については少しだけ説明しましたが、この章では詳しく説明します。
では例をみてみましょう。 リストの要素を変更するには次の構文で書きます。 リスト名の横に変更したい要素に該当する添え字を記述し、新たなデータを代入します。
上の例では犬をシマウマに変更しています。
結果は次の通りです。
次の例はリストの範囲を指定して新しいリストを代入する方法です。 開始位置と終了位置は添え字で指定してください。
また終了位置は指定した番号の1つ手前までを指します。 結果は以下の通りです。
次の例をみてみましょう。 では説明を始めます。 上のように範囲指定した数と新たな要素の数は一致させる必要はありません。
例の場合は範囲指定した2つ([0:2])のリストに対して、1つの新しいリストを代入しています。
結果は以下の通りです。
次の例をみてみましょう。 では説明を始めます。 上の例は終了位置を省略した形式です。 終了位置を省略すると開始位置で指定した添え字から最後の添え字までを指定したのと同じ意味になります。 結果は次の通りです。
次の例をみてみましょう。 では説明を始めます。 上の例は開始位置を省略した形式です。 開始位置を省略すると先頭から終了位置で指定した添え字の1つ前までを指定したのと同じ意味になります。
つまり、と同じ意味になります。
そのという新たなリストを代入しているので、結果は次の通りになります。
次の例をみてみましょう。 では説明を始めます。 この構文でリストのすべての要素に新たなリストを入れることができます。
つまり「リスト名[:]」はすべてのリストの要素を意味するのでこの記述は以下のリストと同じ意味になります。 そこにを代入しているので、結果は次の通りになります。
次の例をみてみましょう。 この構文でリストの末尾に新たな要素が追加されていきます。
appendはメソッドと呼ばれています。
メソッドは関数と同じで入力したデータに基づいて決められた処理を行い、戻り値という結果を返す機能を持っています。
つまり、メソッドと関数は同じ機能があります。
メソッドと関数の違いにこだわる必要はありません。
この例では3回appendでデータを追加していますが、その都度リストの末尾にデータが追加されていきます。
結果は以下の通りです。
次の例をみてみましょう。 この構文で添え字で指定した位置に新たな要素が追加されます。
この例では0番目の位置、つまり先頭にシマウマを入れていますので、元のリストの添え字は1つ後にずれます。
結果は次の通りです。
次の例をみてみましょう。 この構文でリストの末尾に新たなリストが追加されます。
次の例をみてみましょう。
この構文でリストとリストを連結させて、新たなリストを作成します。
この例ではanimalとanimal2を「+」で連結させてanimal3という新しいリストを作成しています。
結果は次の通りです。
リストで占いを作ろう
この章では簡単な占いプログラムを作ります。 では説明を始めます。
以下のuranaiは大吉などのデータをリストで作っています。 次は以下の箇所の説明をします。 この中にと言う記述がありますが、ここではrandint関数を使っています。
は0から6までの整数値をランダムに生成します。 randint関数はxからyまでの数値をランダムに生成します。
このrandint関数を使うためにはプログラムの冒頭に以下の記述が必要です。 このrandint関数を使用するためにはrandomモジュールというファイルを取り入れなくてはいけません。
モジュールというのは機能ごとに分かれているファイルの事です。
例えばrandomモジュールにはrandint関数の他にもrandom関数があります。randomモジュールにはこのような機能が似た関数が複数あり、1つのモジュールとしてまとまっています。
このモジュールを取り入れるにはという記述が必要です。
answerには0から6までの整数値がランダムに入っているので、例えば0が入っているとすると以下のようになりますので、uranaiの0番目の要素である大吉が出力されます。
リストについて知ろう
この章ではリストについて説明します。
変数は1つのデータだけを代入することができました。
つまり、他のデータを入れようとすると上書きされて、前のデータは消えてしまうことは説明しましたね。
変数とは違って、リストは複数のデータをまとめて入れることができます。
リストは他の言語で使われる配列と同じ意味になります。
普通の変数では以下のように別々の変数名でそれぞれのデータを入れなければいけません。
これらの複数の変数は一見して繋がっているように思われますが、コンピュータのメモリ上では全く別の変数になります。 しかし、リストを使うと以下のように一つの変数に複数の要素を入れることができます。
リストに入っているデータはお互いに関係性を持って存在しています。
このように関係のある複数のデータはリストとして1つの変数にまとめれば便利です。 リストの構文は以下の通りです。 「[ ]」の中の要素をカンマ区切りで入れていきます。
要素とはリストで使うデータと同じ意味です。
先ほどのリストの例は2行で書いていますが、1行で書ききれない場合には2行で書いてもいいです。
リストの要素には違う種類の型も混ぜて入れることが出来ます。
例えばのように数値型と文字列型を混ぜて入れることも出来ます。
次にリストの添え字について説明します。
例をみてみましょう。 結果は次の通りです。 animal[0] を例に取るとの中に入っている数値である0のことを添え字と言います。添え字とはリストの中の1つ1つのデータがリストの中でどこに位置しているのかを管理する番号です。
例えば、コインロッカーに荷物を預ける場合には必ずロッカーには番号が付いています。
この番号があるからこそ、どこに自分の荷物があるのかが分かるわけです。
ですので、添え字とはリストの中の1つ1つのデータがリストの中でどこに保管されているのかを管理する番号だと考えてください。
ではリストの中のデータを添え字を使って取得する方法について説明します。
リストの中のデータは以下の構文で取得できます。 この構文で指定したリストの中身を取得することが出来ます。
では先ほどの例で添え字について説明します。 初めにこのリストに入っているデータを管理する添え字は0から始まっていると頭に入れてください。
添え字は1から始まっているわけではないので、注意してください。 次にリストのデータを出力する方法について説明します。
リストからデータを出力するには以下の構文で書きます。 例えばと書きますと猫が出力されます。
つまりanimal[0]には猫と言うデータが入っています。
このようにカッコ[ ]の中に添え字を入力するとそれに応じた要素をリストから取得することができます。
また添え字にはマイナス値を指定することもできます。
例えば animal[4] はと同じ意味になります。
つまり、添え字のマイナス指定の場合はリストの末尾から-1,-2..と添え字を指定します。
では例をみてみましょう。 末尾から-1,-2..と、添え字を指定するので-1はネズミになります。
一番前の猫の添え字は-5になります。
結果は次の通りです。
次はリストの要素を書き替える方法について説明します。 「animal[4]」にはネズミが入っていますが、この要素を他のデータで書き替えたいのであれば以下のように指定の添え字に新たなデータを入れます。 これでネズミと言う要素はシマウマという要素で上書きされたことになります。
次は連続した数値をリストの要素にする場合の便利な書き方について説明します。
では例をみてみましょう。 この例のようにと、9個の要素を1つ1つ書くのは面倒です。
そこで、これをrange関数で書き替えると簡単に書くことができます。
では例をみてみましょう。 説明を始めます。 range関数の引数に開始の数値と終わりの数値を書きます。
この例のrange関数はと同じ意味になります。
ここで気を付けてほしいことは例の終了番号は10と書いていますが10はリストの要素には入りません。
終了番号の一つ手前までが要素になりますので9までになります。
と同じリストを作りたいのであればと言う形式でと、書いてください。
終了番号だけを書いた場合は0から終了位置の一つ手前の要素までになります。
次はrange関数の引数を以下のように3つ書いた時の動きを説明します。 では例をみてみましょう。 第 3引数の「増やす単位」とは開始番号から終了番号までの数値の中でいくらの単位で増やすのかを指定します。
このリストの意味は5から9までの範囲以内で2ずつ増やしていくと言う意味です。
結果は次の通りです。