#author("2022-11-07T17:22:29+09:00;2022-11-07T17:21:50+09:00","default:inoue.ko","inoue.ko") *Python Sample code #author("2023-09-04T11:46:39+09:00;2022-11-07T17:22:29+09:00","default:inoue.ko","inoue.ko") *Python|Terminal Sample ~ **はじめに このページでは Terminal を使う前提で、Python のサンプルコードを紹介します。JupyterNotebook を用いる方法については、[[GoogleColaboratory]] のページを参照してください。 ~ ~ **Python環境の確認 ***Terminal MacOS のターミナルを使います。移動>ユーティリティーからターミナルを起動し、ついでにアイコンをドックに登録しておくのが賢明です。 注)そもそもTerminal って何? という方はこちら → [[Terminal]] Macを利用している方であれば、Python3系(旧OSの場合 Python 2.7)がインストール済みです。Mac の Terminal を起動後、$プロンプトに続けて以下のようにタイプして下さい。 $ python -V 以下のようにバージョンが表示された場合は、利用できる状態です。 Python 3.6.X 旧OSの場合、Python 2.7.X など、2系のバージョンが表示されます。 最新の Python3系 を使う場合は、Python公式 https://www.python.org/ からパッケージをDLしてインストールして下さい。 インストール後にバージョンを確認するには、以下のように python3 を使います。2系と3系は別なので、注意が必要です。 $ python3 -V Python 3.7.X ~ ***Python の起動 Pythonが利用できる状態であることが確認できたら、Terminalの $プロンプトに続けて以下のように python とタイプして下さい。Python のコンソール環境が起動して利用できる状態になります。 $ python(またはpython3) 以下のような表示のあと、>>> プロンプトが出て入力待ちになります。 Python 3.6.5 (v3.6.5:f59c0932b4, Mar 28 2017, 03:03:55) [GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> ~ ***Python の終了 Python を終了して、通常のターミナルに戻すには、以下のように終了コマンドを入力します([CTRL] + [D] でも終了します)。 >>> quit( ) ~ ~ **インタラクティブ モード|簡単な計算 計算式や、代入文を入力することで、以下のように動作します。 -計算機として使う >>> 2+2 >>> 4 ← python が結果を表示します。 -プログラムの入力例 >>> a = 2 >>> b = 5 >>> a+b >>> 7 ← python が結果を表示します。 ~ ~ **スクリプト モード|プログラムを書いて実行する プログラムをテキストファイルとして記述して走らせるものです。 -Pythonスクリプトの記述と保存には [[テキストエディタ>TextEditor]]を使用します。プログラムのソースを書くだけですが、できれば [[Atom]] のような、多言語対応のものを使う方が効率がいいでしょう。 -Pythonスクリプトは、拡張子 ''.py'' を付けて保存します。 -プログラムの実行は、Terminal から python コマンドで行います。 ~ '''''以下、作業の流れを説明します。''''' ~ ***作業フォルダをつくる この種の作業では、 .py ファイルや、プログラムに関連するデータ等をまとめて保存するための作業用のフォルダ(例えば SamplePy01)を任意の場所(例えばデスクトップ)に作成します。 ~ ***エディタでコードを書く まずは、以下のソースをエディタにコピー&ペーストして sample.py として保存して下さい。 ''sample.py'' a = input( "a =" ) b = input( "b = " ) a = int( a ) b = int( b ) c= a*b print( "a x b = ", c ) ~ ***ターミナルを起動 Terminal を起動して、作業ディレクトリに移動します。 -方法1(推奨) Macの場合は、以下のようにして Terminal を起動すると簡単です。 --Terminal のショートカットアイコンを Dock か デスクトップに登録します。 --Pythonの作業フォルダアイコンを Terminal アイコンに重ねるかたちで起動すると、その時点で作業フォルダがカレントディレクトリになっています。 -方法2 --普通にTerminal を起動 --cd コマンドで作業ディレクトリに移動 $ cd /PATH/TO/SamplePy01 --以上で、作業フォルダがカレントディレクトリになります。 ~ ***プログラムの実行 -Pythonスクリプト実行させる場合は、以下のように Terminal の$プロンプトから、当該 .py ファイルを指定して起動させます。 $ python sample.py $ python3 sample.py ← Python3 の環境の場合はこちら -実行すると2回の入力が求められ、それらの積が結果として表示されます。 ''実行結果'' a = 4 ← 入力 b = 5 ← 入力 a x b = 20 ← 結果の表示 ~ ***参考イメージ 以下、作業フォルダ(上)とTerminal(下)の参考イメージです。 #image(SamplePy01.jpg) ~ ~ **ライブラリパッケージの導入 Python には、はじめから標準的なライブラリが付属していますが、例えば、グラフィックス、ゲーム、機械学習など、多くのサードパーティ製のパッケージがあって、それらを導入することで、作業効率は格段に上がります。 このライブラリの活用には、''pip''( Pip Installs Packages または Pip Installs Python )というパッケージ管理ツールを使います。まずは、この pip について確認しましよう。ターミナルで以下のようにタイプしてみて下さい。 $ pip -V 以下のようにバージョンが表示されるはずです。 pip 8.0.1 from ・・・ファイルの場所・・ ~ ***パッケージの管理 pip はパッケージの依存関係を管理してくれるので、Terminal から以下のようにタイプするだけで、簡単にインストール/アンインストールできます。 $ pip install パッケージ名 $ pip uninstall パッケージ名 注意)この話は、Mac標準のターミナルから Python を使っている前提です。Anaconda のターミナルの場合は conda コマンドでインストールするのが無難です(事例後述)。 ~ ***事例 Pygame -ゲーム開発用パッケージのインストール $ pip install pygame -同梱されたサンプルを試す 以下のコードで簡単にゲームの動きを確認できます import pygame.examples.aliens pygame.examples.aliens.main() その他のサンプルの情報は[[こちらです>http://westplain.sakuraweb.com/translate/pygame/Examples.cgi#pygame.examples.oldalien.main]] - Python で書かれたゲームをダウンロード(以下事例)。 https://github.com/leerob/Space_Invaders &small(画面右にある緑のボタン [ Clone or Download ] をクリックして zip を DL); -DL>解凍したフォルダのアイコンを Terminalアイコンに重ねて Terminal を起動。プログラムのあるフォルダがカレントディレクトリになります。 -プロンプトから以下のようにタイプ $python spaceinvaders.py これで動くはずです。 ~ ***Anaconda 環境での試走 同様のことを Anaconda 統合開発環境でも 試してみました。以下の手順です。 #image(Spyder.png,right,40%) -Environments の▶︎から OpenTerminal でライブラリを追加 $ conda install pygame -開発環境 Spyder を起動 -spaceinvaders.py を開く -▶︎ボタンで実行 -右のようになります。 ~ ~ **Python でデータサイエンス Python は近年のデータサイエンス(A.I.)の開発における主力言語となっています。以下のページのサンプルプログラムは、Python で記述しています。 -[[DataScience]] -[[DataVisualization]] -[[MachineLearning]] -[[NeuralNetwork]] ~ ~ ~