Lecture

特別講義DS Ch3 Pythonと環境構築

資料

イントロダクション

データサイエンスは,データを利用して現象を発見したり,予測をする科学の総称です. データの作成やデータを分析する前の処理,利用するコンピュータ関連の技術なども対象となります.

データサイエンスと関連の深い分野/用語として統計や機械学習,AIがありますが,それらもデータサイエンスの一部とみなすことができます.

統計は,データ自体の取得・作成・集計から,データの構造を分かりやすく分析・可視化する学問です.機械学習は,データから予測モデルを作り,意思決定などに応用する学問です. 統計や機械学習・AIは明確に分割することができるものではなく,かなりの部分が共通しています. 特に皆さんがこの講義の先修科目である統計学入門で学んだ,初歩的な統計は,機械学習やAI,データサイエンス全般を学ぶ上で,前提知識となります.この他,どちらかに分類できるわけではない,モデリング,AI,シミュレーション,最適化,次元削減,など様々なトピックが含まれています.

データサイエンス

この講義では,統計学入門で学んだ,可視化,数値化,検定,回帰などの統計学の手法をPCを使って行う他,統計学入門の範囲を超えたより発展的な手法に関しても学習します.

しかし,このようにデータサイエンスは非常に広範な学問なので,統計学入門のように個別の手法に関して,細かく理解することはせず,それぞれの概要と利用方に関してのみを扱います.

プログラミング言語の種類

データサイエンスは言葉の通り,データを扱います. 現在ではデータは基本的に,電子データとして収集,処理されるため,それらの編集,処理にはコンピュータを利用し,操作は基本的にはプログラムによってなされます. したがってプログラミングは,データサイエンスのための前提知識となります.

この講義では最終的には,学生それぞれに研究のためのプログラムを組んでもらいます. データサイエンスや統計でよく使われる言語は, Python, Julia, R, SPSS, matlab などいくつかありますが, この授業では, 現在世界的に広く使われており,習得も容易なPythonを利用します.

プログラミング言語には沢山の種類がありますが,言語によって機能や得意なことが異なります.

Langage icons

プログラミング言語は 実行方式, 書き方,検査の仕方などの特徴がそれぞれ異なり,大まかにはそれぞれ以下のような意味になります.


実行方式

プログラミング言語は,人間にとって理解しやすくデータ構造やアルゴリズムを記述するための手段です.しかし,コンピュータはプログラミング言語を直接理解することはできません.そのため,書かれたプログラムはコンピュータが解釈できる形式,すなわち0と1のビット列である機械語に翻訳される必要があります.この翻訳プロセスは,プログラムの実行方式を以下の二つに分ける要因となります.

  • インタプリタ方式

インタプリタ方式では,プログラムは逐次的に機械語に翻訳されながら実行されます.この方式の特徴は,コンパイルする必要がないため,翻訳と実行が同時に行われる点です.これにより,プログラムの変更がすぐに反映されるため,開発中のテストやデバッグが容易になります.しかし,実行のたびに翻訳を行う必要があるため,実行速度が遅くなることが欠点です.

  • コンパイラ方式

コンパイラ方式では,プログラム全体が事前に機械語に翻訳され,その結果として得られる実行可能なプログラムが生成されます.コンパイラ方式の利点は,一度コンパイルされたプログラムは,何度も実行される際に追加の翻訳が不要であるため,実行速度が速いことです.また,コンパイル時にプログラム全体を分析できるため,エラーやバグの発見が早期に行え,より安全性が高まるという利点があります.

この二つの実行方式は,プログラムの性質や用途に応じて選択されます.インタプリタ方式は開発の柔軟性が求められる場合に適しており,コンパイラ方式は性能が重視される場合に好まれます.プログラマはこれらの特性を理解し,それぞれの場面で最適な選択をすることが求められます.


書き方

プログラミングとは,基本的にコンピュータに対して実行してほしい命令を記述する作業です.現在主流のプログラミング言語には,大まかに手続き型言語関数型言語の二つの記述方法が存在します.

  • 手続き型言語

この言語タイプでは,プログラムが「何を,どうするか」を順番に記述していきます. Python,Java,VBAなど多くの広く使われている言語がこの方法を採用しています. これにより,処理の流れが直観的に理解しやすくなります.

  • 関数型言語

関数型言語では,プログラムを実行によってユーザーが得たい結果を抽象化し,関数の組み合わせで記述します.このアプローチは,安全性の向上やデバッグのしやすさといったメリットを提供しますが. 概念の抽象化により理解が難しくなることがあります.

近年では,手続き型言語にも関数型の構文が取り入れられるようになり,手続き型言語内で関数型風に記述することや,その逆も可能になっています.

これらの違いについて更に詳しく知りたい方は,別の講義資料で更に詳しく説明しています.


検査の仕方

プログラミングは,データ構造とアルゴリズムを使用して命令を記述する作業です.ここではデータ型の詳細に深くは触れませんが,あらゆるプログラミング言語において,データはコンピュータのメモリ上に数値の羅列として存在します.それらの数値に意味を与えることでデータ型が形成されます.

プログラムは実行時に,これらのデータ型が適切に使用されているかを検査します.主な検査方法には動的型付け静的型付けがあります.動的型付けでは,プログラムの実行時にデータ型が決定され,静的型付けではコンパイル時にデータ型が固定されます.さらに,型付けには「弱い型付け」と「強い型付け」という区別も存在しますが,この講義ではその詳細には触れません.興味のある方は,このトピックについてさらに調査してみてください.

  • 動的型付け 動的型付けのシステムでは,プログラマが変数の型を明示的に宣言する必要がありません.代わりに,コンピュータはプログラムの実行時に型を推論し,適切な型を自動で割り当てます.この柔軟性により,プログラマはより迅速に開発を進めることが可能になります.一方で,このシステムではコンパイル時の型チェックが行われないため,実行時に型関連のエラーが発生するリスクが高まります.そのため,安全性を確保するためには,プログラマ自身が型の整合性に注意を払い,エラー処理やテストにより問題を検出する必要があります.
  • 静的型付け

静的型付けでは,プログラマが変数や関数の型をコード内で明示的に宣言し,これらはコンパイル時にチェックされます.この事前の型チェックにより,プログラムの安全性が向上し,実行時のエラーが減少します.また,コンパイラが型情報を利用して効率的なコード生成を行い,パフォーマンスが向上することがあります.静的型付けは特に,大規模プロジェクトや高い信頼性が求められる場合に適しています.


プログラミング言語は,このような区分や,それ以外の様々な機能によって,用途の向き不向きが決まります(大雑把な目安です).

Languages and usages

ではこれらの特徴を踏まえて,Pythonとはどのような言語なのかを見てみましょう.

Pythonは

  • インタプリタ型言語で
    • 機械語に翻訳しながら動く
    • 手軽に書けて手軽に試せる
    • でも少し安全性が低く,遅い
  • 手続き型言語で
    • 次に何をするかを順番に書く
    • (ただし関数型っぽい書き方もできる)
  • 動的型付け言語で
    • 型検査を動かしながら実施
    • 動かしてから型が違うと失敗する

これらは,プログラミング言語の大きな分類からみたPythonですが, Python固有の特徴として以下のようなものがあります.

  • とにかく読みやすく書きやすく覚えやすい
    • ABC言語という教育用言語が元になっている
      • 予約語が少ない, → 覚えることが少ない
      • インデントでかき分け → 間違いが少ない
      • だれが書いても同じになる(と言われてはいる)
  • ライブラリが豊富
    • 統計処理を全部0から自分で書くのは大変
    • 他の人が作ったものを使えるようにするのがライブラリ
    • 様々な大学や企業,研究者が膨大な量の統計処理,機械学習ライブラリを開発している
  • 遅いけど,Cなどと連携しやすい.
    • プログラミング言語ごとに速度は異なる.
    • Pythonは結構遅いので大きな計算に時間がかかる.
      • とても早い言語で遅い部分を書き換えやすい
      • ライブラリは基本的に早くなっている

Pythonが教育用に良く使われるのは, インタプリタ方式の動的型付け言語であることから手軽に書けるだけではなく,もともと言語として簡単に書けるように作られていることが大きいです.

また, 統計,データサイエンス分野のライブラリが充実しており, これによって誰でも簡単に複雑な統計処理やデータサイエンスの技法が利用できることで,Pythonが広く普及しています.

簡単 → 教育用に → 多くの人が使う → ライブラリが充実 → もっと多くの人が使う

という流れがPythonの最大の強みと言えるでしょう.

実際にPythonはユーザー数が増え続けており,プログラムの共有サイトGitHubにおける2023年のすべての言語のなかで2番目にユーザ数が多い言語となっています. Top 10 Programming languages on GitHub

Top 10 Programming languages on GitHub

授業準備

この講義では,プログラムを自分で作成し,様々な演習をこなしてもらいますが,その前段階として,いくつかの準備が必要となります. 非常に基礎的な内容なので, 問題のない人は飛ばしましょう.

テキストエディタのインストール

テキストエディタとは,プログラムを書くためのソフトウェアです. プログラムを書くことをコーディング(Coding)といいます.

テキストエディタには沢山の種類があり,それぞれ独自の機能を持っています. Windwosに最初から入っている「メモ帳」もテキストエディタですが,プログラムを書くために様々な機能が追加された高機能なテキストエディタも沢山あります.

例えば,シンタックスハイライト機能は,以下のプログラムのように,プログラムの記述を役割や意味に応じて色付けして見やすくしてくれます.

## シンタックスハイライト
from datetime import datetime

def greet_based_on_time():
    now = datetime.now()
    current_hour = now.hour

    if 5 <= current_hour < 12:
        greeting = "Good morning, world!"
    elif 12 <= current_hour < 18:
        greeting = "Good afternoon, world!"
    else:
        greeting = "Good night, world!"

    return greeting

# 関数を呼び出して結果を表示
print(greet_based_on_time())

また,スペースをタブに変換するなどの機能も非常に便利です.

この講義では世界的に人気のあるMicrosoftの開発したテキストエディタである VSCode (Visual Studio Code)を利用します. 最近では生成AIを利用した自動補完機能がついたCursor(有料)などもあります. AI利用法に関しては後ほど扱いますが,ほぼ同様の機能が利用可能なので,Cursorを既に利用している方はそちらでも問題ありません. そのた,既に何かしらのテキストエディタを利用している方は,現在使用しているエディタをそのまま利用して頂いても構いませんが必要な設定等は自分で行って下さい.

VSCode をクリックして,ページ上部にあるDownloadをクリックします. 自分のPCに合わせたインストール方法を選択しましょう.

Screenshot VSCode

インストーラーをダウンロードしたら,クリックして開いて,「同意」等を進めて下さい. 基本的に設定はデフォルトのままで問題ありません.

インストールが終了したら,VSCodeが立ち上がります. サインインを求められますが,ここでは「Continue without Sigining In」を選択してサインイン無しで進めます.

VSCode Sign In

表示モードは好きなものを選択して下さい. VSCode Mode

拡張機能はこのあと入れるのでSkipして下さい. VSCode Extensions

VSCodeは様々な拡張機能があり,利用しやすいようにカスタマイズすることが可能です. 本講義では最低限Pythonのシンタックスハイライト及びLaTeXの導入方法のみ扱います.

その他の便利な拡張機能等に関しては自己責任で調べて導入して下さい.

左側にある四角が4つ並んだアイコンを選択します.

VSCode Install Extensions

検索窓にPythonと入力して Pythoninstallを押します.

VSCode Install Python

検索窓にlatexと入力して LaTeX Workshopinstallを押します.

VSCode Install LaTeX Workshop

これで基本的な設定は完了です.

ファイルを編集する際には, 左側のファイルアイコンをクリックして,プログラムの保存されているフォルダを選択します.

VSCode Files

ディレクトリが表示されるので,編集したいファイルをクリックすることで編集が可能となります. VSCode Edit

その他細かな利用法に関しては,今後実際に利用する際に説明します. また,基本的な操作やショートカット等に関しては, 各自で調べてみて下さい.

IMEの設定

プログラムは基本的に 「半角英数字」 で記述されます. プログラム中に全角の空白や記号が交じるとエラーの原因となる場合があります. そのため,プログラムを書く前に,そういったミスが起きないようにIMEの設定をしましょう.

タスクトレーからIMEの設定ができます.基本的に記号をすべて半角に設定しましょう(スペースは必ず半角にしましょう).特に,句読点をコンマとピリオドに変更しましょう.

IME

CLIの基本操作

プログラムの開発環境にはマウスなどでクリックして操作するGUI(Graphical User Interface)をもったIDE(Integrated Development Environment)などもありますが,基本的には文字によってコンピュータに命令を送るCLI(Command Line Interface)を利用します. 映画やマンガなどで,ハッカーが黒い画面に文字を打っているあれのことです.

コンピュータのオペレーティングシステムとユーザー間のCLIを提供するプログラムをShellといい,Windowsでは,Command PromptやPowerShellなどがあります. MacなどのUnix系では,Bashやzshがあります. いずれも (Windows) Terminalというソフトウェアを介して利用します.

本講義では環境や好みによって好きな環境で開発して構いませんが,ここでは,PowerShellの利用法を解説します.

Windows11の検索バーで Terminalと検索して,出てきた Terminalをクリックしましょう.

Screenshot Terminal

自動的にWindows PowerShellが起動します. 立ち上がった,黒色の画面に文字でコマンド(命令)を入力して,コンピュータを操作します.

Screenshot Terminal

エンコーディング

実際にコマンドを入力する前に, 初心者がつまづきやすいポイントとして,Windowsのエンコーディングについて解説します.

PCは人間の使う文字(日本語,英語など)が理解できません.PCは機械語と呼ばれる言語で命令を受け付けます.一方で,人間は機械語を読むのが困難です.そこで,人間の使う文字と,機械語の間に変換ルールを設けて人間の文字でされた命令をPCにわかる文字に変換します.この変換ルールを文字エンコーディングと呼びます.

エンコーディングには複数の種類があります(日本語設定のWindowsはShift-JIS,Unix系はUnicodeが一般的です). PythonはUTF-8という文字エンコーディングがデフォルトなので,Windowsにおいても可能な限りUTF-8を用いた方が良いです.

そこで,ターミナル上で利用するエンコーディングを変更します. PowerShellを起動して, chcp 65001 と打ち込み, PowerShell上で利用する文字エンコーディングをUTF-8に変更しましょう. chcpが利用する文字コードを変更するコマンド(change code page)で,その後に変更したい文字コードを入力します. 65001UTF-8のコードページ(Windows独自の文字エンコーディング)です. これはPowerShellを起動する度に行ってください.

chcp 65001

と入力すると,

Active code page: 65001
PS C:\Users\user>

のように表示されるはずです.

日本語表示

Power Shellの設定によっては日本語が表示されず,日本語部分が で置き換えられて表示されます.これは,使用しているフォントに日本語が含まれていないために発生します.

Screenshot PowerShell

設定を変更してて日本語を表示可能にしましょう( 適当な日本語を入力してみて,問題なく表示されるようであれば,変更は必要ありません).

左上の下向きの矢印 > 既定値 > 外観 > フォントフェイスの部分を日本語フォントに変更し保存をクリックすることで,日本語が表示されるようになります.

Screenshot Terminal
Screenshot Terminal
Screenshot Terminal

その他色やサイズなど,好きな設定に変更できます. あとで,好みにカスタマイズしましょう.

ディレクトリ

基礎的なコマンドを学ぶ前に,ディレクトリに関して理解しておきましょう. コンピュータの中のデータは,以下のような木構造になっています. このような木構造によるファイルの構造をディレクトリといいます.

C: -- Users -- hoge
          |
            -- hoge2 -- Desktop
                   |
                     -- Downloads
                   |
                     -- Documents -- huga
                                |
                                  -- huga2

CLIにおいて,ユーザはこの木構造のどこかに存在しており,この木構造を移動しながら様々な作業を行います. 現在いるディレクトリのことを working directory(以下wd)やcurrent directoryといいます.

基礎的なコマンド

ここでは, この講義で必要となる最低限のコマンド,特にディレクトリの移動に関するコマンドを学習します.

wdは, CLIの左側に表示されていることが多いです.

PS C:/Users/hoge2>

のように表示されていれば今C:ドライブ下のUsers下のhoge2がwdとなります.

  • Windowsでは,ディレクトリを区切る文字が¥あるいは\で表示されていると思います.

  • Macでは,/です.

本資料では,/を利用しています. 自分の環境に併せて適宜読み替えてください.

CLIの左側に表示されていない場合にもpwdコマンド (print working directory)を入力すると,現在のディレクトリが表示されます.

PS C:/Users/hoge2> pwd

PATH
----
C:/Users/hoge2

wdの下に何があるかを調べるコマンドとしてlsコマンド(list)があります.

以下, PS C:\Users\hoge2の部分は省略します.

> ls

Desktop
Downloads
Documents

※実際の画面では,もう少しいろいろな情報が書かれているかと思います.

ディレクトリ構造を確認するCommandとしてtreeがあります. treeと入力してEnterすることで,wd以下のディレクトリ構成が確認できます.

> tree
Folder PATH listing
Volume serial number is 00000157 B8F4:6480
C:.
├───Contacts
├───Desktop
├───Documents
   ├───hoge
   └───slds
       └───program
├───Downloads

tree [PAHT]と入力すると, wdではなく指定した[PATH]以下のディレクトリ構造が表示されます. また, /f オプションを加えることでファイルも表示されます.

> tree .\Documents\ /f
Folder PATH listing
Volume serial number is 000001D1 B8F4:6480
C:\USERS\AKAGI\DOCUMENTS
├───hoge
       hello.py
       slds-2-10.py

└───slds
    └───program
            hello.py

Macの場合は,treeコマンドは入っていないので,brewなどを利用してインストールする必要があります. brewに関しては自分で調べてみましょう.

また,オプションもWindowsとは異なっています.

コマンド 意味
-d ディレクトリのみ表示
-L N N 階層まで表示
-P X 正規表現Xに従って表示
> tree
.
├── hoge
      └── hoge.py
└── huga
        └── huga.py

3 directories, 2 files
> tree -d
.
├── hoge
└── huga

3 directories
> tree -L 1
.
├── hoge
└── huga

3 directories, 0 files
> tree -P "hoge*"
.
├── hoge
     └── hoge.py
└── huga

wdから別のディレクトリに移動するコマンドとして cd コマンド(change directory)があります

cd [移動先] と打つことで,lsコマンドで出てきた,ディレクトリに移動することができます.

> ls
Desktop
Downloads
Documents

> cd Documents
> pwd
PS C:/Users/hoge2/Documents

移動先のディレクトリ名はすべて自分で入力する必要はありません. 最初の数文字を入力してTab Keyを押すと,自動で保管してくれます.

cd .. と打つと一つ前のディレクトリ,cd ~と打つとホームディレクトリ(基本的には最初に開いた際にいた場所)に一挙に移動することができます.

> pwd
PS C:/Users/hoge2/Documents
> cd ..
> pwd
PS C:/Users/hoge2
> cd Documents/huga
> pwd
PS C:/Users/hoge2/huga
> cd ~
> pwd
PS C:/Users/hoge2

mkdir [作りたいディレクトリ名] コマンド(make directory)で,新しいディレクトリを作成できます.

rmdir [消したいディレクトリ名] コマンド(remove directory)で,ディレクトリを消すことができます.

> pwd
PS C:/Users/hoge2
> ls
Desktop
Downloads
Documents
> cd Documents
> ls
huga
huga2
> mkdir huga3
> ls
huga
huga2
huga3
> rmdir huga3
> ls
huga
huga2

rmdir コマンドでは中身のあるディレクトリは消せません. オプションを追加することで消せますが,危険なのでここでは教えません.興味があったら自分で調べてみましょう.

touch [作りたいファイル名] コマンドで空のファイルを作成できます. テキストエディタを開く前に,CLIからファイルだけ先に用意しておきたいときに便利です.

rm [消したいファイル名] コマンド(remove)でファイルを削除できます. rmdirがディレクトリ用であるのに対し, rmはファイル用です.

rmで削除したファイルはゴミ箱に入らず,基本的に復元できません. 実行前に対象が正しいかを必ず確認しましょう. なおrm -r [ディレクトリ名]とするとディレクトリを中身ごと削除できますが,誤って重要なファイルを消してしまう事故が起きやすいので,慣れるまでは使わない方が安全です.

> ls
huga
huga2
> touch memo.txt
> ls
huga
huga2
memo.txt
> rm memo.txt
> ls
huga
huga2

プログラムの中断

CLI上でプログラムを実行している最中に止めたくなることがあります(例えば無限ループに入ってしまった場合など). そのようなときは Ctrl + C (Ctrlキーを押しながらCキー) を入力することで,実行中のプログラムを強制的に中断できます. これから何度も使うので覚えておきましょう.

練習:作業用ディレクトリを作ろう

  • これから,作業をするためのディレクトリをコマンドで作成しましょう.

    • (OneDrive,icloudなどのクラウドストレージではない) Documentsに移動
    • Programs というディレクトリを作成し移動
    • Python というディレクトリを作成し移動
    • slds というディレクトリを作成し移動 (名前は好きに設定して良いです. slds; special lecture data science)

これからこの講義で利用するプログラムなどはsldsに保存しましょう.

環境構築

自身の環境(PC)でプログラムが動くようにすることを環境構築といいます. Python自分のPCで動くように設定をしましょう.

Pythonの環境構築に関して説明します.Pythonを動かす方法は沢山あります.一つのソフトの中でプログラムの編集から実行まで全て完結するIDE(統合開発環境)やブラウザ上でSaaSを通じて実行する方法もありますが,ここではCLIを利用して実行する方法を準備します.Windowsを所有している学生が多いと思われるので,Windowsを前提に説明します. それ以外のOSの方は分からなければ教員に聞いて下さい.

Pythonの環境構築にもいくつかの手法がありますが,現在は pyenvDockerを利用した仮想環境でpythonのversionやライブラリをアプリケーションごとに分ける方法が主流です.

本講義では, pyenvを利用するため,以下pyenv環境の構築を行います.

現状の開発環境の削除

Terminalを開いて, python --versionと入力しましょう. すでにpython が入っている場合は,Pythonのversion情報が表示されます.

> python --version
Python 3.11.9

Pythonがインストールされていない場合は以下のような表示になります.

> python --version
fha : The term 'python' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the s
pelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:1

Python の version情報が表示された場合は, pyenv --version と入力してすでにpyenvが入っていないか確認してください.

> pyenv --version
pyenv 3.1.1

pyenv の version情報が表示されている場合はすでに環境構築が済んでいるので飛ばしてください. pyenvのversion情報が表示されない人はまず現行のPythonを削除しましょう.

設定 > アプリ > インストールされているアプリから pythonを検索して, Python X.X の形式のアプリと,Python Luncherなどをアンインストールしてください.

その他, anacondaなどが入っていたらアンインストールしておいてください.

アンインストールが終わったら,terminal を一度開き直して, python --version コマンドで確認してみましょう. (VSCodeなどTerminalにアクセスするアプリを開いている場合は,閉じておきましょう.)

pyenvのインストール

続いて pyenv for windowsを参考にpyenv環境を構築します.

Terminal を再度開き以下のコマンドをコピー,貼り付けしてEnterを押してください.

 Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

Quick start 内のコマンドをコピーしてTerminalに貼り付け,Enterを押してください.

インストールコマンド

Terminalを再起動して,pyenv --versionを入力し,version情報が表示されれば成功です.

> pyenv --version
pyenv 3.1.1

Pythonのインストール

Pythonにはいくつかのversionがあり,必要に応じて切り替えて利用します. まずはインストール可能なversionを pyenv install --listコマンドで確認してみましょう.

> pyenv install --list
:: [Info] ::  Mirror: https://www.python.org/ftp/python
:: [Info] ::  Mirror: https://downloads.python.org/pypy/versions.json
:: [Info] ::  Mirror: https://api.github.com/repos/oracle/graalpython/releases
2.4-win32
2.4.1-win32
2.4.2-win32
.
.
.

この中から一つを選んでインストールします. 最新のものをインストールするとライブラリなどが対応していない場合があるので,3.11.9あたりをインストールしておきましょう.

> pyenv install 3.11.9
:: [Info] ::  Mirror: https://www.python.org/ftp/python
:: [Info] ::  Mirror: https://downloads.python.org/pypy/versions.json
:: [Info] ::  Mirror: https://api.github.com/repos/oracle/graalpython/releases
:: [Downloading] ::  3.11.9 ...
:: [Downloading] ::  From https://www.python.org/ftp/python/3.11.9/python-3.11.9-amd64.exe
:: [Downloading] ::  To   C:\Users\akagi\.pyenv\pyenv-win\install_cache\python-3.11.9-amd64.exe
:: [Installing] ::  3.11.9 ...
:: [Info] :: completed! 3.11.9

pyenvはディレクトリごとに使用するPythonのバージョンなどを管理できます. 現行のディレクトリのみで,特定のversionのPythonを利用したい場合は

pyenv local <使いたいPython>で設定します.

localで設定されているディレクトリ以外全てで共通のPythonを使用したい場合は

pyenv global <使いたいPython> で設定します.

今は,

pyenv global 3.11.9 で全体に3.11.9を設定しましょう.

> pyenv global 3.11.9
> python --version
Python 3.11.9

python --versionで指定したversionのpythonが表示されればPythonの環境構築完了です.

Hello World

初めて作成するプログラムとして標準出力(PowerShellなどの画面)にHello Worldと出力するだけのプログラムを作成してみます.

PowerShellを開いて,自分の作業用ディレクトリに移動します.

> chcp 65001
> cd Documents/Programs/Python/slds

テキストエディタで新しいファイルを開き,作業用ディレクトリhello.pyという名前で保存しましょう.

.pyはPythonプログラムの拡張子です.

保存は,タブからFile > save with encoding > UTF-8の順にクリックしUTF-8で保存しましょう. それ以降は Ctrl + sなどで上書き保存しても構いません.

作成したディレクトリに移動し, lsコマンドでファイルがあるか確認しましょう. ょう.

> ls
hello.py

確認できたらhello.pyに以下の2行を書き足して上書き保存します.

# -*- coding:utf-8 -*-
print(“Hello world!”)

保存できたらpython hello.pyコマンドでプログラムを実行します.

標準出力にHello World!と表示されれば成功です.

> python hello.py
Hello World!

ここまでで,皆さんはPCでプログラムを書く準備が整いました. あとはプログラムの書き方を学習すれば自身の環境で開発が行なえます.

プログラミングの勉強の仕方

プログラミング言語は,文字通り言語です. 英語などと同じ様に,使わないと身につきません.なので,大事なことは勉強するより使うことです.

英語の勉強で,一つひとつ文法を覚えることは大切かもしれませんが,実際に英文を書いたり,会話しないと使えるようにはなりません. プログラミングの学習で,学習用の資料や教科書を一つ一つ読んだり,ノートに書き写す人がたまにいますが,かなり効率が悪い方法です. 何も分からなくてもいいので,取り敢えずプログラムを書いて実行するようにしましょう. 資料に載っている例はすべて,実際に書いて実行してみましょう.

一番いい方法は,何も分からなくても取り敢えず,プログラムをつかってしてみたいことを実行することです.1からすべての構文などを覚えようとしないで,自分がやりたい,しなければならないことを,書き始めましょう. 分からないところだけを調べれば十分です.

その際に,新しく知ったことは,メモなどして,あとで参照できるようにしておきましょう. その資料が後々役に立ちます.

プログラミングは,すべて暗記する必要はありません. 覚えていなくても,それの調べ方や載っている資料を知っていれば十分です. 何回も使う機能であれば自然に覚えます.

ただし, Pythonは非常に多くの人が利用しているので,みなさんがこの講義で習うレベルのことは検索すれば既に,完成したプログラムを参考にすることができます. また,ChatGPTなどの生成AIを利用すれば,皆さんの書いたプログラムよりかなりできの良いものをすぐに得ることができます. それらを見て勉強することは大切ですが,ただ,只管コピペしたり,生成AIの結果を利用しているだけでは,全く身につきません. 検索して出てきたコードや,生成AIによるコードを利用しても構いませんが, それをただ貼り付けるのではなく,自分で読んで,理解するようにしましょう.

知らない部分,自分では書けない部分が見つかったらそれを理解するように勉強しましょう. ChatGPTに質問しても構いません. ただ,聞いたことを説明できるようにしましょう.

自分で説明できないものを使えるのはせいぜい学校の課題くらいです. 仕事や研究では,中身の良く分からないコードは利用できません. 最低限自分で理解したものだけを利用してください.

講義では,結果があっていればよいだけではなく,なぜそのように書いたのか,どのような意味か,なぜこうなるのかなどを皆さんに聞きますので,理解に務めるようにしましょう.

演習

  • 演習1 Shellコマンドの調査

今回ならったいくつかのコマンド以外にも便利なコマンドが沢山あります. 3つ調べて,使い方を説明してください.

  • 演習2 チートシートの作成

チートシートとは「それだけを見れば必要な情報が分かるメモ書き」のことです. プログラミングの学習では, 自分でノートを取って,それさえ見ればなんとかできる資料を作る のは非常に有用です.

.pptでも.txtでも形態は何でも良いので, 自分だけのチートシートを作成して, 今日覚えたこと,調べたことなどをメモしていきましょう.

◦ CLI, Pythonの基礎, Pandasなど学習の区切りごとにシートを分けると便利です.

◦ スライドサイズを事前に大きく設定しておくと便利です

書き方は自由ですが, 検索して有名なチートシートを参考にしてください.

このチートシートは後で紹介してもらいます.

  • 演習3 print()の利用

今回作成したhello.pyにおける print() という関数は()内の文字(""で囲われている部分)を標準出力する関数です. print()の括弧内の Hello World! 部分を好きな文字に書き換えて実行してみましょう.

演習について

この資料では,所々に演習が指定されています. 演習は自分で行い, どのようにやったのかを講義中に発表,あるいは宿題として提出してもらいます.

家で演習を進めた場合には,講義中にそれが再現できるように,

  • どのようにやったのか
  • なぜやったのか

などを人に説明できるように必ず作成したメモ,資料などを残しておきましょう.

ce0f13b2-4a83-4c1c-b2b9-b6d18f4ee6d2