カテゴリー
Python

関数について知ろう2

この章では関数について説明します。
関数とは引数と言うデータを受け取って、ある一定の処理を行い、戻り値を呼び出し元に返す命令のことを言います。
引数とは関数を実行するときに関数で使われるバラメータ(データ)のことを言います。
戻り値とは、関数を実行した結果、返される値です。
この章以前のint関数のような関数は組み込み関数と言いまして、Pythonによって初めから用意されている関数です。
例えばint関数は文字列を数値に変換する関数ですが、Pythonの内部機構でそのような働きを作ってくれています。
その他に自分で好き勝手に「ある働きを持った関数」を作ることができます。
これをユーザー定義関数と言います。
例えば消費税を自動で計算する関数を自分で作りたいとします。
その場合、商品の代金を関数に渡すと商品金額に消費税率を掛けた処理をして、その結果を返すという機能を持った関数を作ります。
関数の基本構文は以下の通りですが、このように関数の中に実行内容を書いていくことを「関数の定義」と言います。9 〇引数が無い関数もありますが、引数が複数ある場合はカンマで区切ります。9 〇引数が複数ある場合はカンマで区切ります。
〇関数は関数の定義を書いただけでは実行しません。
そこで関数を実行するためには関数を呼び出さなくてはいけません。
関数の呼び出しは9という構文で書きますが、引数が複数ある場合はカンマで区切ります。
引数が必要無い関数であるならば引数は省略出来ます。
引数を省略する場合もカッコを付けて9と記述します。
では実際に関数の例を見てみましょう。9 この関数は三教科の平均を求める関数です。
関数を呼び出すには関数名と同じ名前を付けて呼び出します。
上の例で言えば9の箇所です。
呼び出すことによって関数の中身が実行されます。
では順を追って詳しく説明します。99 引数である変数にはそれぞれ56、45、99が代入されています。
この呼び出し側の引数は実引数と呼ばれています。99 この関数側の引数を仮引数と言います。9 また、実引数と仮引数の変数名が同じでなくても問題ありません。
つまりnum1とe, num2とf, num3とgが 同じ変数名である必要はありません。
また、この関数内部の変数e,f,g,h,iのことをローカル変数と言いますが、このローカル変数は関数内部でしか使用することはできません。
ローカル変数を関数の外で使用するとエラーになります。99 結果は以下の通りです。9 99実行すると次のようなエラーが表示されます。9
次の例をみてみましょう。9 関数には9のように引数に初期値(デフォルト値)を設定することができます。
しかし、初期値は初期値を持たない引数よりも前で
設定してはいけません。
つまり、9のように初期値のある引数を初期値のない引数より前に記述してはいけません。
また、初期値にg=46が設定してあるために、以下のように第三引数を省略して呼び出すことが出来ます。9 結果は次の通りです。9
次の例をみてみましょう。9 例え関数で初期値を設定していても、呼び出し側で引数(実引数)を 設定していればこちらが優先されます。
この例では9の箇所で初期値を設定していますが、9では実引数で3つとも引数を設定しているので、こちらの引数が優先されます。
結果は以下の通りです。9
次は戻り値のある関数についての説明をします。
戻り値についてはこの章の冒頭で説明しましたが、関数を実行した結果、返される値のことです。
戻り値を返すためには関数の定義の中に9という形式で記述します。9
では例をみてみましょう。9 関数内で処理をした結果(戻り値)を呼び出した側に返すにはreturnを使います。returnの後に何かしらの処理があってもその処理は実行されないで、呼び出し元に返りますので注意してください。
つまり9は実行されません。
この戻り値を利用するには例のように変数(この例ではnum4)に戻り値を代入して使用するか、もしくは9のように変数に入れないで、直接出力することもできます。この例では3つの平均点であるiをreturnで呼び出し元に戻してnum4に代入しています。9
次は引数の無い関数について説明します。9 この関数は仮引数も実引数もありません。
ただ関数の中で処理されて、呼び出し元に値を返しているだけです。
このような関数も作成できることを覚えておいてください。9 結果は次の通りです。9
次は関数の引数にはリストも指定することができますので、次の例で説明します。9 リストを関数側に渡すには9のように実引数にリストを指定します。
以下のように書いても同じ意味になります。9 その後、関数側でも仮引数を設定します。
この例の場合はkです。
そのkの要素をfor文で一つ一つ取り出して計算しています。
結果は次の通りです。9
次の例もリストの要素を関数に渡すのですが、前の例はリストそのものを渡していましたが、今回はリストを分解してから関数側に要素を渡しています。9 呼び出し側の実引数であるリストに「*」を付けると、仮引数にはリストの要素が分解した状態で渡るので、仮引数は9のように4つ設定します。
結果は次の通りです。9
次は実引数が複数ある場合、仮引数もその数だけ書くのは大変ですが、この例で便利な方法を紹介します。9 では説明を始めます。
9のように引数が多数ある場合、関数側にも9と、書かなくてはいけないのは面倒です。
そこで、この仮引数を9と、書き替えることで複数の実引数をすべて引き受けることが出来ます。99 はタプルとして、9のように受け取るので、for文で分解することが出来ます。
結果は108です。

次は関数の引数にはディクショナリも指定することができますので、次の例で説明します。9 ディクショナリを関数側に渡すには9のように引数にディクショナリを指定します。
その後、関数側でも引数を設定します。この例の場合はaです。
そのaの要素をfor文で一つ一つ取り出して計算します。
for文ではディクショナリの値だけを使いたいので、keysメソッドでキーを取得して、その後に9という構文で値を得ます。
結果は33です。

カテゴリー
Python

関数について知ろう1

前の章で999などについて説明しましたが、これらは関数と呼ばれています。
関数とは入力したデータ(引数)に基づいて 決められた処理を行い、戻り値という結果を返す機能を持っています。
エクセルをご存知の方はわかると思いますが、エクセル関数にSUMと言う関数が有ります。
この関数は指定した範囲のデータに基づいて足し算を行う関数です。
例えば指定した範囲のデータが3,5,7(引数)であるならば結果は15です。
つまり、エクセルの内部機構でSUMの機能は指定した範囲の足し算を行うと言うプログラムがされていると言うことです。
これが関数の意味です。
Pythonには初めからこのように機能が定義されている関数が多数あります。
では次の例で関数について説明します。9 lenのカッコの中にあるデータを引数と言います。
この例のlen関数は引数の長さを取得するという決められた処理を行い、戻り値として6を返します。
もう一度関数の意味を書きますが、len関数の説明と較べてみてください。9 上の2つのprint文は同じ結果を返しますが、以下の図のように戻り値を変数name3に入れてから、出力させてもいいですし、戻り値を変数で受け取らないで、直接9と出力してもいいです。9

カテゴリー
Cシャープ

メソッドについて知ろう1

この章ではメソッドについて 説明します。
メソッドとは「引数」というデータ を受け取って「ある一定の処理」を行い、「戻り値」を返す機能のことを 言います(戻り値を返さないメソッドもあります)。
「引数」とはメソッドを実行するときに使われるデータのことで、「戻り値」とはメソッドを実行した結果 返される値です。
簡単に言いますと 「データ (引数)を 渡すので、この作業をやってくださいね」 と言うとメソッドが作業をしてくれて、 その結果(戻り値)を返してくれるというのがメソッドの機能です。
この一連の流れをメソッドに書いていくわけです。
今までParseメソッドなど幾つかのメソッドを紹介しましたが、これらは初めからC#で用意されているメソッドです。
例えばParseメソッドは文字列を他の型に変換するメソッドです。
この章で紹介するメソッドはユーザー定義メソッドと呼ばれていまして、Parseメソッドのような機能を持つメソッドを自分で作っていきます。
ではメソッドを使う例とメソッドを使わない例を比べてみましょう。
初めはメソッドを使わない例からみてみましょう。11 ではメソッドを使わない例の説明をします。1 これは2つの数値の平均値を求めるプログラムです。
上記のように同じ内容の処理を3回書くのは面倒ですし、プログラムの可読性が悪くなります。
これをメソッドで書き換えれば処理部分の記述は1か所で済みますので、プログラムの可読性が良くなります。
結果は以下の通りです。1
では先ほどの例をメソッドを使って書き直してみましょう。11 何度も同じ動きをする文を1つにまとめるのがメソッドの役割の1つなので、先ほどの3か所ある同じような文を1つのメソッドにまとめると以下のようになります。
このようにメソッドの中には機能の部分を書いていきます。1 ではメソッドの作成方法について説明します。
メソッドを使うためにはメソッドの定義を行わなくてはいけません。
それが以下の構文です。
このブロックの中にメソッドの具体的な内容を書いていきます。1 引数が複数ある場合は「,」を使って、データ間を区切りますが、この引数を仮引数と言います(この構文ではスペースの都合で仮引数の部分を2行目に書いていますが、通常は1行で書きます)。
「戻り値型」についてはこの章の後半で、「アクセスレベル」「static修飾子」については「クラスについて知ろう」で詳しく説明しますので、今の時点では形だけ覚えて頂くだけで結構です。

次はメソッドを実行する方法について説明します。
メソッドは定義しただけでは何も動きません。
メソッドを使いたい時にはメソッドを呼び出さなくてはいけません。
以下の基本構文でメソッドを呼び出します。1 カッコの中にある引数を実引数と言います。
この実引数をメソッドに渡して、メソッドに処理をしてもらいます。
この例では引数をheikinメソッドに渡して、平均値を求める作業をしてもらいます。1111 この渡されたデータを元にメソッド内では平均値を求める処理を実行します。
その他の以下のメソッドも先ほど説明した原理で実行されますので、結果的に3回メソッドが実行されて、結果も3回出力されます。11111 しかし、仮引数と実引数の型が違っても 小さい型の実引数から大きい型の仮引数への自動変換は出来ます。1 この例の場合はint型の「99と96」を「99.0と96.0」に自動変換 してくれます。

次はreturnについて説明します。
先ほどのheikinメソッドはメソッドを実行した時に発生した値を呼び出し元に返していませんでしたが、今度はメソッドを実行した時に発生した値を呼び出し元に返す方法について説明します。
では例をみてみましょう。11 結果は以下の通りです。1 return文のあるメソッドの構文は以下の通りです。1 この例ではheikinメソッドを実行した結果が変数dに代入されていますが,この計算結果を呼び出し元に返したい時にはメソッド内に1と記述します。
return文のその他の書き方として、戻り値の箇所に変数を指定する代わりに1のように計算式を書くこともできます。
そして、計算結果dの値が呼び出し元に戻されて、そのdの値が変数gに代入されます。
そして、そのgの値を1 で出力しています。1 次に基本構文の中の戻り値の型について説明します。
最初の例の戻り値の型は「void」でしたが、戻り値を返す必要がない場合には戻り値の型を「void」にします。1 先ほどの例での戻り値の型は「int」ですが、これは返す値の型に合わせます。1 つまり、返す値であるd変数はint型なので、戻り値の型は「int」にします。
次にメソッドでの注意点について説明します。
メソッドの中で宣言される変数はそのメソッドの中でしか使用できないので注意してください。
例えば以下の例のMainメソッドやheikinメソッドの中にある変数は各メソッド内でしか使用することは出来ませんので、他のメソッド内で使うとエラーになります。
以下の例はMainメソッドの中でheikinメソッド内のd変数を使っているのでエラーになります。1 また、Mainメソッドとheikinメソッドの中で同じ名前の変数名を使っていますが(変数aと変数b)、メソッド内で宣言をした変数は例えメソッド間で同じ名前の変数を使っても全く違う変数として使うことが出来ます。
つまり、同じ名前の変数ではありますが、まったく違う変数としてみなされます。

カテゴリー
C言語

関数について知ろう

この章では関数について説明します。
関数とは入力したデータ(引数)に基づいて、決められた処理を行い、戻り値という結果を返す機能を持っています。
関数の仕組みはエクセルの関数の仕組みと意味は同じです。111 この章以前の関数は「組み込み関数」と言いまして、C言語によって始めから用意されている関数です。
例えばprintf関数は文字列を出力する関数ですが、C言語でそのような働きを作ってくれています。
組み込み関数の他にC言語では自分で好き勝手に1を作ることができます。
これを「ユーザー定義関数」と言いますが、この関数の作成方法をこの章で説明していきます。
例えば消費税額を自動で計算する関数を自分で作りたいとします。その場合、商品のお金を関数に渡すと関数は商品金額に消費税額を掛けた処理をして、その金額を返すという関数を作ることになります。
関数の構文は以下の通りですが、これを「関数の定義」と呼びます。1 〇引数とは関数が利用するデータのことを言います。
〇関数の中の引数は左端から第1引数,第2引数と順番に数えていきます。
また1個以上の引数を記述する場合はカンマで区切ってください。引数がない場合には1を入れます。
〇returnを記述するときは1という形で書きます。
またreturnは省略できます。returnの詳細は後ほど説明します。
main関数も関数の一種ですが、他にも色々な関数を作ることができます。
main関数は特別で他にどんな関数を作っても一番初めに実行される関数です。
次に関数の実行方法について説明します。
関数はmain関数を除いて関数を定義しただけでは何も動きません。
関数を実行させるためには関数を呼び出す必要があります。
そして、呼び出すことによって関数の中身が実行されます。1 では1番簡単な例から、見てみましょう。1 初めに、プログラムの流れから見てみます。
① main関数とhello関数がありますが、初めに実行されるのはmain関数です。
main関数の中では上から順にプログラムは流れていきます。
ですので、初めに1が実行されます。
②次にhello();を実行します。
関数名に「()」を付け、hello関数を呼び出しています。
hello関数内では1を実行して「こんにちは」を出力します。

③hello関数を実行し終えたのならばmain関数に戻ってきて、プログラムを終了します。1
では関数の構文を詳しく説明します。
初めに「戻り値の型」について説明します。11 関数とは入力したデータ(引数)に基づいて決められた処理を行い、戻り値という実行結果を返す機能を持っていますと説明しましたが、その戻り値の型を関数名の左側に書きます。
戻すための値がない場合には1と書きます。1次に引数について説明します。11 void hello(void)の2つ目のvoidは引数が無いと言う意味です。
つまり、関数の呼び出し元から渡されてくる引数が無いということです。
この例の場合は1の箇所でhello関数を呼び出していますが、引数がカラです。

次は関数名について説明します。
関数名には「hello」と名前が付いていますが、名前の付け方にもルールがあります。
1つ目は1文字目は数字で始めることはできません。
つまり、3nという名前はつけることはできません。
1文字目は
「アンダースコア(_)」
「aからz」
「AからZ」のどれかで書きます。
2つ目は2文字目からは
「アンダースコア(_)」
「aからz」
「AからZ」
「数字」が使えます。
3つ目は31文字まで名前を付けることが出来ます
4つ目は予約語を使うことができません。
5つ目は基本的には小文字で書いてください。

次は関数についての注意点について説明します。
関数の定義は関数の呼び出しよりも前に定義しなければいけません。
つまり、先ほどの例で説明すると1はmain関数の中にあるので、main関数よりhello関数を後ろに書いてはいけないということです。
以下の書き方はエラーです。1
次は引数のある関数についての説明をします。11 プログラムの流れをみてみましょう。
①初めに実行されるのはmain関数です。
「int a=2,b=3;」で変数の宣言と初期化を行っています。
次に1を実行します。

②次に「tashizan(a,b);」の箇所でtashizan関数を呼び出します。
初めの例では1のようにカッコの中の引数はカラでしたが、この例ではtashizan関数に渡す値をa,bという引数で設定しています。
この呼び出し側のカッコの中の引数を実引数と言います。

③次にtashizan関数を実行します。
この関数の中の引数を仮引数と言います。
tashizan関数が呼び出されたのならば1のaの部分がtashizan関数の1の部分にセットされ、1のbの部分がtashizan関数の1の部分にそれぞれセットされます。
つまり、2が1に入り、3が1に入ります。
その後に関数内部のプログラムが実行されます。1 tashizan関数を実行し終えたのならばmain関数に戻ってきて,1でプログラムを終了します。
1111しかし、実引数と仮引数の型が違う場合には型変換の規則に従って自動的に変換されます。
型変換の規則については説明済みですが転載します。11
次は戻り値のある例を見てみましょう。1111111 tashizan関数の中で足し算の計算がされて、変数zにその結果を代入しています。11 このようにreturnは関数の呼び出し元に戻り値を返す役割があります。
では、どのような時に戻り値を返すのか?
それは呼びだし側であるmain関数内でその値を活用したい場合に戻り値を返します。1 この例の場合はreturnで返されるzはint型なのでtashizan関数の戻り値の型もintにしてください。1

カテゴリー
C言語

C言語の基礎を知ろう1

この章ではC言語の基礎を説明していきます。11つまり、「stdio.h」がないと puts関数、printf関数、scanf関数などは使用することができません。
「stdio.h」はヘッダーファイルと呼ばれていますが、ヘッダーファイルには1という拡張子が付いています。
1#include」はプログラムに他のファイルを入れたい時に使います。1 「#include」はプログラムの先頭で使用してください。
この例では「stdio.h」と「stdlib.h」の2つのファイルを取り込んでいます。1 注意点としては1は以下のように途中で改行するとエラーになりますので気を付けてください。1 以下が代表的なヘッダーファイルです。11111エクセルをご存知の方はわかると思いますが、例えばエクセル関数にSUMと言う関数が有りますが、この関数は指定した範囲のデータに基づいて足し算を行う関数です。
例えば指定した範囲のデータが1であるならば結果(戻り値)は「15」です。
このように決められた機能を実行して結果を返すのが関数の役割です。
では以下の例について説明します。1 この例の関数名はmainですが、C言語で最初に実行されるのはmain関数です。
このmain関数は必ずプログラムに1つは必要です。
そして、実行内容はブロックの中に書いていきます。
ブロックは以下の図をみていただくと分かりますが1から1までです。
基本的にはそのブロック内ではプログラムは上から下へ実行されていきます。1 戻り値の型やvoidの説明は「関数について知ろう」で詳しく説明します。
今はmain関数の形だけを覚えておいてください。
ここで何点か注意していただきたいことがあります。
ここではputsの意味などは分からなくても結構ですので、C言語での最低限のルールを説明します。11 上の赤枠の箇所にスペースがありますが、これはプログラムを読みやすくするためにあります。このスペースのことをインデントと言います。
インデントは入れなくてもいいですが、入れるとプログラムが読みやすくなります。
そして、インデントは必ず半角で開けてください。1 intやmainなどプログラムの骨格に書く文字は全て半角で入力して下さい。
上の例は「int」「main」が全角になっていますのでエラーになります。
しかし、1など出力する文字は全角でも半角でもエラーにはなりません。1 このように関数名の途中で改行してはいけません。
また1のように関数名に空白を入れるのもエラーになります。
11このコメントの部分はプログラムには影響しません。
つまり、コメント部分は出力されません。
1行でコメントする場合は1がコメントになります。
複数行の場合は1から1までの間にコメントを書いてください。
しかし、以下のように1行のコメントのために使用してもいいです。1 以下にコメントの例を載せましたので、参考にしてください。11 puts関数はカッコの中の文字列を表示させる関数です。
「文字列」とはダブルクォートで囲まれたデータを指します。
関数については以下のように説明しました。
「エクセルをご存知の方はわかると思いますが、例えばエクセル関数にSUMと言う関数が有りますが、この関数は指定した範囲のデータに基づいて足し算を行う関数です。
例えば指定した範囲のデータが1であるならば結果(戻り値)は「15」です。」
この例の場合にはputsに1という引数を与えるとその引数を出力する機能を持ちます。
この関数に与えるデータのことを引数と言います。
puts関数の具体的な説明は次の章でします。1 文の終わりには必ず1を付けてください。
日本語でも文の終わりには「。」を付けますが、これと同じ意味です。1 この記述はmain関数の終わりには必ず付けてください。
main関数は問題なく処理を終えた場合に1を返します。
これは文字通り「処理が成功しました」と言う意味です。
もしくは1の代わりに以下のように0を入れても同じ意味になります。11