A02 [授業内]

A02_1 (Anaconda Prompt)

ねらい: コマンドを用いた操作を確認する.

Anaconda Promptを開き,以下の操作を順次行え.

  1. 各自の本課題のディレクトリ(フォルダ)に移動せよ(コマンド cd を用いる).
  2. カレントディレクトリの内容を表示せよ(コマンド dir を用いる).
  3. 第1回目の実習で作成した課題A01用のディレクトリに移動せよ.もし課題A01用のディレクトリを作成せずに前回実習を実施していた場合は,OS標準の機能(Windowsならエクスプローラー,macOSならFinder)を用いて,ディレクトリを作成し,前回課題で作成したファイルをその中に移動せよ.
  4. カレントディレクトリの内容を表示せよ.
  5. 前回課題A01_2のために作成したスクリプトを実行せよ.ただし,コマンドラインにスクリプトのファイル名を入力する際には,先頭の1文字のみをキーボードから入力した後,キーボードのTabキーを押すことで該当するファイル名の候補が表示される補完機能を利用せよ.
  6. コンソール画面(現在使用しているAnaconda Prompt)の中身を消去せよ(コマンド cls を用いる).
  7. 先程実行したスクリプトを再度実行せよ.ただし,再度コマンドを1文字ずつ入力するのではなく,カーソルキー上下で過去のコマンドを呼び出せるヒストリ機能を用いよ.
  8. ディレクトリを1階層上に戻るコマンドを用いて,各自の本課題のディレクトリに移動せよ.1階層上のディレクトリは .. で指定できる.
  9. カレントディレクトリの内容を表示せよ.

全処理を終えた後のコンソール画面(ステップ7以降の結果のみが表示されているはずである)のスクリーンショットを a02_1.png として保存し,提出せよ.


A02-2 (インタラクティブシェル)

ねらい: データには型があることを知る.

以下の手順をインタラクティブシェルで実行せよ.

教科書 pp.45-49 を参考に,以下の命令を順次実行した場合の,変数a,b,c,dの型を予想せよ.

a = 1
b = 1.0
c = '1'
d = '1.0'

Pythonでは,関数 type() により,変数やデータの型を知ることができる.以下の命令を順次実行し,予想が正しかったかどうかを確認せよ.

type(a)
type(b)
type(c)
type(d)

続いて,以下の演算を実行した場合の,結果とその型を予想せよ.

a + b
b + c
c + d

実際に実行し,予想が正しかったかどうかを確認せよ.

実行結果について,関数 type() により,結果の型を確認せよ. ただし,演算が正常に終了するもののみを実行せよ.

type(a + b)
type(b + c)
type(c + d)

実行結果のスクリーンショットを a02_2.png として保存し,提出せよ. 実行結果がウィンドウ内におさまらない場合は,ウィンドウの縦幅を適宜広げよ.


A02_3 (インタラクティブシェル)

ねらい: 変数を用いた計算をインタラクティブシェルで行う.

教科書 pp.45-46 を参考に,1個108円のリンゴを4個,1個88円のオレンジを3個,購入した際の代金を計算せよ.教科書の例とは数値が異なっているので注意すること.

以下の手順をインタラクティブシェルで実行し,実行結果のスクリーンショットは a02_3.pngとして保存せよ.

  1. 変数 apple に 108 を代入する.
  2. 変数 orange に 88 を代入する
  3. 変数 n_apples にリンゴの購入個数である 4 を代入する.
  4. 変数 n_oranges にオレンジの購入個数である 3 を代入する.
  5. 以下の式を記述して,合計金額を変数 price に代入する.

    price = apple * n_apples + orange * n_oranges
    
  6. 変数 price の値を表示する.

注意点: ステップ5では,変数のみで式を構成することが非常に重要である.たとえ同じ結果が得られるとしても,この式には具体的な数値(108や88や4や3)を記述することはしない.


A02_4 (スクリプト)

ねらい: インタラクティブシェルとスクリプトの実行の違いを実感する.

課題A02_3の処理内容を,a02_4.py という名前のスクリプトファイルに記述し,Anaconda Prompt から以下のコマンドで実行せよ.実行結果のスクリーンショットはa02_4.pngとして保存せよ.

> python a02_4.py

注意点: インタラクティブシェルでは変数名のみを入力するとその値が表示されたが,スクリプトでは表示されない(何も起こらない).変数の内容を表示するためには,関数 print() を使う必要がある.教科書 p.57 を参照せよ.


※以下では,スクリーンショットを撮ることや,ソースコードあるいはスクリーンショットのファイル名については繰り返し記述しないが,これまでの課題と同様に行うこと.


A02_5 (スクリプト)

ねらい: print() の使い方に習熟する.

課題A02_4を元にして,出力を以下のように変更せよ.???の箇所には実際には適切な数値が入る.

print() の引数に出力したい数値を文字列として直接記入してはいけない.変数の値を表示させるようにすること.関数 print() の使い方については,教科書 p.57 を参照せよ.

リンゴ 108 円 × 4 個 = ??? 円
オレンジ 88 円 x 3 個 = ??? 円
合計 ??? 円

A02_6 (スクリプト)

ねらい: 変数の値を変えるだけで,様々な場合に対応できる有用性を実感する.

課題A02_5を元にして,変数 n_apples および n_oranges の値のみを変更して, リンゴを40個,オレンジを50個購入したときの合計金額を計算し, 課題A02_5と同様に表示せよ.

注意点: 計算部分,表示部分のソースコードに変更の必要はないはずである.変更が必要な場合は,前の課題のソースコードが適切ではないので,前に遡って検討すること.


A02_7 (スクリプト)

ねらい: 関数を使う.関数の引数と返値について知る.

自己紹介文とその文字数を表示せよ.自己紹介文の長さは90文字以上100文字以下とする.文字数は関数 len() を用いて数えよ.

  1. 自己紹介文を作成し,変数 intro に代入する.
  2. 変数 intro の文字数を関数 len() を用いて数え,結果を変数 intro_len に代入する.
  3. 自己紹介文を画面に表示し,その後ろに「(??字)」と表示する.??の部分には変数 intro_len の値を表示すること.

注意点: 自己紹介文を作成する際に,文字数を自分で数えるのではなく,まずは適当に記述してプログラムを実行し,適正範囲内に入っていない場合は修正するようにして,題意を満たすようにすること.


A02_8 (インタラクティブシェル)

ねらい: 型に属している関数であるメソッドを使う.

カンマで区切られた文字列として与えられたデータの個数を数えたい.

以下の手順をインタラクティブシェルで実行せよ.

  1. 変数 cities に,以下の文字列を代入する.

    cities = 'Osaka,Kobe,Kyoto,Nara,Otsu,Wakayama'
    
  2. 変数 cities の内容を , (カンマ)で分割し,結果を変数 cities_list に代入する.教科書 pp. 59-60 を参照して文字列型のメソッド split() を使用する.

  3. 変数 cities_list に対して関数 len() を適用する,すなわち,関数 len() の引数に cities_list を与えることで,文字列 cities に記載されている都市の数を求めて,画面に表示する.