先日は、
にて変数について書きました。変数は、
変数の画像
のようになっていますが、構造的には
識別子 = リテラル
と言う形になっているのですが、変数名には決まり事があり、
■ 半角英数字と”_”で構成すること
■ 数字で始らないこと
■ 変数名の中にスペースが存在しないこと
■ 予約語を使用しないこと
という条件を守る必要があります。予約語は処理を行うために使用する特別な言語なので、これを使うと問題がでてしまうわけですが、基本的に処理の実行に使用する文字列と同じものがコード内に存在するとコードの内容がわかりにくくなるので、通常は、予約語だけでなく、コード内で処理を指定する時に使用するメソッドや関数などで使用されている文字列と同じものを使用しないようにする必要があります。
予約語は
のようなコードを実行すると確認できますが、
のようなものが該当します。変数にはリテラルを格納できますが、
■ 整数
■ 小数点数
■ 文字列
などを格納できます。変数の値はデータですがデータもオブジェクトなので、オブジェクトの名札として変数を用意して、その名称として識別子を指定する形になっています。
これとは別にTrue/Falseのように判定と値がない状態を指定するNoneがありますが、こうした指定をすることでデータの種類を区別出来るようになっています。
データもオブジェクトになりますが、関数もオブジェクトなので、データと同じように変数に格納して使用することが出来るので、
のように変数に関数を格納して実行することが出来ます。実際に実行すると、
のようになます。この事例では標準ライブラリからモジュールを呼び出して使用していますが、同じ処理は可能なので、
のようなコードを書いて実行すると
のような状態になります。基本的にオブジェクトは変数名をつけることが出来るので、コード内で使用する際には簡素化して文字数の削減をすることが出来るようになっています。
先日は、このように変数とオブジェクトについて書きましたが、変数はメモリー内にデータを格納する為の手段でしかないので、変数の宣言だけではデータを用意する作業のみで完結してしまいます。変数を使う際には、
■ 変数の宣言
■ 変数の呼び出し
を行うことになりますが、変数は宣言時に主記憶装置である物理メモリー領域の特定のアドレスに記録されているので、その場所にデータが容量分だけ格納される仕組みになっています。
C言語だとそのアドレスから型で指定した容量分だけデータが格納される形になっていますが、Pythonだと変数の宣言だけで値を格納できるようになっています。
この記録された変数の値は変数名と紐付けがされているので、変数名を指定すると呼び出すことが出来るようになっています。そのため、
のように変数を宣言して呼び出すと
のようになります。ただし、再代入をするとアドレスが変わるので、
のようなものを用意して実行すると
のようになります。また、こ再最代入時のメモリーアドレスは実行するたびに変わるようで、
のようなものを用意して実行すると
のようになります。ただし、
のように同じ値が存在するコードを書いて実行すると
のように同じ値のメモリーアドレスは一致しています。そのため、再代入をした場合には新しいアドレスが生成されていることになります。
計算を行う
Pythonは、対話型になっているのでターミナル上でPythonを開くとそのまま計算が行えるのですが、演算記号を使うことで数式wの入力を粉って買いを求めることが出来ます。この際に
の記号を使う事になりますが、これを 【 算術演算子 】 と呼びます。実際に対話型で使ってみると、
のようになりますが、べき乗は指数なので
のようになります。これは二進数を十進数で示したものとなじですが、ビット数を増やして使用した場合、桁の組み合わせで十進数の数値を作ることが出来るようになっています。C言語では、型の指定の際にビット数の表記がありますが、データは基本的にに進数で管理されているので、メモリー内に格納する時にもに進数のアドレスで保存されます。そのため、どの程度の容量のになるのか?を示すために方による容量の表記がされています。ちなみに、ポインタで指定したアドレスから容量分だけの区画を作って、その中に容量の範囲内のデータを格納して使用することになるのですが、データを扱う場合には必ずアドレスと容量の概念が素因剤するので、どこにどの位の容量のデータを格納できるのかを指定したあとに読み書きをする仕組みになっています。
のように 【+】と【−】で符号の有無を指定できるようになっているので、数値を絶対として扱い、その値に対して符号を与えることで正と負の変更を行うことが出来るようになっています。
また、対話型では変数も使用できるので、
のように変数を用いて式を構築すr娘tも出来ますが、対話型の場合、処理とデータはメモリー内部で格納されているだけなので、一旦Pythonを終了して宣言した変数を呼び出しても、メモリー内に値がありませんから、
のようにエラーがでます。この条件で考えると、対話型での作業は、データの保存が出来ないので起動するたびに同じ処理の記述画は節制することになりますから、通常は、コードを書いたあとにファイルで保存して使用することになります。
WINDOWS環境だとPythonをインストールするとTcl/TkとIDLEが自動でインストールされるようなオプション(インストールの可否を選択可能)が存在しており、新規インストール時には、環境変数の指定を自動で行うようなt項目も用意されています。
これは、アプリケーションをインストールする場合には必須な作業になりますが、WINDOWS環境でも
【 ソフトウェアの絶対パス ファイル名 】
でファイルを開くことになるのでファイルを開くたびに、物凄く深い階層のファイルを呼び出すことになります。流石に、これは煩雑すぎるので、WINDOWSではDOSの時代から存在する機能になりますが、環境変数の設定をすることで、この記述を簡素にして実行できるようになっています。Powershellのsalでエイリアスの指定をしたのと同じような処理ですが、これを行うことでLinuxのよ
うに
【 Python3 ファイル名 】
でPythonファイルを実行できるようになります。
そのため、WINDOWS環境だとPythonをインストールするとIDLEという統合開発環境が一緒にインストールできるので、コーディングをこなった後に 【 F5 】 キーだけでコードを実行できるようになります。この辺りはAnacondaに付属しているSypderでも同じことが出来るのですが、WINDOWS環境だとインストール直後から統合環境を仕様sるうことが出来ます。
WINDOWS環境だとPoweShellと一緒に統合開発環境も用意されているのでがあるので、コーディングとデバッグが出来るようになっていますが、Pythonの場合は、IDELも付属するので、付属のソフトで開発を行うことが出来るようになっています。
LinuxとMAC環境だと別途インストールすることになるので、UbuntuやDebianだとaptを使ってTkとIDLEをインストールすることになります。
Linux環境だと、viを使うとターミナル上でコーディングが出来るので、コーディングと実行をターミナルだけで行うことが出来るのですが、IDLEを使用した場合だとスニペットがしよづえ切るのでコーディングが行いやすくなっています。
この機能はLinux版でも使用できますから、関数を記述した記述の仕様がヒョじされるようになっています。そのため、viの作業では確認できないコーディング時の構文の方法を知ることが出来るようになっています。また、TABキーで候補がでてくるので頭文字だけ打ち込んでTABキーで候補を出して選択して入力する娘tも出来ます。
IDLEを使う
IDLEはエディタなので
のように何も表示されません。これは、コードとして成立していないためですが、コンソールアプリを作る際にデータの表示を娘なう際には、それを行う命令出す必要があります。この時に使用するのがprint()関数になります。
print関数
print関数は、I/Oの標準出力を行うためのもので、ディスプレイへの印字を行うためのものになります。これを使用することでコンソール上にデータの表示が出来るようになります。
コンピューターでは変数の宣言と演算処理はそのまま行うことが出来るのですが、こうした処理は内部処理ですから、見て確認することが出来ません。その状態を表示して確認するためにprint関数を使う事になります。
print()関数の最小の記述は、 【 print(引数) 】 になりますが、関数なので、引数を参照してその値を元に実装された処理をこない、戻り値を返す仕組みになっています。この辺りは、高校の合成関数で使用する 【 f(x) = 変数xの関数 】 と同じ作りになっていますが、関数も呼び出す際には 【 関数名(値) 】 になりますから、 【 f(5) 】 と同じ作りになっています。
こうした関数は自作をすることも出来ますが、自作した関数をユーザー関数といいます。プログラミング言語には起動後にそのまま使える命令が実装されているのですが、そうしたものを 【 組み込み関数 】 といいます。Pythonだと特にライブラリの呼び出しもなく使用できるようになっていますが、頻繁に使うものだけ組み込み関数に実装されています。
ただし、必要だけれど頻繁には使わないものもインストール直後に用意されており、ライブラリの参照をすることで使用できるようになっているものもあります。これが、標準ライブラリと言う形でどの言語にも実装されていますが、Pythonにもさまざまな標準ライブラリが実装されています。プログラミング言語の場合、
■ 標準入力
■ 標準出力
■ 標準エラー出力
は行えるようになっていますが、この中の標準出力にモニターへの出力が含まれています。
Pyhtonでは、print()関数を使うことで、モニターへのデータの出力が出来るようになっています。実際に先程の処理を
のように置き換えるて、任意のファイル名で保存後に 【 F5 】 キーで実行してみると
のようにコンソール上に値を出力することが出来ます。当然、変数も使用できるので、
のようなコードを書くと
のように演算処理が行われます。
文字列を使う
変数には、数値型と文字列型がありますが、文字列を使う場合には、
■ ’ : シングルクォート
■ " : ダブルクォート
のいじれかで文字列を書く無必要があります。文字列も引数に文字列を記述する方法と変数を記述する方法がありますが、
のようなコードを書くと、
のような結果になります。
文字列を結合する
変数に文字列を代入した場合、変数名で呼び出すことで文字列の表示が出来ますが、変数を並べて文章を作ることも出来ます。この時に称するのが、【 , : カンマ 】 になります。書式としては、
【 変数名, 変数名 】
のように変数,の後に半角スペースを入れて変数を繋ぐ形になります。
のようなコードを用意して実行すると、
のようになり、文字列が結合されていることが確認できると思います。また、Pythonでは、同じ文字列を連続して表示をする際には、掛け算のような処理が出来るので、コード内で行っているように
【 変数名*数値 】
で文字列を連続して表示することが出来ます。この方法を用いると、
のように変数の切り替えで文章を変更できるので、
のようなことが出来ます。変数の場合、変数を繰り返すことが出来るのでこのような処理が出来ます。
また、結合をする倍には数式と文字列も組み合わせることが出来るので、
のようなコードを書くと、
のような表示を行うことが出来ます。また、文字列の組み合わせは、
のように変数に格納できるので、型が同じ場合だと
【 変数名+変数名 】
で結合できます。このコードを実行してみると、
のようになります。このコードでは、2つの変数を結合した結果を1つの変数として使用し、その変数に数値を掛けることで数値分だけ繰り返して表示を行っていますが、変数の組み合わせも一つの変数にまとめることが出来るのでこのコードのように文字列から文を作って連続して表示することも出来ます。これは、IDLEだけでなく、対話型でも同じことが出来るので、ターミナルPythonを使用した場合でも同じ処理を実行することが出来ます。