今回は変数と関数について解説していきます。ですがその前にスクリプトファイルについてお話しします。
①スクリプトファイルについて
端的に書くとC、C++等プログラムを作成する際にコードと呼ばれるものを作成します。一般的にpythonでは以下のような画像(右側にあるのがコード)をスクリプトと呼んでいます。また画像の左側がターミナル(端末)と呼ばれるものです。ターミナル上で作成したプログラムを起動すると結果が反映されます。
またスクリプトはメモ帳でも編集する事が出来ますがメモ帳以外でも作成出来るソフトがあります。具体的に
- pycharm
- spyder
- VScode
等があります。リストにまとめたソフトはどれも良い物なのでお好みのソフトでスクリプトを作成してみてください。
②変数について
変数はある任意の文字列(例えばpi、number)に数値を入れることが出来る仕組みを指します。これを使うことによって同じ数値を何回も使用出来るようになります。また変数に数値を入れることを代入と言います。
代入するには上の画像の様に=を使い、数値だけでなく文字列も入力することが出来ます。ここで変数に関する注意ですが
- 一文字目は英字か_
- 二文字目はは英数字か_
- 予約語(print,、for、random等)は使用できない(但しrandom_numberの様にすれば使用できます)
実際に変数とスクリプトを使用することで以下のような複雑なプログラムを組めます。
所で勘の良い人であれば違和感に気づいたと思いますが+=とは何なのか。これは累算代入演算子と呼ばれるもので種類があります。
- m += n→ m = m + n
- m -= n→m = m – n
- m *= n→m = m * n
- m /= n→m = m / n
- m //= n→m = m // n
- m %= n→m = m % n
を表します。(記号の意味を忘れた場合は前回の基礎講座①を見返してください)
変数については一通り終わりました。ここでコーヒーをのむ等をして少し休憩でもしましょう。これを書いてる私も少し疲れましたので。
③関数について
今まで何となく使っていたprintは実は関数とよばれる物でした。関数はprint以外にも色々種類があります。その前にまず関数とは何か。
関数は何らかの引数と呼ばれる値を元に何かしらの計算や処理を行い、その結果を戻り値として返す処理の事です。例えていうなら料理です。材料は引数、料理する過程を関数、そして出来上がった料理が戻り値みたいな感じです。またpythonに置ける関数は組み込み関数(print、int、enumerate等)とユーザー定義関数に分けられます。ユーザー定義関数は後の講座で解説します。ひとまずよく使う組み込み関数を紹介します。
③ー①imput関数
以下のスクリプトを作成してください。
print('名前を入力してください')
s1 = input('姓:')
s2 = input('名:')
s = s1 + s2
print('あなたの名前は' + s + 'さんですね')
その後に実行するとターミナル上では以下の様になります。
上から順に「名前を入力してください」と表示され姓の入力を求められ入力待ちの状態になります。そして入力すると今度は名の入力を求められ入力待ちの状態になります。最後に名を入力しEnterを押すと「あなたの名前は田中太郎さんですね」と表示されます。
③ー②str、int、float
input関数で入力した文字は文字列として認識します。では文字列のまま計算するとどうなるのか。それは先ほど紹介した図の通りになります。例えばs1 = 5、s2 = 8と入力すると戻り値は58となります。ではinput関数を使って計算は出来ないのかというと違います。関数のなかには文字列から数値に変換する関数int、float、数値から文字列に変換するstrがあります。それぞれをまとめると以下の様になります。
関数 | 詳細 | 引数 | 戻り値 |
int | 文字列を整数に変換 | 文字列 | 整数 |
float | 文字列を実数に変換 | 文字列 | 実数 |
str | 数値などを文字列に変換 | 任意の値 | 文字列 |
③ー③オブジェクト指向
オブジェクトとはデータを抽象的に表したものです。オブジェクトを中心に様々な処理を考えるプログラム方式をオブジェクト指向と言います。pythonでは全てのデータがオブジェクトとして処理され、様々なオブジェクトをクラスとして何かしらの形で分類されます。クラスから作り出したデータの実体の事をインスタンスといい、このインスタンスを出現させることによって様々な処理が行えます。主なクラスは以下の様になります。
クラス | 概要 | インスタンスの例 |
int | 整数 | 1、3、-5、0 |
float | 浮動小数点 | 1.2、-3.0、3.14 |
string | 文字列 | ‘hello’、’プログラミング’ |
bool | ブール値 | True、False |
list | リスト | [1, 2, 3]、[‘A’,’B’] |
tuple | タプル | (1, 2, 3)、(‘A’,’B’) |
dict | 辞書 | {‘赤’:’red’,’青’:’blue’} |
set | 集合 | {1,2,3}、{‘JAPAN’,’USA’} |
③ー④メソッド
関数の中には以下の様に記述し、データ処理をします。
‘Hello’.lower()→’hello’、’Hello’.lower()→’HELLO’
左側の’Hello’はインスタンス(オブジェクト)、「.」の後の関数をメソッドを表します。メソッドとはオブジェクトをそれぞれのクラスに応じた様々な操作を行い、データ処理を行う事です。書式としてはインスタンスの後に「.」をつけて実行します。
以上で変数と関数についての解説を終わります。次回は条件分岐と繰り返し処理についてまとめます。
コメント