本授業を楽しく受けるためには、
キーボードを使った文字入力は、 これからの学生生活・社会人生活において 絶対に必要なスキルである。 ここでいう「タイピング」とは、ただ単にキーを 打つだけではなく、PC上におけるカーソルの移動や コピー・ペースト機能の活用も含まれる。
以下の文章を (コピー・ペースト等の機能を活用して) 改行・空白まで含めて正確にタイプせよ:
練習欄:
パソコンにおける文字入力では、(マウスを使わずとも) キーボードだけで様々な操作がおこなえるようになっている。 文字を選択したりコピー・ペーストするときに、 マウスとメニューを使って行っていると非常にのろいので、 基本的なキーボードによる操作を覚えるようにしよう。
機能 | Windows | Mac |
---|---|---|
入力位置 (カーソル) の移動 | ← / ↑ / → / ↓ | |
行頭/行末に移動 | 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 |
選択した文字の置き換え | 文字を選択したまま新しい文字を入力する。 |
ファイル形式 | 拡張子 |
---|---|
テキストファイル | .txt |
HTMLファイル | .html または .htm |
JPEG画像ファイル | .jpeg または .jpg |
PNG画像ファイル | .png |
音声ファイル | .mp3 など |
動画ファイル | .mp4 , .mov など |
圧縮ファイル | .zip |
実行可能ファイル(アプリ) | .app , .exe |
実際のファイルには、そのファイルの内容だけでなく、 以下のような情報も付随している:
.jpg
) を発見せよ。
また、そのパス名を答えよ。
Windows
」フォルダ
ライブラリ
」フォルダ
コマンド プロンプト (Mac では ターミナル) とは、 文字入力を使ってパソコンを制御するためのアプリである。 本授業では、コマンド プロンプトを使ってほとんどの演習をおこなう。
コマンド プロンプト (ターミナル) では、 アプリのパス名をコマンドとして入力すると、そのアプリが実行される。
これ以外にもいろいろなコマンドがあるが、すべて覚える必要はない。
以下のコマンドを入力し、結果を確認せよ。
Windows では、dir コマンドを使うと、 指定されたパス名のファイル一覧を表示できる。 短縮表示するには dir /w を使う。
Mac では、ls コマンドを使うと、 指定されたパス名のファイル一覧を表示できる。 詳細表示するには ls -l を使う。
/Applications/Safari.app/Contents/MacOS/...
以下のコマンドを順に実行し、何が起きたのか観察せよ:
現在の「注目しているフォルダ」のことを 「カレント・フォルダ」あるいは 「カレント・ディレクトリ」と呼ぶ。 (もともとフォルダはディレクトリと呼ばれていた。 用語としては、ディレクトリのほうが古い。)
自分のパソコンで指示された操作がうまくできない場合、 その画面の スクリーンショット を撮影し、教員または TA に送ること。 スマートフォンのカメラで画面の写真を撮ったりしないこと (見にくいしダサいため)。
アプリが起動したら撮影する範囲を指定し、 結果を PNG形式の画像ファイルとして保存する。 あとはこれをメールに添付しても送ってもよいし、 Discord チャットに投稿してもよい。 (本日の小課題1 では、これを提出してもらう)
https://www.python.org/ に アクセスし、Python 3.8.x または 3.9.x をダウンロードする。(最後の x の部分は何でもよい)
インストールするには、以下の方法に従う:
hello.py
というテキスト形式のファイルを新規作成する。
ここでは Windows であれば「メモ帳 (notepad)」、
Mac であれば「IDLE」を使う。
このようなアプリを以後テキストエディタ (あるいは単にエディタ) と呼ぶ。
以下のように入力する。 (注意: 大文字・小文字の区別は正確に!)
C:\Users\euske> cd デスクトップ (または Desktop) C:\Users\euske\デスクトップ> mkdir cs1 C:\Users\euske\デスクトップ> cd cs1 C:\Users\euske\デスクトップ\cs1> notepad hello.py
注意: OneDriveが動いているWindowsの場合は、 デスクトップフォルダの位置が異なるため、以下のように入力する:
C:\Users\euske> cd OneDrive\デスクトップ (または OneDrive\Desktop) C:\Users\euske\OneDrive\デスクトップ> mkdir cs1 C:\Users\euske\OneDrive\デスクトップ> cd cs1 C:\Users\euske\OneDrive\デスクトップ\cs1> notepad hello.py
euske@shinyama-mbpro ~ % cd Desktop euske@shinyama-mbpro Desktop % mkdir cs1 euske@shinyama-mbpro cs1 % cd cs1 euske@shinyama-mbpro cs1 % idle3 hello.py
print("Hello, World!")
hello.py
を実行する。
C:\Users\euske\Desktop\cs1> python hello.py Hello, World!
euske@shinyama-mbpro cs1 % python3 hello.py Hello, World!
以下、この hello.py
をいろいろなファイルに
変えることで演習・課題をおこなう。
cd
する。
greetings.py
というテキストファイルを作成する。print("What is your name?") x = input("name:") print(f"Good morning {x}!")
greetings.py
を実行する。
$ python greetings.py What is your name? name:euske Good morning euske!
プログラム中の各行を、それぞれ 文 (statement) とよぶ。 各文は、書かれたとおりの順序で実行される。
文1 | print("What is your name?") |
文2 | x = input("name:") |
文3 | print(f"Good morning {x}!") |
「Good morning 名前 !」
が
10回表示されるようにせよ。
コンピュータサイエンスとは、 「手順 (プロセス)」をあつかう学問である。
プログラムにおいて、実行順序はきわめて重要である。 ある意味、カレーの作り方もプログラムである。(実行順序が重要)
各文のなかの print(...)
、input(...)
のような部分を
関数 (function) とよぶ。
また、x
のような部分を変数 (variable) とよび、
x = input("name:")
という文全体を
代入文 (assignment) という。
変数は、いくつでも定義することができる。
greetings2.pyprint("What is your name?") x = input("name1:") y = x print(f"Good morning {x} and {y}!")
y = x
で input()
関数を使い、
実際に 2人目の名前を尋くようにせよ。
さらに、一度変数に代入された値は、別の代入文で上書きすることができる。
greetings3.pyx = input("name1:") y = input("name2:") x = y print(f"Good morning {x} and {y}!")
代入文をある順序で書くと、 2つの変数の内容を入れ替えることができる。
swap.pyx = "john" y = "mary"??? ??? ???print(f"x={x}, y={y}")
???
部分に代入文をいくつか書き、
変数 x
と y
の値を入れ替えるようにせよ。x
と y
以外に
もうひとつの変数が必要。)
$ python swap.py x=mary, y=john
(この部分は時間がなかったため、来週やることにします)
変数の値によって、プログラムに異なる動きをさせることができる。 このような機能を 条件分岐 (conditional branch) という。
conditional.pyprint("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 x == "foo": print("x is foo.") else: print("x is not foo.")
if x == y: print("x is y.") else: print("x is not y.")
if x == "euske": print("You are awesome.") print("And handsome, too.") else: print("You are not awesome.") print("Or handsome, either.")
else
節は省略可能である。
こうすると、等しくない場合は何も実行されない:
if day == "sunday": print("There is no class.")
if
文の中に
さらにif
文を入れることもできる。
この場合は、2重に字下げする:
if a == "2": if b == "3": print("Correct!") else: print("Incorrect!") else: print("Incorrect!")
実際にはインデントは (一貫しているかぎり)
何マス空けてもよいが、通常は 半角スペース4個
(
) を使う慣例である。
ここに、半角スペース以外の文字を使うと動かない。
たとえば以下の例は正しく見えるが、実際にはエラーとなる:
動かない例:print("What is your name?") x = input("name:") if x == "euske": print("You are foolish!") else: print("You are normal.")
kadai1
" フォルダを作成する。
その中にさらに 2つのフォルダ "text
" と "image
" を作成する。
text
フォルダの中に
テキスト形式のファイルをひとつ入れ、
image
フォルダの中に
さきほど撮影した自分の PC の スクリーンショット
(PNG形式の画像ファイル) をひとつ入れる。
画面の内容はなんでもよい。
最後に kadai1
フォルダ全体をZip形式として圧縮する。
swap.py
を
T2SCHOLA から提出せよ。
swap.pyx = "john" y = "mary"??? y = x ???print(f"x={x}, y={y}")