留学生りゅうがくせいのためのプログラミング入門にゅうもん 付録ふろく万象知楽出版 本を探す・購入

練習問題れんしゅうもんだいの答こたえと理由りゆう

Practice Questions: Answers and Notes

本ほんの各章かくしょうの最後さいごにある「答こたえと理由りゆう」と同おなじ内容ないようです。先生用せんせいようの採点さいてんの目安めやすは、ここには載のせません。

第だい1章しょう:プログラムを動うごかす

自己じこチェック

確認問題かくにんもんだい

ワークシート1-1:練習れんしゅうと実行じっこうの記録きろく

考かんがえよう・グループで話はなそう

答こたえは一ひとつではありません。対話画面たいわがめんは一行いちぎょうを試ためすときに使つかえます。ファイルは、コードを保存ほぞんして、あとからもう一度実行いちどじっこうするときに使つかえます。予想よそうと違ちがう表示ひょうじが出でたときは、コードを入力にゅうりょくした場所ばしょ、保存ほぞんしたか、実行じっこうしたか、文字もじや記号きごうを順じゅんに確認かくにんする考かんがえ方かたができます。

ミニ会話かいわ

ラジャンさんは、コードをファイルに保存ほぞんしたものの、まだ実行じっこうしていませんでした。田中先生たなかせんせいは、保存ほぞんしたファイル名めいを指定していして実行じっこうし、表示ひょうじを見みるように伝つたえています。会話かいわの順番じゅんばんに沿そって説明せつめいできていれば合あっています。

第だい2章しょう:値あたいと変数へんすう

自己じこチェック

1節せつ:1. float。2. 文字列もじれつ。3. 5と32です。
2節せつ:1. count。2. 左側ひだりがわの変数名へんすうめい。3. strです。
3節せつ:1. 4。2. 4。3. 比較ひかくです。

ワークシート

2-1:countはintで3から4へ変かわり、labelはstrの"3"のままです。出力しゅつりょくは4 3。
2-2:float、3.0。
2-3:str、表示ひょうじは3です。

確認問題かくにんもんだい

1 答こたえはAです。=は右側みぎがわの値あたいを左側ひだりがわの変数へんすうに結むすび付つけます。Bはprint、Cはfor、Dは==の役割やくわりです。
2 答こたえはBです。"3"と"2"は文字列もじれつなので、つながって32と表示ひょうじされます。Aは数かずとして足たす誤解ごかい、Cは区切くぎりの空白くうはくが入はいる誤解ごかい、Dは文字列もじれつをつなげられないという誤解ごかいです。
3  5 2.5 3です。countは5、priceは小数しょうすう2.5、labelは文字列もじれつです。
4  12です。初期値しょきち10に2を加くわえます。

考かんがえよう・グループで話はなそう

答こたえは一ひとつではありません。型かたの違ちがいや、変数名へんすうめいの役割やくわりを説明せつめいできればよいでしょう。

第だい3章しょう:計算けいさんと文字列もじれつ

自己じこチェック

確認問題かくにんもんだい

ワークシート3-1

考かんがえよう・グループで話はなそう

答こたえは一ひとつに決きまりません。丸まるかっこは先さきに計算けいさんする範囲はんいを示しめします。.1fは表示ひょうじの桁数けたすうを指定していするため、計算値けいさんちと表示ひょうじの形かたちを分わけて説明せつめいできればよいです。

ミニ会話かいわ

画面がめんの0.7が小数しょうすう1桁けたの書式しょしきによる表示ひょうじだと説明せつめいできていれば合あっています。

第だい4章しょう:条件じょうけんで処理しょりを分わける

自己じこチェック

確認問題かくにんもんだい

ワークシート

考かんがえよう・グループで話はなそう

答こたえの例れい:59と60を試ためすと、< 60が60を含ふくまないことを確たしかめられます。条件じょうけんの順番じゅんばんを誤あやまると、60未満みまんもscore < 80に当あてはまって「練習中れんしゅうちゅう」となることがあります。そのため、より小ちいさい範囲はんいを先さきに調しらべます。

ミニ会話かいわ

ラジャンさんは44と60を比くらべ、条件じょうけんに合あうかどうかを確認かくにんします。比較結果ひかくけっか、使つかった基準きじゅん、次つぎに表示ひょうじを確たしかめることを説明せつめいできていれば合あっています。

第だい5章しょう:繰くり返かえして合計ごうけいする

自己じこチェック

1節せつ  1. 3です。2. 3回かいです。3. 次つぎの行ぎょうに空白くうはくを入いれて、繰くり返かえす処理しょりを示しめします。

2節せつ  1. 1、2、3です。2. 含ふくみません。3. 3回かいです。

3節せつ 1. 前まえの値あたいを残のこさず、足たす値あたいだけの合計ごうけいを作つくるためです。2. 1、3、6です。3. 0回かいです。

ワークシート

穴埋あなうめは5です。自力課題じりきかだいは3回目かいめの開始値かいしちが5、計算けいさんは5 + 4、終了値しゅうりょうちは9です。コードの出力しゅつりょくも9です。

確認問題かくにんもんだい

Q1はBです。range(2,5)は2、3、4を作つくります。Q2はCです。0から始はじめて2、3、4を加くわえると、2、5、9と変かわります。Q3(練習れんしゅう5-1)のコードは次つぎのとおりで、出力しゅつりょくは6です。

total = 0
for value in range(1, 4):
    total = total + value
print(total)

Q4では終おわりの値あたいを5にします。コードは次つぎのとおりで、出力しゅつりょくは10です。

total = 0
for value in range(1, 5):
    total = total + value
print(total)

考かんがえよう・グループで話はなそう

答こたえの例れい:total = 0だけをfor文ぶんの中なかに置おくと、各回かくかいの最初さいしょに0へ戻もどります。計算後けいさんごの値あたいは3、4、5です。print(total)はfor文ぶんの外そとにあります。画面がめんに出でるのは最後さいごの5だけです。途中とちゅうの値あたいも表示ひょうじするときは、別べつにprint(total)をfor文ぶんの中なかへ移うつします。初期化しょきかをfor文ぶんの前まえに置おけば、合計ごうけいは12になります。

グループ活動かつどうでは、rangeの値あたいと累積るいせきを分わけて確認かくにんします。リスト側がわも別表べっぴょうに書かきます。値あたいの違ちがいが出力しゅつりょくの違ちがいにつながると説明せつめいできればよいです。

ミニ会話かいわ

rangeの開始値かいしちと終了値しゅうりょうちを質問しつもんし、値あたいを順じゅんに列挙れっきょして、実行結果じっこうけっかで確たしかめる流ながれです。開始値かいしちは含ふくみ、終了値しゅうりょうちは含ふくまないことを説明せつめいできればよいです。

第だい6章しょう:リストと辞書じしょ

自己じこチェック

ワークシート

穴埋あなうめは80です。自力課題じりきかだいはリストが80、辞書じしょが120です。予想よそう・実行結果じっこうけっかは80 120です。リストでは添字そえじ1、辞書じしょではキー「本ほんA」に対応たいおうする値あたいを取得しゅとくします。

確認問題かくにんもんだい

考かんがえよう・グループで話はなそう

答こたえの例れい:順番じゅんばんに取とり出だすならリストが分わかりやすいです。本ほんの名前なまえを見みてページ数かずを探さがすなら辞書じしょが分わかりやすいです。どちらも同おなじ本ほんの値あたいが対応たいおうしていることを示しめし、用途ようとと形かたちを結むすびつけて説明せつめいできれば合あっています。

ミニ会話かいわ

ラジャンさんが添字そえじ1を1冊目さつめと考かんがえ、田中先生たなかせんせいが位置いちは0から始はじまると説明せつめいします。2冊目さつめの値あたいがpages[1]で得えられることを言葉ことばと実行結果じっこうけっかで確たしかめていれば合あっています。

第だい7章しょう:関数かんすうで処理しょりをまとめる

自己じこチェック

1節せつ 1. 関数名かんすうめいです。2. いいえ。定義ていぎだけでは関数かんすうの本体ほんたいは実行じっこうされません。3. インデントです。

2節せつ 1. 仮引数かりひきすうです。2. 4と6です。3. いいえ。returnは値あたいを返かえし、画面がめんへ表示ひょうじするのはprintです。

3節せつ 1. 外側そとがわです。2. returnです。3. いいえ。messageは関数内かんすうないで作つくった名前なまえなので、関数かんすうの外そとから直接参照ちょくせつさんしょうできません。

ワークシート

穴埋あなうめは、仮引数かりひきすうnameに入はいる値あたいが「ミナ」、戻もどり値ちが「ミナさん、こんにちは」です。自力課題じりきかだいは「アリ」「アリさん、こんにちは」です。実行時じっこうじの表示ひょうじはアリさん、こんにちはです。

確認問題かくにんもんだい

Q1はCです。returnは値あたいを呼よび出だし元もとへ返かえします。表示ひょうじを行おこなうprintとは役割やくわりが違ちがいます。Q2はAです。4と6を足たすため、戻もどり値ちは10です。Bは文字もじとしてつないだ場合ばあいの読よみ違ちがい、CとDは一方いっぽうの値あたいだけを答こたえた場合ばあいです。

練習れんしゅう7-1の解答例かいとうれいです。新あたらしいscope_practice.pyとして保存ほぞんして、新あたらしい実行じっこうで動うごかします。

label = "授業"
def make_message():
    message = "学習を始めます"
    return message
print(label, make_message())

出力しゅつりょくは授業 学習を始めますです。labelは関数かんすうの外側そとがわ、messageは関数かんすうの内側うちがわです。実行じっこうして、表ひょうの記録きろくと出力しゅつりょくを照合しょうごうします。

Q3の解答例かいとうれいです。新あたらしいファイルで動うごかし、出力しゅつりょくと表ひょうを照合しょうごうします。

label = "授業"
def make_message():
    message = "開始"
    return message
print(label, make_message())

出力しゅつりょくは授業 開始です。

Q4では別べつの新あたらしいファイルで関数内かんすうないの文字列もじれつを"終了"に変かえ、関数かんすうを2回かい呼よび出だします。出力しゅつりょくは次つぎの2行ぎょうです。

授業 終了
授業 終了

関数外かんすうがい参照さんしょうの確認かくにんは、外側そとがわのmessageがない新あたらしいファイルscope_error.pyで行おこないます。関数定義かんすうていぎとprint(message)だけを保存ほぞんして新あたらしい実行じっこうにすると、NameErrorになります。前まえの例れいを同おなじ対話画面たいわがめんで実行じっこうした後あとでは外側そとがわの名前なまえが残のこる場合ばあいがあるため、この確認かくにんに使つかいません。外そとで値あたいを使つかうには、関数かんすうの戻もどり値ちを外側そとがわの変数へんすうに代入だいにゅうします。

考かんがえよう・グループで話はなそう

考かんがえようでは、returnで値あたいを受うけ取とれば、変数へんすうに代入だいにゅうしたり別べつの関数かんすうへ渡わたしたりできます。printは画面がめんに表示ひょうじします。二ふたつを分わけて説明せつめいできれば合あっています。グループ活動かつどうでは、定義ていぎに書かく名前なまえが仮引数かりひきすう、呼よび出だしに渡わたす値あたいが実引数じつひきすう、呼よび出だし元もとへ返かえる結果けっかが戻もどり値ちです。

ミニ会話かいわ

returnで値あたいを返かえし、呼よび出だし側がわのprintで表示ひょうじすることを区別くべつできていれば合あっています。会話かいわの文ぶんと同おなじ言いい方かたでなくても、二ふたつの役割やくわりを説明せつめいできればよいです。

第だい8章しょう:ファイルから読よみ集計しゅうけいする

自己じこチェック

1節せつ 1. 配布はいふされたファイルの名前なまえと保存場所ほぞんばしょを確たしかめます。2. 文字もじを正ただしく読よみ込こむためです。3. 2要素ようそです。最後さいごの改行かいぎょうだけで、余分よぶんな空からの行ぎょうはできません。

2節せつ  2-1. int()で整数せいすうへ変かえます。2-2. 空欄数くうらんすうを1増ふやし、合計ごうけいには入いれません。

3節せつ  3-1. 3です。3-2. 3件けんの点数てんすうの平均へいきんが80.0点てんであることを示しめします。

ワークシート8-1

穴埋あなうめBの累積るいせきは150です。Cは空欄くうらんなので累積るいせき150、空欄数くうらんすう1です。Dを加くわえた後あとは累積るいせき240、空欄数くうらんすう1です。例れいの出力しゅつりょくは、件数けんすう3件けん・合計ごうけい240点てん・平均へいきん80.0点てん・空欄くうらん1件けんです。

確認問題かくにんもんだい

Q1はDです。これは文字もじコードの指定していで、暗号あんごう・圧縮あっしゅく・並ならべ替かえではありません。Q2はCです。read_text()はファイル内容ないようを文字列もじれつで読よみます。

Q3は次つぎのコードで、出力しゅつりょくは合計は5個ですです。items.csvは準備じゅんび済ずみのファイルを読よみます。

import csv
from pathlib import Path

path = Path("items.csv")
with path.open(encoding="utf-8", newline="") as file:
    rows = list(csv.DictReader(file))
total = 0
for row in rows:
    total += int(row["count"])
print(f"合計は{total}個です")

Q4は空欄くうらんを数値すうちへ変かえる前まえに判定はんていします。出力しゅつりょくは合計は5個です、空欄は1件ですです。Q4用ように、元もとの2行ぎょうを残のこして空欄行くうらんぎょうを加くわえた別べつファイルを用意よういします。

import csv
from pathlib import Path

path = Path("items.csv")
with path.open(encoding="utf-8", newline="") as file:
    rows = list(csv.DictReader(file))
total = 0
missing = 0
for row in rows:
    if row["count"] == "":
        missing += 1
    else:
        total += int(row["count"])
print(f"合計は{total}個です")
print(f"空欄は{missing}件です")

考かんがえよう・グループで話はなそう

答こたえの例れい:CSVの値あたいは文字列もじれつです。Cは未記入みきにゅうなので集計しゅうけいから除のぞき、空欄数くうらんすうへ記録きろくします。

A、B、C、Dの順じゅんに記録きろくします。Cでは累積るいせきは変かわらず、空欄数くうらんすうが1です。分母ぶんぼは3件けんです。

ミニ会話かいわ

列名れつめい・空欄くうらん・出力しゅつりょくを確たしかめる流ながれが伝つたわればよいです。

第だい9章しょう:エラーを手掛てがかりに直なおす

自己じこチェック

1節せつ 1. 実行じっこうしたコードとエラー表示全体ひょうじぜんたいです。2. 問題もんだいの種類しゅるいを調しらべる手掛てがかりです。3. いいえ。行番号ぎょうばんごうは候補こうほなので、前後ぜんごのコードも読よみます。

2節せつ 1. 定義ていぎした名前なまえと、コードで使つかった名前なまえです。2. "3"は文字列もじれつ、3は整数せいすうです。3. 条件じょうけんの行ぎょうと前後ぜんごの構文こうぶんを見みます。

3節せつ 1. この章しょうで扱あつかう0以上いじょうの添字そえじは0と1です。2. どの変更へんこうで直なおったか分わかり、原因げんいんを確たしかめやすくするためです。3. 値あたいの型かたと、演算えんざんの組くみ合あわせです。

4節せつ 1. 最初さいしょにエラーが出でたときと同おなじ入力にゅうりょくです。2. いいえ。目的もくてきの出力しゅつりょくと一致いっちするかを確たしかめます。3. 実行じっこうコード、表示ひょうじ、原因げんいんの予想よそう、修正しゅうせいコード、再実行さいじっこうの出力しゅつりょくです。

ワークシート9-1

穴埋あなうめの原因げんいんは「変数名へんすうめい」の綴つづりです。修正後しゅうせいごの出力しゅつりょくはこんにちはです。自力課題じりきかだいは次つぎのように直なおせます。

print(int("3") + 2)

例外名れいがいめいはTypeError、原因げんいんは文字列もじれつと整数せいすうをそのまま足たそうとしたことです。出力しゅつりょくは5です。

確認問題かくにんもんだい

Q1はDです。文字列もじれつと整数せいすうをこの形かたちの+に渡わたすとTypeErrorになります。Q2はCです。添字そえじ1の値あたいは20です。

Q3の解答例かいとうれい:

message = "こんにちは"
print(message)

出力しゅつりょくはこんにちはです。定義ていぎしたmessageと使用しようしたmesageの綴つづりが違ちがうため、名前なまえが見みつかりませんでした。

Q4の解答例かいとうれい:

score = 70
if score > 60:
    print(score)

出力しゅつりょくは70です。ifの条件じょうけんの後うしろにコロンを置おき、条件じょうけんが真しんのときに実行じっこうする行ぎょうを字下じさげします。

考かんがえよう・グループで話はなそう

numbers=[10,20]で添字そえじ2を使つかうとIndexErrorが出でます。添字そえじを1に直なおすとエラーは消きえ、二番目にばんめの値あたい20が表示ひょうじされます。この二ふたつを確認かくにんし、目的もくてきの値あたいが出でたことを確たしかめます。グループ活動かつどうでは、エラー表示ひょうじ、原因げんいんの予想よそう、修正しゅうせい、同おなじ入力にゅうりょくの出力しゅつりょく、別入力べつにゅうりょくの結果けっかを説明せつめいできればよいです。

ミニ会話かいわ

表示ひょうじを保存ほぞんしてから、最後さいごの行ぎょうの例外名れいがいめいを探さがし、問題もんだいの行ぎょうと値あたいを確たしかめています。添字そえじを直なおした理由りゆうと、同おなじ入力にゅうりょくで再実行さいじっこうすることが伝つたわれば合あっています。

第だい10章しょう:小ちいさなプログラムを作つくる

確認問題かくにんもんだい

Q1はCです。Q2はA(225÷3=75.0)です。

Q3(PY-10-1) コード片へんをwork/ch10/ch10_program.pyにまとめます。期待出力きたいしゅつりょくは件数けんすう3・合計ごうけい300・平均へいきん100.0・空欄くうらん1です。

Q4(PY-10-2) 同おなじコードをheader_onlyから実行じっこうします。期待値きたいちは0件けん・合計ごうけい0・平均計算へいきんけいさん不可ふか・空欄くうらん0です。

ワークシート10-1

実測じっそくを表ひょう10-2の期待値きたいちと比くらべ、入力にゅうりょくファイルが実行前後じっこうぜんごで同おなじであることを確認かくにんします。

自己じこチェック

1節せつ:1-1入力にゅうりょく・処理しょり・出力しゅつりょく。1-2空欄くうらんは0と異ことなる。1-3平均不可へいきんふかと表示ひょうじ。1-4入力にゅうりょくと期待結果きたいけっか。1-5境界入力きょうかいにゅうりょくも確認かくにん。1-6件数けんすう0、空欄くうらん1。

2節せつ:2-1列名れつめい付つき辞書じしょ。2-2空欄くうらんの整数化せいすうかはエラー。2-3各かくフォルダにreading.csv。

3節せつ:3-1件数けんすう・合計ごうけい・平均へいきん・空欄数くうらんすう。3-2None。3-3入力にゅうりょく・列名れつめい・条件じょうけんを調しらべる。

4節せつ:4-1空欄数くうらんすう0対たい1。4-2入力保持にゅうりょくほじ。4-3完成形かんせいけいを確認かくにん。

5節せつ:5-1授業規則じゅぎょうきそく。5-2説明せつめいと別入力べつにゅうりょく。5-3「使用しようなし」。