書籍概要

プログラミングの教科書

かんたん Python

著者
発売日
更新日

概要

Pythonの文法を基礎から学べる初学者向けプログラミング学習書です。丁寧な解説とわかりやすいイラストで,はじめてプログラミングを学習する人も安心して読み進められます。この1冊があれば,Pythonの一通りの機能をすべて身につけることができます。学習用途だけでなく,機能や文法を調べたいときに参照するリファレンスとしても活用可能です。 章末には練習問題があるので,学習した内容を確認することもできます。

こんな方におすすめ

  • どの言語を学ぶべきかという基礎の基礎からプログラミングを学びたい方
  • Pythonを学びたいプログラミング未経験の方

サンプル

目次

1章 Python をはじめよう

  • 01 プログラミング言語とは
  • 02 Python の特徴
  • 03 Python のインストール
  • 04 プログラムの実行
  • この章 のまとめ
  • 《章末練習問題》

2章 プログラミングの基本

  • 01 基本のデータ
  • 02 変数
  • 03 演算
  • 04 文の書き方
  • この章 のまとめ
  • 《章末練習問題》

3章 データ構造

  • 01 リスト(list)
  • 02 タプル(tuple)とレンジ(range)
  • 03 セット(set)
  • 04 辞書(dict)
  • この章 のまとめ
  • 《章末練習問題》

4章 制御構文

  • 01 if 文
  • 02 for 文
  • 03 while 文
  • 04 リスト内包表記
  • この章 のまとめ
  • 《章末練習問題》

5章 関数

  • 01 関数の利用
  • 02 関数の作成
  • 03 ラムダ式
  • この章 のまとめ
  • 《章末練習問題》

6章 クラス

  • 01 オブジェクト指向
  • 02 クラスの作成
  • 03 メンバのはたらき
  • 04 継承
  • この章 のまとめ
  • 《章末練習問題》

7章 エラーと例外処理

  • 01 エラーメッセージ
  • 02 例外を処理する
  • 03 例外を送る
  • この章 のまとめ
  • 《章末練習問題》

8章 ファイル操作

  • 01 ファイルへの読み込み
  • 02 ファイルへの書き出し
  • 03 ファイルオブジェクトを利用する
  • この章 のまとめ
  • 《章末練習問題》

9章 モジュール

  • 01 外部モジュールを利用する
  • 02 モジュールの作成
  • 03 コマンドラインからの利用
  • この章 のまとめ
  • 《章末練習問題》

10章 標準ライブラリの活用

  • 01 標準ライブラリとは
  • 02 算術計算 - math, random, statistics
  • 03 日付 - datetime
  • 04 CSV ファイル - csv
  • 05 正規表現 - re
  • この章 のまとめ
  • 《章末練習問題》

11章 外部パッケージの利用

  • 01 外部パッケージのインストール
  • 02 Web 情報の取得 - Requests
  • 03 グラフ作成 - matplotlib
  • 04 画像編集 - Pillow
  • この章 のまとめ
  • 《章末練習問題》

12章 応用的な文法

  • 01 非同期構文
  • 02 イテレータ・ジェネレータ
  • 03 Python の慣習-PEP8
  • この章 のまとめ
  • 《章末練習問題》

サポート

ダウンロード

リスト番号ごとにまとめたサンプルファイルです。適宜展開(解凍)してご利用ください。

(2020年11月27日更新)

ダウンロード
サンプルファイル

コードに誤りがあったため,正しいファイルに更新しました。お手数ですが,2020年11月27日より前にダウンロードされた方は,再度ダウンロードし直してください。

正誤表

本書の以下の部分に誤りがありました。ここに訂正するとともに,ご迷惑をおかけしたことを深くお詫び申し上げます。

(2019年2月8日最終更新)

P.311 下から3行目の解説

これが、インスタンス変数です。
これが、インスタンス変数として利用できるようになります。

P.403 3行目からの解説

openで取得されるファイルオブジェクトは、ASCIIコード(英数字と一部の記号)しか扱えません。
openで取得されるファイルオブジェクトは,そのままだと文字コードを正しく読み取れないことがあります。例えば,Windowsで

P.403 codecsを紹介する箇所

(略)どうすれば正しく読み取れるのでしょうか。「codecs」を利用します。
(略)どうすれば正しく読み取れるのでしょうか。文字コードを指定すれば利用できます。ここでは「codecs」を利用して試します。

P.404 codecsとファイルオブジェクトに関する解説文

下記の一文は誤りです。

ただし、codecsのopenでは、マルチバイトに対応したファイルオブジェクトが返されます。
(この文章はないものが正しいです。)

P.404 図8-6のキャプションと実際の図

openでは半角英数字のみ対応したファイルオブジェクトが返されるがcodecs.openではマルチバイト対応のファイルオブジェクトが返される。
文字コードを指定しない場合はファイルの読み込みに失敗する。

正

P.405 ポイント

日本語などのテキストは、codecs.openでファイルを開く。
日本語などのテキストは、文字コードを指定する。

(以下2018年9月3日更新)

P.114 ポイント

真偽値意外にも使えるが
真偽値以外にも使えるが

(以下2018年8月28日更新)

P.130 練習問題2-2の候補の1つ

123 _ 45
123 + 45

(以下2018年5月15日更新)

P.409 8-02のリスト8-8とリスト8-8の抜粋部分


with open('sample.txt', 'w') as f:
    while True:
        msg = input('input text:')
        if msg == '':
            break
        f.write(msg + '\n')
    print('save all messages!')


with open('sample.txt', 'w') as f:
    n = 1
    while True:
        msg = input('input text:')
        if msg == '':
            break
        f.write(str(n) + ': ' + msg + '\n')
        n += 1
    print('save all messages!')

実行自体はできますが,出力結果が書籍と異なっていました。


(以下2018年4月6日更新)

P.551 練習問題11-3の1行目

from PIL import Image
from PIL import Image, ImageOps

(以下2018年4月3日更新)

P.433 9-01の「モジュールをimportする」の「・バージョン情報」の見出し

バージョン情報(sys_version_info)
バージョン情報(sys.version_info)

P.451 9-03のリスト9-7の見出し

__name__処理の追加(calcData.pyに追記)
__name__処理の追加(calcdata.pyに追記)

P.453 9-03の「sys.argvでパラメータ利用」の「・読み込むファイル名を指定する」内本文

calcdata.pyに追記した処理(リスト9-6)...
calcdata.pyに追記した処理(リスト9-7)...

P.499 10-05のリスト10-17


import re

data = '''
太郎 taro@yamada.com
花子 hanako@flower.jp
一郎 ichiro@baseball.fr
祥子 sachico@happy.org

'''

relist =re.sub(
        r'([a-zA-Z0-9.-_]+)@([a-zA-Z0-9.]+)(.*$)',
        r'(***@\2jp)', data)

print(relist)


import re

data = '''
太郎 taro@yamada.com
花子 hanako@flower.jp
一郎 ichiro@baseball.fr
祥子 sachico@happy.org

'''

relist =re.sub(
        r'([a-zA-Z0-9.-_]+)@([a-zA-Z0-9.]+)(com|jp|fr|org)',
        r'(***@\2jp)', data)

print(relist)

 

(以下2018年3月30日更新)

P.241 4-04の「リスト内包表記の例」の「・基本は変数とfor文」の実行例の4行目


[y for y in {Alpha: 'a' , beta: 'b'}]


[y for y in {'alpha': 'a' , 'beta': 'b'}]

P.270 下から3行目5-02の「戻り値の利用」の説明文

...してしておくことで
...指定しておくことで

P.281 下から5行目5-02の「変数のスコープ」の説明文

for、whilteなどの内部で作成した変数は、...
for、whileなどの内部で作成した変数は、...

P.311 下から3行目 6-02の「変数」の「・インスタンス変数を使う」の説明文

MyObjeクラスの中に、「message」...
Memoクラスの中に、「message」...

P.327 6-03のコラム「+演算子で加算する」の説明文

クラスではでも...
クラスでも...

P.342 下から7行目6-04の「オーバーライド」の「・メソッドは上書きできる」内の解説 

Peronにあるメソッドと同じ...
Personにあるメソッドと同じ...

P.368 7-02の「tryによる例外処理」の「・try-exceptについて」内の解説

例外は受け止めれれず
例外は受け止めれず
 

(以下2018年3月26日更新)

3-01の図3-11

insert(1, 100)
insert(1, 1000)

最上段の図中の表記が間違っていました。

3-02の「タプルの乗算」の実行例

実行結果の末尾にtpという文字が含まれていますが実際は表示されません。

4-03のリスト4-15とその実行結果

data ={'国語':98,'数学':82,'理科':67,'社会':59,'英語':65}
total = 0
for k in data:
    if k in {'国語', '数学', '英語'}:
        print(k + ":" + str(data[k]))
    else:
        continue
    total += data[k]
else:
    print("=======データは以上です=======")
ave = total // len(data)
msg = "合計:" + str(total) + " 平均:" + str(ave)
print(msg)

data ={'国語':98,'数学':82,'理科':67,'社会':59,'英語':65}
total = 0
for k in data:
    if k in {'国語', '数学', '英語'}:
        print(k + ":" + str(data[k]))
    else:
        continue
    total += data[k]
else:
    print("=======データは以上です=======")
ave = total // 3 # 3教科で計算
msg = "合計:" + str(total) + " 平均:" + str(ave)
print(msg)


平均の算出が誤っていました。平均は正しくは81です。


(以下2018年3月8日更新)

3-01 リスト(list)のinsertメソッド

200の場所(インデクス=2)に1000が挿入されるため、200はインデクス3に、300はインデクス4にずれていきます。
200の場所(インデクス=1)に1000が挿入されるため、200はインデクス2に、300はインデクス3にずれていきます。

4-02 for文のリスト4-11の4行目


for i in range(1,10,1):


for i in range(1,10,3):


(以下2018年2月19日更新)

4-02 for文(221p)のリスト4-10


for i in range(num):
     print(i)


for i in range(10):
     print(i)

P.444 9-02 リスト9-5

リストの行末尾の「バックスラッシュ」は正しくは「円記号」です。キーボードの円記号キーを押して入力してください。

商品一覧