第1回 - パソコンの使い方、Python プログラムの基礎

  1. 本授業を楽しく受けるために
  2. パソコンの基礎: タイピング能力を鍛える
  3. パソコンの基礎: ファイル・フォルダを理解する
  4. パソコンの基礎: コマンド プロンプト (ターミナル) を使う
  5. パソコンの基礎: 画面のスクリーンショットを撮る
  6. Python プログラムの基礎
  7. 本日のまとめ・小課題

0. 本授業を楽しく受けるために

本授業を楽しく受けるためには、

  1. プログラムを入力する。
  2. プログラムを実行する。
この 2つをとにかく効率よく繰り返すことが重要である。 そのためには が必要不可欠である。 そこで、最初にパソコンの基礎についてすこし説明する。

1. パソコンの基礎: タイピング能力を鍛える

キーボードを使った文字入力は、 これからの学生生活・社会人生活において 絶対に必要なスキルである。 ここでいう「タイピング」とは、ただ単にキーを 打つだけではなく、PC上におけるカーソルの移動や コピー・ペースト機能の活用も含まれる。

演習1-1. タイピングの練習

以下の文章を (コピー・ペースト等の機能を活用して) 改行・空白まで含めて正確にタイプせよ:

練習欄:

  1. 60秒以下 … チョー速い。何もいうことなし。
  2. 60秒〜120秒 … 標準。
  3. 180秒以上 … もう少し練習しましょう。

1.1. キーボード・ショートカットを覚える

パソコンにおける文字入力では、(マウスを使わずとも) キーボードだけで様々な操作がおこなえるようになっている。 文字を選択したりコピー・ペーストするときに、 マウスとメニューを使って行っていると非常にのろいので、 基本的なキーボードによる操作を覚えるようにしよう。

機能WindowsMac
入力位置 (カーソル) の移動 / / /
行頭/行末に移動 Home / End ⌘ Command + /
文字の選択 Shift + / / /
選択した文字の削除 Backspace Delete
切り取り Ctrl + X ⌘ Command + X
コピー Ctrl + C ⌘ Command + C
ペースト Ctrl + V ⌘ Command + V
ひとつ戻す (Undo) Ctrl + Z ⌘ Command + Z
すべての文字を選択 Ctrl + A ⌘ Command + A
選択した文字の置き換え 文字を選択したまま新しい文字を入力する。

参考

2. パソコンの基礎: ファイル・フォルダを理解する

本授業 (および、その他パソコンを使うすべての授業) では、 ファイルとフォルダの扱いに関する理解が必須である。

演習1-2. ファイルとフォルダのパス名

以下のようなフォルダ構造を考える。

ディスク A B C B E C K H K X /

以下の問に答えよ。 パスの区切り文字は「/ (スラッシュ)」とする。

  1. フォルダ X へのパス名 を答えよ。
  2. ファイル H へのパス名を答えよ。
  3. ファイル C へのパス名 (複数) をすべて答えよ。

2.1. フォルダとは?

ディスク A B C B E C K H K X

実際のファイル・フォルダは何でできているのか?

コンピュータ上の記憶装置 (ディスク) はつねに一定容量であり、 一定個数の「0」または「1」が書き込まれている。 これらの個数は変化しないため、 実際には「空き容量」などというものは存在しない。 また「フォルダ」という実体も存在せず、「削除」などというものもありえない。 (なぜなら、0 と 1 の数は変化しないからである。) これらは、すべてソフトウェアによる「見せかけ」である。

K H C K C

2.2. パス名とは?

演習1-3. パス名の確認
  1. 自分のホームフォルダを開き、パス名を確認せよ。
  2. デスクトップもフォルダである。パス名を確認せよ。

2.3. ファイルの「形式」とは?

コンピュータ上の情報 (データ) は、 すべて「0」と「1」の組み合わせで表される:

パソコン上では、データはすべて ファイル (file) に保存される。 さらに各ファイルには ファイル名 がついている。 ファイルの中には 0 と 1 の羅列が特定の規則により並べられている。 コンピュータは、これらをどのように解釈するかがわからないと、 ファイルの内容を正しく表示できない。 この 0 と 1 の並び方をファイルの 形式 あるいは タイプ (type) という。

現代のパソコンでは、 ファイルの形式はファイル名のあとにつく 拡張子 (extension) によって表される:

myfile.txt

ファイル拡張子を表示させる (Windows)

Windowsでは、ファイルの拡張子はふだんは表示されない設定になっている。 これを変更するには、以下のようにする:

  1. エクスプローラーから フォルダー オプションウィンドウを開く。
  2. 表示 タブをクリックし、登録されている拡張子は表示しない の チェックをはずす。

ファイル拡張子を表示させる (Mac)

Macでは、ファイルの拡張子はふだんは表示されない設定になっている。 これを変更するには、以下のようにする:

  1. Finderをクリックし、メニューから 環境設定... を選ぶ。
  2. 詳細 タブをクリックし、 すべてのファイル名拡張子を表示 にチェックを入れる。

よく見かけるファイル形式

ファイル形式拡張子
テキストファイル.txt
HTMLファイル.html または .htm
JPEG画像ファイル.jpeg または .jpg
PNG画像ファイル.png
音声ファイル.mp3 など
動画ファイル.mp4, .mov など
圧縮ファイル.zip
実行可能ファイル(アプリ).app, .exe

2.4. 「メタデータ」とは?

実際のファイルには、そのファイルの内容だけでなく、 以下のような情報も付随している:

このような情報、つまり 情報に関する情報 のことを メタデータ (metadata) という。 ちなみに、ファイルの名前や拡張子といった情報も、 ファイルの内容本体ではなく、「ファイルに関する情報」なので、 メタデータの一種である。
演習1-4. ファイル形式を調べる
  1. インターネットから、 テキスト形式のファイルと、 画像形式のファイルをそれぞれ 1つずつダウンロードせよ。
  2. ダウンロードしたファイルの拡張子を確認せよ。
  3. 各ファイルのアイコンを右クリックし、
    • Windows の場合 … プロパティ... を実行
    • Mac の場合 … 情報を見る を実行
    して、そのファイルの大きさと更新日時を調べよ。
  4. 以下のフォルダを探索し、 その中にあるJPEG画像ファイル (拡張子 .jpg) を発見せよ。 また、そのパス名を答えよ。
    • Window の場合 … C: ドライブの中の「Windows」フォルダ
    • Mac の場合 … Macintosh HD の中の「ライブラリ」フォルダ

3. パソコンの基礎: コマンド プロンプト (ターミナル) を使う

コマンド プロンプト (Mac では ターミナル) とは、 文字入力を使ってパソコンを制御するためのアプリである。 本授業では、コマンド プロンプトを使ってほとんどの演習をおこなう。

3.1. コマンド プロンプト (ターミナル) を起動する

Windowsの場合

Macの場合

3.2. コマンド プロンプト (ターミナル) の使い方・超基本

  1. コマンドを入力して Enter を押す。
  2. コマンドには、実行するアプリのパス名を入力する。
  3. そのアプリが実行され、結果が表示される。
  4. → 1. に戻る。

文字入力するときの注意

演習1-5. コマンドを入力する

コマンド プロンプト (ターミナル) では、 アプリのパス名をコマンドとして入力すると、そのアプリが実行される。

これ以外にもいろいろなコマンドがあるが、すべて覚える必要はない。

演習1-6. lsコマンド・dirコマンド

以下のコマンドを入力し、結果を確認せよ。

3.3. カレント・フォルダという考え方

演習1-7. カレントフォルダの変更

以下のコマンドを順に実行し、何が起きたのか観察せよ:

現在の「注目しているフォルダ」のことを 「カレント・フォルダ」あるいは 「カレント・ディレクトリ」と呼ぶ。 (もともとフォルダはディレクトリと呼ばれていた。 用語としては、ディレクトリのほうが古い。)

Windowsの場合

Macの場合

演習1-8. コマンドを使ったフォルダの確認
  1. 自分のデスクトップ (フォルダ) のパス名を確認せよ。
  2. cd コマンドを使って、 カレントフォルダを「デスクトップ (あるいは Desktop)」フォルダに変更せよ。
  3. デスクトップ上に適当なフォルダを新規作成せよ。
  4. pwd または ls コマンドを使って、 いま作成したフォルダが存在することを確認せよ。

4. パソコンの基礎: 画面のスクリーンショットを撮る

自分のパソコンで指示された操作がうまくできない場合、 その画面の スクリーンショット を撮影し、教員または TA に送ること。 スマートフォンのカメラで画面の写真を撮ったりしないこと (見にくいしダサいため)。

Windows の場合

Mac の場合

アプリが起動したら撮影する範囲を指定し、 結果を PNG形式の画像ファイルとして保存する。 あとはこれをメールに添付しても送ってもよいし、 Discord チャットに投稿してもよい。 (本日の小課題1 では、これを提出してもらう)

5. Python プログラムの基礎

5.1. Python をインストールする

https://www.python.org/ に アクセスし、Python 3.8.x または 3.9.x をダウンロードする。(最後の x の部分は何でもよい)

インストールするには、以下の方法に従う:

5.2. 最初の Python プログラムを書く

  1. コマンド プロンプト (ターミナル) を起動する。
  2. デスクトップ上にフォルダをひとつ作成し、 そこに hello.py というテキスト形式のファイルを新規作成する。 ここでは Windows であれば「メモ帳 (notepad)」、 Mac であれば「IDLE」を使う。 このようなアプリを以後テキストエディタ (あるいは単にエディタ) と呼ぶ。

    以下のように入力する。 (注意: 大文字・小文字の区別は正確に!)

  3. 以下のプログラムを入力する。
    hello.py
    print("Hello, World!")
    
  4. 完成したプログラム hello.py を実行する。

以下、この hello.py をいろいろなファイルに 変えることで演習・課題をおこなう。

5.3. 変数を使う

  1. 「ターミナル」を起動する。
  2. 先ほど作成したフォルダに cd する。
  3. テキストエディタを使って greetings.py というテキストファイルを作成する。
    1文字も間違えないように!
    greetings.py
    print("What is your name?")
    x = input("name:")
    print(f"Good morning {x}!")
    
  4. Python で greetings.py を実行する。
    $ python greetings.py
    What is your name?
    name:euske
    Good morning euske!
    
演習1-9.

5.4. 文とは?

プログラム中の各行を、それぞれ (statement) とよぶ。 各文は、書かれたとおりの順序で実行される。

文1print("What is your name?")
文2x = input("name:")
文3print(f"Good morning {x}!")
演習1-10.
演習1-11.

ふたたび、コンピュータサイエンスとは何か?

コンピュータサイエンスとは、 「手順 (プロセス)」をあつかう学問である。

プログラムにおいて、実行順序はきわめて重要である。 ある意味、カレーの作り方もプログラムである。(実行順序が重要)

5.5. 関数・変数・代入とは?

各文のなかの print(...)input(...) のような部分を 関数 (function) とよぶ。

また、x のような部分を変数 (variable) とよび、 x = input("name:") という文全体を 代入文 (assignment) という。

変数は、いくつでも定義することができる。

greetings2.py
print("What is your name?")
x = input("name1:")
y = x
print(f"Good morning {x} and {y}!")
演習1-12.

変数の上書き

さらに、一度変数に代入された値は、別の代入文で上書きすることができる。

greetings3.py
x = input("name1:")
y = input("name2:")
x = y
print(f"Good morning {x} and {y}!")
演習1-13.

変数の入れ替え

代入文をある順序で書くと、 2つの変数の内容を入れ替えることができる。

swap.py
x = "john"
y = "mary"
??? ??? ???
print(f"x={x}, y={y}")
演習1-14.

5.6. 条件分岐とは?

(この部分は時間がなかったため、来週やることにします)

変数の値によって、プログラムに異なる動きをさせることができる。 このような機能を 条件分岐 (conditional branch) という。

conditional.py
print("What is your name?")
x = input("name:")
if x == "euske":
    print("You are foolish!")
else:
    print("You are normal.")

このプログラムを実行すると、以下のように動く。

$ python conditional.py
What is your name?
name=euske
You are foolish!

$ python conditional.py
What is your name?
name=john
You are normal.

Python における if文は、 変数の値によって 2種類の異なる動作をさせることができる。

if 変数名 == :
    等しい場合の動作
else:
    等しくない場合の動作

ifの内部では、 必ずインデント (indentation、字下げ) が必要である。 たとえば上の例を以下のようにすると動作しない:

エラーになる例:
print("What is your name?")
x = input("name:")
if x == "euske":
print("You are foolish!")
else:
print("You are normal.")

メモ帳を使っている場合は、インデントには半角スペース4個を使う。 IDLE では、if文を書くと自動的に インデントが行われる。または Tab キーを押しても 半角スペース4個が挿入される。

if文の使用例

Pythonでインデントする際の注意

実際にはインデントは (一貫しているかぎり) 何マス空けてもよいが、通常は 半角スペース4個 (    ) を使う慣例である。 ここに、半角スペース以外の文字を使うと動かない。 たとえば以下の例は正しく見えるが、実際にはエラーとなる:

動かない例:
print("What is your name?")
x = input("name:")
if x == "euske":
  print("You are foolish!")
else:
  print("You are normal.")
演習 1-15.

5. 本日のまとめ・小課題

小課題 1. パソコンの基礎 (10月8日締切)
小課題 2. 変数の内容の入れ替え (10月8日締切)

Yusuke Shinyama