この章では簡単な占いプログラムを作ります。 では説明を始めます。
以下のuranaiは大吉などのデータをリストで作っています。 次は以下の箇所の説明をします。 この中にと言う記述がありますが、ここではrandint関数を使っています。
は0から6までの整数値をランダムに生成します。 randint関数はxからyまでの数値をランダムに生成します。
このrandint関数を使うためにはプログラムの冒頭に以下の記述が必要です。 このrandint関数を使用するためにはrandomモジュールというファイルを取り入れなくてはいけません。
モジュールというのは機能ごとに分かれているファイルの事です。
例えばrandomモジュールにはrandint関数の他にもrandom関数があります。randomモジュールにはこのような機能が似た関数が複数あり、1つのモジュールとしてまとまっています。
このモジュールを取り入れるにはという記述が必要です。
answerには0から6までの整数値がランダムに入っているので、例えば0が入っているとすると以下のようになりますので、uranaiの0番目の要素である大吉が出力されます。
カテゴリー: Python
リストについて知ろう
この章ではリストについて説明します。
変数は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ずつ増やしていくと言う意味です。
結果は次の通りです。
Pythonで計算をしよう
この章ではPythonプログラムで計算する方法について説明します。
まず初めに数値型の計算から始めます。 では説明を始めます。
=>「数値+数値」と言う形式で足し算を行います。
結果は4です。
=>「数値-数値」と言う形式で引き算 を行います。
結果は2です。
=>「数値*数値」と言う形式で掛け算を行います。
結果は8です。
=>「数値/数値」と言う形式で割り算を行います。
結果は2ですが、整数同士の割り算は結果も整数として出力されるので、小数点以下は省略されます。
浮動小数点数を含む計算ですと小数点まで含んだ結果を得ることが出来ます。
例えば「5.0/2」のように片方を浮動小数点数に変えてみると結果は「2.5」と正確に出力されます。
つまり、両辺のどちらかを浮動小数点数にすると結果も浮動小数点数に変わります。
両辺が浮動小数点数でも同じです。
もうひとつの注意点としては「5/0」のように0を割ることはできません。
0を割ろうとすると以下のようなメッセージが表示されます。 =>「数値//数値」と言う形式で割り算を行います。
しかし浮動小数点数の計算でも小数点以下までの計算は行われません。
片方を「5.0//2」のように浮動小数点数に変えたとしても結果は2.5とならず、2.0と出力されます。
=>「数値%数値」と言う形式で割り算の余りを求めます。
結果は1です。
=>「数値**数値」と言う形式でべき乗を求めます。
この例ですと8を三回掛けた結果が得られます。
結果は512です。
=>計算の優先順位は足し算や引き算より掛け算や割り算の方が先に行われます。
これは算数の法則と同じです。
どうしても、足し算や引き算から行いたい場合はのようにカッコを付けてください。
先ほどの例は以下のように数値を変数に入れて計算を行ってもいいです。 次は文字列を数値に変換して計算する方法について説明します。
これは以前に説明しましたがもう一度説明します。
以下の例はエラーが発生します。 実行すると以下の通りエラーが表示されます。 エラーの意味は文字列と数値を「+」で足せませんと言う意味です。
エラーを出さないようにするにはint関数を使って整数にキャストします。 結果は202です。
次は変数aに入っている数値と他の数値を計算して再び変数aに代入する時の便利な書き方について説明します。
これは演算子が2つ組み合わされているので複合演算子と呼ばれています。
例えばはと同じですが、の2つの演算子を複合して使っています。 では例をみてみましょう。 では説明を始めます。 結果は次の通りです。
文字列から任意の一文字を取得しよう
この章では文字列から指定した文字を取り出す方法について説明します。
では例をみてみましょう。 文字列のgoodから一文字を取得するにはと言う形式で書く必要があります。
例えば「g」を取得したいのであればと書きます。
添え字とは文字列の中のそれぞれの文字がどこに位置しているのかを管理する番号です。
例えば、コインロッカーに荷物を預ける場合には必ずロッカーには番号が付いています。
この番号があるからこそ、どこに自分の荷物があるのかが分かるわけです。
ですので、添え字は文字列の一文字一文字がどこに保管されているのかを管理する番号だと考えてください。 添え字の0 は文字列の先頭の文字
添え字の1は文字列の前から二番目の文字
添え字の2は文字列の前から三番目の文字
添え字の3は文字列の前から四番目の文字
を意味します。
添え字は1から始まっているのではなく、0から始まっていますので注意してください。
結果は以下の通りです。 また、添え字にはマイナス指定もすることができます。 マイナス指定の場合は末尾から前に向かってと数えますが、マイナス指定の場合は0からではありません。 結果は以下の通りです。 次は文字列から一文字ではなくて複数の箇所をまとめて取得する方法について説明します。 文字列から複数の文字を取得するにはという形式で記述します。
この意味は始めの添え字から終わりの添え字の1つ前までの要素を取得すると言うことです。
は一見するとgooまでを示しているかのように思われますが、終わりの添え字の1つ前までの要素を取得するのでgoまでです。
結果は以下の通りです。 では次の例をみてみましょう。 文字列から複数の文字を取得するには以下の構文でも書くことができます。 これは「始めの添え字」を省略した書き方ですが、始めの添え字を省略した場合は先頭の文字から終わりの添え字の1つ前までの文字列を取得することになります。
結果は以下の通りです。
関数について知ろう1
前の章でややなどについて説明しましたが、これらは関数と呼ばれています。
関数とは入力したデータ(引数)に基づいて 決められた処理を行い、戻り値という結果を返す機能を持っています。
エクセルをご存知の方はわかると思いますが、エクセル関数にSUMと言う関数が有ります。
この関数は指定した範囲のデータに基づいて足し算を行う関数です。
例えば指定した範囲のデータが3,5,7(引数)であるならば結果は15です。
つまり、エクセルの内部機構でSUMの機能は指定した範囲の足し算を行うと言うプログラムがされていると言うことです。
これが関数の意味です。
Pythonには初めからこのように機能が定義されている関数が多数あります。
では次の例で関数について説明します。 lenのカッコの中にあるデータを引数と言います。
この例のlen関数は引数の長さを取得するという決められた処理を行い、戻り値として6を返します。
もう一度関数の意味を書きますが、len関数の説明と較べてみてください。 上の2つのprint文は同じ結果を返しますが、以下の図のように戻り値を変数name3に入れてから、出力させてもいいですし、戻り値を変数で受け取らないで、直接と出力してもいいです。
プログラムを書いてみよう
この章では幾つかの例を使ってプログラムの基本的な規則について説明します。 結果は次の通りです。 変数とは荷物を入れるバッグみたいなものです。
例えばバッグに財布やハンカチを入れて持ち運びますが、そのバッグに当たるものが変数です。
そして、このバッグに入っている財布やハンカチが変数に入れるデータに該当します。
つまり、バッグという変数に、ハンカチというデータを入れるわけです。
このように変数にデータを入れて、プログラムを書いていきます。
この例では変数にと名前を付けましたが、名前の付け方には一定のルールがあります。 以下の予約語を変数名に使用することはできません。 変数名と文字列の間にある「=」は数学のイコールの意味ではありません。
これは右辺のデータを左辺に入れるという意味があります。
つまり、name1の中にというデータを入れて、name2の中にというデータを入れて、name3の中にというデータを 入れています。
このようにデータを入れることを代入と言います。 変数は値を1つしか保持できないので、例えばname1に新しい他のデータを のように入れると前のデータである「近藤」という情報は上書きされて「飯島」に入れ替わります。
また、変数を上書きする方法はもう1つありまして、変数に変数を代入する方法です。 name2をname1に代入することにより、「近藤」が「岸辺」に上書きされます。 pythonはユニコードという国際的な文字コードの規格が標準なのでutf-8をユニコード文字列に変換する必要があるのです。
「u」を付けることでユニコード文字列に変換できます。
もうひとつの方法としては以下の構文でutf-8をユニコード文字列に変換します。 例えば以下のように書きます。 printは文字等のデータを出力する機能を持っています。
printの右側に変数や文字列を記述するとその値が出力されます。
printと「変数や文字列」との間は必ず、半角のスペースを空
けてください。
全角のスペースでは開けないでください。
はname1に入っている値である「近藤」という文字列を出力するという意味です。
文字列を囲っているダブルクォート自体は出力されません。
変数にデータを入れなくて、以下のように直接出力しても同じ結果になります。 結果は以下の通りです。 上の結果をみていただくと分かりますが、printは出力した後に改行してくれます。
改行をしたくない場合は以下のように変数の終わりにカンマを付けてください。 このように書けばと、改行しないで出力されますが、データとデータの間にはスペースが発生します。 1つのprint文で複数の文字列を出力したい場合は以下のように変数をカンマで区切って記述してください。 出力結果はデータとデータの間にスペースが発生します。
[ポイント6]
次はコメントについて説明します。
「#」はコメントを意味しています。
「#」の右から行末まではすべてコメントとみなされるので、画面には出力されません。
コメントに何を書くのかはプログラマ自身が決めるのですが、忘れてはいけないことなどをメモ程度に書きます。
また、この例のように一部のプログラムを動作させないことにも使われます。
以下の結果を見ていただくと分かりますが、
コメントの部分は出力されていないことが分かります。 複数行をコメントアウトする場合には以下のように2つのを使ってコメントしたい箇所を上下に挟みます。
print文では行末で自動的に改行してくれましたが、自ら改行を入れることが出来ます。
改行を表す文字はです。
使っているテキストエディタによりという表記なっている場合がありますが意味は同じです。
この改行文字はエスケープシーケンスと呼ばれています。
エスケープシーケンスとはダブルクォートやシングルクォートなど文字列として入力することができない特殊な文字をを使って表現します。
改行以外にもエスケープシーケンスはあります。 では例をみてみましょう。
結果は以下の通りです。 では説明を始めます。 これはタブを3つ記述していますが、これで3つのタブを記述したことになります。
次の箇所の説明をします。はこの位置で改行されることを意味します。
「島田」の後ろと「は」の後ろで改行されます。
次の箇所の説明をします。 ダブルクォートの中にダブルクォートを含めようとするとエラーになりますので、の前にを付けてください。 また、シングルクォートの中にシングルクォートを含めようとするとエラーになりますので、の前にを付けてください。
次の箇所の説明をします。 ダブルクォートの中にシングルクォート もしくは シングルクォートの中にダブルクォートを含める場合はエスケープシーケンスをする必要はありません。
次の箇所の説明をします。 を2つ連続して書きますとが1つ出力されます。
出力の方法は普通の変数と同じでprintで出力します。
結果は以下の通りです。 結果は以下の通りです。 では説明を始めます。 =>「文字列+文字列」と言う形式で文字列同士を連結することができます。
以下のカンマ区切りの意味は説明済みですが、復習してみましょう。 =>変数と変数の間をカンマで区切って出力すると変数の値の間にスペースが生まれます。
「+」は逆に変数の値の間にスペースは生まれません。
この例は以下のようなエラーが出ます。 エラーの箇所は以下の箇所です。 文字列と数値は連結できませんので、ここを以下のように変更してください。 変更点は変数であるageをstrのカッコの中に入れます。
strは文字列を表わすことはデータ型の章で説明した通りです。
数値の入っている変数をstrのカッコの中に記述すると数値を文字列に変換してくれます。
このことをキャストと言います。
strは関数と呼ばれているものですが、関数は「関数について知ろう1」で説明します。 これとは逆に文字列を整数値に変換するキャストの例を見てみましょう。 結果は以下の通りです。 数値をダブルクォートやシングルクォートで囲むと文字列になります。
との文字列同士を「+」で連結すると12となります。
文字列同士の結合なので結果は3にはなりません。
「+」には文字列を連結させるという機能があることは説明しましたが、「+」にはこの他にも数値同士を足すという機能があります。
計算をするためには対象が文字列であるならばそれを数値に変換してあげないといけません。
「文字列を数値に変換」するにはを使用します。
これは関数と呼ばれているものですが、詳しくは「関数について知ろう1」で説明します。 では例をみてみましょう。 この例ではを変数nameに入れて、printで紺野を6回出力します。 文字列に繰り返す回数を指定するとその数だけ文字列を繰り返します。
この例では繰り返し文をnameに入れていますが、以下のようにprint文で直接出力してもいいです。 この構文ではuが付くユニコード文字列の場合は文字数を取得します。日本語ではない場合はバイト数を取得します。
この例ではname3にlenの結果を入れていますが、以下のように直接print文で出力してもいいです。 結果は以下の通りです。
Pythonの基礎を知ろう2
この章ではPythonのプログラムの中で使うデータ型について説明します。
プログラムでは「12」などの整数や「12.3」などの小数点のある実数、などの文字列などを使用しますが、それらは型として分類されていますので具体的に説明します。
では数値型から説明します。
数値型は以下のような型に分類できます。 整数型は10進数、8進数、16進数などで表せますが10進数は1、2などの我々が普段使っている数字です。
8進数は先頭に「0」を付けて028などと書きます。
16進数は先頭に「0x」を付けて0x41などと表現します。 型を確認するにはtype関数を使用します。
関数の意味は「関数について知ろう1」で説明します。 カッコの中には整数や文字列等を入力しますが、このデータのことを引数と言います。 結果は以下の通りという形式で出力されます。
この例の場合はintであることが確認できます。
長整数型は整数型より桁数が多く、桁数の上限はありません。
長整数型は数値の最後に「L」を付けてください。 type関数で確認してみるとlongだと分かります。 結果は以下の通りです。 なお、整数型なのか長整数型なのかを意識する必要はありません。
Lを付けなくても整数型の限度を超えると自然と長整数型に変わります。
例えば以下の例はLを末尾に付けなくても長整数型となります。
浮動小数点型は小数点を扱うことが出来ます。 type関数で確認してみると小数点数がfloatだと解ります。 結果は以下の通りです。
次は文字列型について説明します。
文字列型はもしくはのどちらかで囲まれた文字列のことを言います。 結果は以下の通りです。
次はリスト型について説明します。
リスト型は他の言語の配列に相当するものです。
データをまとめて使用したい時に使いますが、以下の例のように複数のデータをで囲みます。 リストについては「リストについて知ろう」の章で詳しく説明します。 結果は以下の通りです。
次はタプル型について説明します。
タプル型はリスト型とほぼ同じで、データをまとめて使用したい時に使いますが、リスト型との違いは一回データを入れると変更することができないことです。
タプル型は以下の例のように複数のデータをで囲みます。 タプル型については「タプルについて知ろう」の章で詳しく説明します。 結果は以下の通りです。
次はセット型について説明します。
セット型もリスト型とほぼ同じですが、リストはデータの重複はできますが、セットの場合はデータの重複はできません。
セット型はという構文で書きますが、詳しくは「セットについて知ろう」の章で説明します。 結果は以下の通りです。
Pythonの基礎を知ろう1
この章ではPythonの基礎について説明します。
ではテキストエディタに と記述して保存してください。
注意点としては以下のように左側にタブや空白を入れない事です。 今はprintの意味を詳しくは説明しませんが、printは文字等を出力する機能を持っています。
次にコマンドプロンプトで以下のようにと、記述しますとprint文に記述した文字Helloが出力されます。 もうひとつの出力方法はPythonのインタラクティブシェルを使用する方法です。
この方法はテキストエディタにプログラムを書くのではなく、コマンドプロンプトに直接書きます。
初めに以下のようにと入力して英語が表示されることを確認してください。 末尾に「>>>」と言う記号が出てくるので、その後に計算をしたいのであればと記述すると9が出力されます。 文字列を出力したいのであれば と、文字列をもしくはで囲みますとが出力されます。 ただし日本語を出力する時にはprintを使用します。 もし、printを使わないで日本語を出力しようとすると以下のようにうまく出力されないので、気を付けてください。
Pythonを実行する手順について知ろう
Pythonを実行する手順について説明します。
〇まずはPythonのプログラムファイルを保存するフォルダを作成してください。
例えばというフォルダを新たに作成します。
名前はworkではなくてもいいです。
〇次にテキストエディタを用意してください。
テキストエディタにプログラムを書いて、そのファイルを先ほど作成したworkフォルダに保存します。
ファイルはで保存します。
〇次にコマンドプロンプトでプログラムを実行します。
コマンドプロンプトでプログラムを実行するには初めにファイルのあるフォルダまで移動しなくてはいけませんので、以下の通りという形式でファイルのあるフォルダまで移動してください。 次に以下の通りという形式で実行します。 では次の章から実際にプログラムを書いていきます。