LogoMark.png

データサイエンス/05

第5回 Python プログラミング1

データサイエンス/2023?受講生一覧汎用シート

CONTENTS




はじめに

事務連絡

来週23日(月)14:00 - 14:30 、4年 大石修悟さんにグッドデザイン賞審査会に関する体験報告をしていただきます。ソーシャルデザイン学科の2年生全員に聞いていただきたく、この授業中にその場を設定させていただく次第です。

便利な技術のリスク

前回、前々回のみなさんのシートを確認したところ、データがずれている、あるいは、計算の対象となる範囲がズレているといった問題が散見されました。

スプレッドシートによる統計値の自動計算は、作業を大幅に効率化する点で非常に便利なものではありますが、わずか1ヶ所のデータのズレでも、それによって結果が大きく変わることがあります。便利さの裏側にそれを上回るリスクがあることを十分に意識してください。

これからの時代を生きていく上での選択肢は・・・

プログラミング言語の学習について

プログラミングは短期間で習得できるものではなく、授業を聞くだけでマスターできるものでもありません。使えば使うほど疑問や問題が出てくるのが常で、その都度、自力でそれに対処することで、少しずつ経験値が上げるものだとお考えください。この授業では、細かい文法の話は(初心者には意味不明なことが多いので)後回しにして、様々なサンプルでプログラミングの可能性に触れていただくことを主軸に据えています。まずはサンプルを「真似する」ことから入って、「ここをこうしたい」「ここを変えるとどうなる」といった、自らの好奇心で、サンプルを改変しながら、経験値を上げてください。

Pythonプログラミングへの関心が高まった方、あるいは、その必要性を感じた方は、自分自身の目で「読みやすい」と思う参考書を一冊購入して、初歩から順に読むことをおすすめします。> Amazon:Python 入門



Python 言語について

今回からは Python というプログラミング言語を使います。データサイエンスの世界では、スプレッドシートを用いた統計処理と並んで、Python言語による統計処理が主流となっており、インターネット検索でも、様々な手法を知ることができます。

Pythonはさまざまな分野のアプリケーションで使われているインタープリタ型のプログラミング言語です。クリーンで読みやすい文法、手続き型のコードによる自然な表現、直感的なオブジェクト指向、事実上すべてのタスクをこなせる広範な標準ライブラリとサードパーティのモジュール、アプリケーションに組み込んでスクリプトインタフェースとして利用することが可能・・など様々な利点があります。

開発環境を含めてオープンソースです。無償でダウンロード>インストールして利用することができます。

Google Colaboratoryについて

Python言語を使うには、パソコンに開発環境をインストールする方法もありますが、ここでは Python の学習環境として様々なテキストで紹介されている Google Colaboratory を使用します。

Google Colaboratory とは、Googleの仮想マシン上で動く Jupyter Notebook*1 をベースとした開発環境です。Googleアカウントがあれば、日常的に用いているブラウザから誰でも無料で利用できます。

Python 初体験

Google にアクセスしてログイン

Colaboratoryについて

login.jpg

新規のノートブックを作成

rename.jpg

では、はじめましょう

Jupyter Notebook の概要

Jupyter Notebookには、コード(プログラム)を書くためのコードセルと、テキスト(ノート)を書くためのテキストセルの2つがあります。この2つのセルを使うことで、見出し・解説・プログラムを文字通り「ノート」のようにまとめることができます。


対話処理の初期体験

Colaboratory 利用上の留意事項

Googleアカウントがあれば、誰でも無料で利用できますが・・

入力・処理・出力

プログラムの基本は、以下の流れです。

データの入力 > 計算処理 > 結果の出力


サンプルプログラム

以下のソースを「コード」として コピー&ペーストしてお試し下さい。

a = input( "a = " )
b = input( "b = " )
a = int( a )
b = int( b )
c= a*b
print( "a x b = ", c )


変数について

プログラミングの世界では「データを入れる器」のことを変数と言います。
Python の予約語以外であれば、自由な変数名を使うことができます。

x = 256
a = "hello"

変数には、数値・文字列・リストなど、様々なタイプがあります。
> 詳細:Python/Syntax

コメントについて

Python では # 記号以降はコメントとして扱われます。プログラム上で文の機能を一時的に無効にする(コメントアウト)場合にも利用可能です。

制御文

ブロックとインデント

if 文や for 文などの制御では複合文の記載が必要になります。JavaScript や PHP では { から } までが複合文が書かれる「ブロック」となりますが、Pythonでは、囲み記号を使わず、同じインデント(字下げ)がなされている文をブロックとして扱います。

if 条件式:
    ブロック内の処理1
    ブロック内の処理2

インデントの位置をさらにずらすことでブロックの「入れ子」が実現します。

if 条件式:
    ブロック内の処理1
    ブロック内の処理2
    if 条件式:
        ブロック内の処理1
        ブロック内の処理2


比較演算子

Python でよく用いる比較演算子は以下。結果は True または False です。

演算子意味
x == yx と y が等しい
x != yx と y が等しくない
x > yx は y よりも大きい
x < yx は y よりも小さい
x >= yx は y と等しいか大きい
x <= yx は y と等しいか小さい


条件分岐|if

if 条件式1:
    条件式1が真の時に実行する文
    ...
elif 条件式2:
    条件式1が偽で条件式2が真の時に実行する文
    ...
else:
    すべての条件式が偽のときに実行する文
     ...


繰り返し| for

繰り返し|while

制御文を含むプログラムの例

1から100までの整数の総和を求めるプログラム

演習5|Pythonプログラミングの基礎

学科サイトにリンク掲載

ここまでで紹介したサンプルプログラムを含むノートを、学科サイトの個人ページからリンクして下さい。以下、手順です。

このようなファイルを作っておくと、今後ちょっとしたコードの動作確認を行うためのノートとして活用することができます。






PAGES

GUIDE

DATA


*1 Jupyter Notebook は、ブラウザ上で Python のコードの編集とインタラクティブな実行ができるだけでなく、テキストドキュメントを挿入したノートとして情報共有する仕組みを実現したオープンソースのWebアプリケーションです。数値シミュレーション、統計モデリング、データの視覚化、機械学習などを得意とする、総合的なデータサイエンスツールです。
Last-modified: 2023-10-16 (月) 14:12:51