Pythonの超入門書 世界で一番簡単なPythonプログラミングのe本[最新版]を読んでみた。

Deep learning、AI、機械学習、人工知能などの話題で持ちきりです。車の自動運転や囲碁、将棋、チェスなどですっかり有名になりました。そこで一躍注目を浴びているのがpythonというプログラム言語です。今回は、一度もpythonに触れたことのない管理人のpython事始めです。

初心者向けpythonの書籍を選んでみた

この手のプログラミングといえばR言語だとおもっていたら、今はpythonが主流になってきたようです。pythonって、なんか興味津々です。

まずは一番簡単なpython入門書本を探すことからはじめました。管理人でもわかりそうなpythonの入門書を探しに本屋さんにいってきました。

管理人は東京の多摩地区に住んでいますので、このあたりで一番大きな本屋は聖跡桜が丘のくまざわ書店です。普通はアマゾンで調べるのが手っ取り早いのですが、ただの読み物ではなく多少はスクリプトを作ってみたいので、本の中身をゆっくり見ることのできるリアルな本屋さんに行ってきました。

やはりアマゾンと違いリアルな本屋さんには、限られた本しか置いてなく選択肢は限られてしまいます。でも、しっかり手に取って見れるのはリアル店舗ならではです。初心者でもちゃんとついて行ける内容であることを確認しながら見てゆきました。で、選んだのが秀和システムから出ている「世界で一番簡単なPythonプログラミングのe本[最新版]」という本です。1500円で購入してきました。他にも似たような内容の本はありましたが、この本が、コスパも含め相性が合いそうな気がしたので購入してきました。

どうしても書店に行く時間がないときは、amazonが頼りです。その場合はamazonでのコメントを参考にします。ちなみに、この本の場合は、まだコメントがありませんでした。出版が2017年3月なのでまだ購入者が少ないのでしょう。本の目次を下記に掲載したのでご覧ください。目次ばかりのページになってしまいました^^;

実際に読んでみました

名前の通りpython初心者向きです。

何らかのプログラム言語をかじったことがあれば、特に難しいところはないはずです。機械学習からは外れてしまいますが、6章のインターネット関連は面白かったです。APIの扱いやスクレイピングも関単にできてしまいます。実際にサンプルを動かして試してみましたが、ライブラリーの読み込みさえきちんとできれば簡単です。

実は、ライブラリー読み込みでちょと手間取りました。pipは自力でインストする必要があったのですが、そのあたりが本書には詳しく書かれていなかったため時間を取ってしまいました。

7章の「プログラムのGUI化しよう」では、ウィンドウ関連のプログラム基礎が学べます。ウィンドウアプリが関単にできます。

解説はとても親切でイラスト入りで楽しく学習できます。練習問題も学習のチェックにはとても役立ちそうです。私は面倒だったのでやりませんでしたが。

このあたりは、超初心者ではちょっと敷居が高いのかもしれませんが、何事もチャレンジです。

まとめ・感想です

最後になりますが、ある程度プログラミングができる方には、この本は必須ではなさそうです。ネットに十分な情報があるので、それで基本的なことはすべてわかります。プログラム初心者が始めの一歩に読むとよい本だと思いました。しかし、プログラム経験者でも短時間でpythonの基礎を学ぶならこの本があったほうが手っ取り早いと思います。

pythonのインストールも本書に詳しく書かれているので迷わずできました。特にpathの設定などの細かなところもきちんと表示されていてとても親切です。

逆にちょっと迷ったのが、先にも書きましたが、pipコマンドで外部モジュールをインストールする箇所でした。pipってなんだ?って感じです。pipのインストールについては本書に書かれていないので、これは自分で調べなくてはなりませんでした。ググれば出てきますが、ここは初心者向きにしては不親切だと思います。最後になりますが、細かな点は置いといて、今回この本を買って正解だったと感じています。最後まで、読んでいただきありがとうございました。

amazonで確認
↓ ↓ ↓

以下に参考として目次を掲載しておきますので、参考にされてください。

第1章 はじめよう! Pythonプログラミング
Section01 そもそもPythonって何のためのもの?

コンピューターへの命令を作るためのプログラミング言語

コンピューターは電気の信号で動く

コンピューターとプログラムの橋渡しを行うのが「OS」と呼ばれるソフトウェア

人間の言葉に近い命令文と1と0の命令に書き換える「コンパイラー」

そもそもどうしてプログラミング言語っていっぱいあるの?

様々な需要に特化した言語が続々と開発された

Section02 Pythonってこんな言語

プログラミング言語としてのPython

ソフトウェアとしてのPython

書いたそばからそのまま実行する「インタープリター型言語」

インタープリター型言語のイイところ

Section03 Pythonで何が作れるの?

具体的にどんなものが作られているの?

統合開発環境

Webアプリケーション(サーバーサイドのプログラム)

一般的なアプリケーション

ビデオゲーム

Pythonのためのプログラム

Webフレームワーク

科学/数学用のパッケージ/ライブラリ

Section04 Pythonはプログラミングの学習にうってつけ!

Pythonが褒められる2つの理由

「プログラマーの頭」になるための近道

Column インタラクティブシェルをコマンドプロンプトで実する

Section05 PythonをダウンロードしてPCにインストールしよう

WindowsマシンにPythonをインストールする

MacにPythonをインストールする

Section06 Pythonを動かしてみよう

プログラミングのお供、IDLE

IDLEを起動してみる

電卓みたいに使ってみる

・練習問題

・Chapter01のまとめ

第2章 Pythonプログラムの材料
Section01 プログラムでデータを扱う方法を知っておこう(変数)

データに名前を付ける

計算結果はその場限りのもの

計算結果に名前を付ける

リテラルに名前を付ける

データに付けた名前を「変数」と呼ぶ

変数の作り方

変数に使える文字

Column Pythonの予約語

Section02 値を変える(再代入)

変数の値は何度でも書き換えできる

Pythonの再代入のカラクリ

変数のコピー?

どちらかの変数に再代入すると参照先が解除される

Section03 同じデータでも文字と数値は別のもの(データ型)

データの「用途」と「使い方」で分類する

Pythonのデータ型

Section04 数値型(int型とfloat型)

int型が扱える整数の範囲

10進数だけでなく2進数、8進数、16進数も扱える

整数型の値を画面に表示してみる

float型

浮動小数点数型における指数表記

Section05 文字列型(str型)

文字列リテラルの表し方

トリプルクォートで囲むと改行できる

文字列を「ありのままに出力」するためのprint()

Section06 「真」と「偽」の2つを表したり、「存在しない」ことを表す(bool型とNone)

真偽リテラルのためのbool型

空の値はFalseと見なされる

「データそのものが存在しない」は「None」

何もないことを示す特殊なリテラル「None」

Column データではない文字列(コメント)

Section07 変数で計算していろんな答えを出してみよう(算術演算子)

計算を行うための算術演算子

足し算、引き算、掛け算

割り算と割った余り

変数を使って演算してみる

単項プラス演算子(+)、単項マイナス演算子(  )

Section08 値を入れよう(代入演算子)

代入演算子による値の代入

再代入

複合代入演算子を使ってシンプルに書く

Pythonで使える複合代入演算子

多重代入

Section09 「標準体重計算プログラム」を作ろう

あなたの標準体重は?

ソースコードエディターを開く

ソースコードの入力

①のソースコード

②と③の処理

④の処理

⑤の処理

ソースファイルを保存してプログラムを実行してみよう

プログラムを実行してみよう

インタラクティブシェルで実行する

閉じたソースファイルを再び開く

・練習問題

・Chapter02のまとめ

第3章 Pythonの「道具」を使って処理の流れを作ろう
Section01 今日のおやつは何を買う?(比較演算子とif、elif)

プログラムの流れを変えよう(if文)

条件式を作るための「比較演算子」

「=」と「==」の違いに注意

1つ目の「もしも」のコードを作ってみる

「そうでなければ」はelseで表す

300円以上使える場合の処理を分ける

Section02 「もしも」をたくさん並べていろんなパターンを作る

2つ以上の条件を織り交ぜる(if…elif…else)

「今日のおやつ」プログラムをelifを使って改造する

複数の条件を連結するandとor

Section03 同じ処理を繰り返す(for)

指定した回数だけ処理を繰り返す

イテレート可能なオブジェクトを作成するrange()関数

RPGをイメージしたバトルシーンを再現してみよう

Section04 状況によって繰り返す処理の内容を変える

2つの処理を交互に繰り返す

3つの処理をランダムに織り交ぜる

randomモジュールを使って疑似乱数を発生させる

インポートしてモジュールを使えるようにする

4つのパターンをランダムに出力する

Section05 指定した条件が成立するまで繰り返す(while)

条件が成立する間は同じ処理を繰り返す

条件がTrueの間は繰り返す

必殺の呪文で魔物を全滅させる

無限ループ

処理回数をカウントする

whileを強制的に抜けるためのbreak

・練習問題

・Chapter03のまとめ

第4章 Pythonの仕組みを使っていろんなデータを作ろう
Section01 文字列をプログラムで操作しよう(エスケープシーケンスと演算子)

逃げろ!(エスケープシーケンス)

文字列の中に改行やタブを入れてみる

「\」で文字をエスケープすれば改行やタブを入れられる

文字列の連結と繰り返し

Section02 文字列を取り出したり置き換えたり(スライスと置き換え)

文字列から1文字取り出す

指定した範囲の文字列を切り出す

[インデックス:]で指定した位置から末尾までの文字列をスライスする

[:インデックス]で先頭からインデックス-1までの文字列をスライスする

[インデックス:インデックス]で指定した範囲の文字列を取り出す

指定した文字数ごとに文字列を取り出す

Section03 文字列の分割、結合、置換、いろいろやってみる

文字列の長さを調べる(len()関数)

文字列を特定の文字のところで切り分ける(split()メソッド)

セパレーターを指定して文字列を切り分ける

replace()メソッドで文字列の一部を置き換える

指定した書式で文字列を自動作成する(format()メソッド)

複数の{}を置き換える

文字列を埋め込む位置を指定する

小数点以下の桁数を指定する

数値を3桁で区切る

Section04 任意の数のデータを一括管理する(リスト)

「シーケンス」というデータ

リストを作る

空のリストを作る

リストのインデックシング

イテレーション

スライス

リストの更新

リストの要素数を調べる

リストをいろいろな方法で操作する

リストに別のリストの要素を追加する(extend()メソッド)

指定した位置に要素を追加する(insert()メソッド)

特定の要素を削除する(del演算子)

位置がわからない応訴を削除する(remove()メソッド)

要素のインデックスを知る(index()メソッド)

その値がリストにあるか(in演算子)

その値はリストにいくつあるか(count()メソッド)

要素の並べ替え

リストのコピー

リストのリスト

リストの中に要素製造装置を入れる(内包表記)

Section05 「変更不可」のデータを一括管理する(タプル)

タプルは要素の値を変更できない

タプルの作り方と使い方

Section06 キーと値のペアでデータを管理する(辞書、集合)

辞書(dict)型

辞書の作成

要素の参照

要素の追加と変更

要素の削除

イテレーションアクセス

すべてのキーを取得する

辞書の値だけを取得する

辞書の要素をまるごと取得する

辞書に使えるメソッドや関数

2要素のシーケンスを辞書に変換する(dict()関数)

辞書に辞書を追加する(update()メソッド)

辞書の要素をまるごとコピーする(copy()メソッド)

要素の削除(del演算子)

すべての要素を削除する(clear()メソッド)

Section07 複数のシーケンスのイテレート

3つのリストをまとめてイテレートする

3つのリストをイテレートする仕組み

2つのリストの各要素をタプルにまとめたリストを作る

2つのリストから辞書を作る

辞書の内包表記でイテレートする

Section08 要素の重複を許さない集合

まずは集合を作ってみる

集合を使って重複した要素を削除する

union()とintersection()

特定の文字を間に入れて文字列同士を連結する(join()メソッド)

・練習問題

・Chapter04のまとめ

第5章 プログラムの装置を作ろう
Section01 やりたい処理が決まったらコードをまとめておこう(関数の作成)

オリジナルの「関数」を作成する

処理だけを行う関数

呼び出したら処理だけを行う関数を作ってみよう

引数を受け取る関数

パラメーターを持つ関数を定義してみる

戻り値を返す関数

戻り値を返す関数を定義してみる

Section02 オブジェクト製造装置(クラス)

プログラムを作るためのプログラム(クラス)

「クラス」はオブジェクトを作るためのもの

クラスの定義

クラスの中身(メソッド)

オリジナルのクラスを作ってみる

オブジェクトを作成する(クラスのインスタンス化)

オリジナルのクラスをインスタンス化して使ってみよう

オブジェクトの初期化を行う(__init__())

Section03 バトルゲームの応答を返すクラスを作ってみよう(継承)

継承とオーバーライド

バトルゲームを題材にしたオブジェクト指向プログラミングに挑戦!

スーパークラスを定義してサブクラスを作ろう

スーパークラス「Responder」の定義

モンスターにダメージを与えるサブクラス「LuckyResponder」

引き分けのためのサブクラス「DrawResponder」

プレイヤーにダメージを与えるサブクラス「BadResponder」

モジュールの実行部を作っておこう

if__name__==’__main__’:

Section04 バトルゲームの司令塔クラスを作ろう(__init__()メソッド)

Responderの3つのサブクラスをインスタンス化する

オブジェクトの情報を保持するインスタンス変数

オブジェクトを初期化する__init__()メソッド

3つのサブクラスのメソッドをランダムに呼び分けるattack()メソッド

モジュールの実行部を作っておこう

Section05 バトルゲームの実行モジュールを作ろう

プレイヤーからの入力値を取得する関数を用意する

モンスターとのバトルを行う関数を用意する

ソースコードの入力

プログラムを実行する部分を作ろう

さっそくプログラムを起動してみよう

・練習問題

・Chapter05のまとめ

第6章 インターネットにアクセスしてみよう
Section01 外部モジュール「Requests」をインストールする

Pythonライブラリは「PyPI」のサイトで公開されている

pipコマンドで「Requests」をインストールする

外部モジュール「Requests」をダウンロード/インストールする

Section02 「Requests」を利用してネットに接続する

Requestsを利用してWebサイトにアクセスする

HTTPのGETというメソッド

Webサーバーから返されたレスポンスメッセージ

レスポンスメッセージからデータを取り出してみる

Section03 Web APIで役立つデータを入手する

Webサービスを利用するためのWebAPI

「Webサービス」とは

Webサービスを利用するための「Web API」

Section04 ニュースサイトから情報を収集してみよう

RSSというサービス

「スクレイピング」で必要な情報のみをゲット!

スクレイピング専用のBeautifulSoup4モジュール

「Yahoo!ニュース」のヘッドラインを取得してみよう

「Yahoo!ニュース」が配信するRSSからヘッドラインを抜き出す

・練習問題

・Chapter06のまとめ

第7章 プログラムをGUI化しよう
Section01 プログラムの「画面」を作る(tkinterモジュール)

「tkinter」をインポートしてGUIの土台となる画面を表示してみよう

ウィンドウのサイズを指定する

Section02 ウィンドウにボタンを配置する

画面に部品を置いてみる

ボタンを作ってpack()メソッドで配置してみる

ボタンを配置する位置を指定する

ボタンを作ってgrid()メソッドで配置してみる

ボタンを作ってplace()メソッドで好きな位置に配置する

Section03 ボタンがクリックされたときに処理を行う

ボタンがクリックされたときの反応を作る

push()関数を定義してボタンクリックで呼び出してみる

Section04 チェックボタンで選択できるようにしよう

チェックボタンを配置して選択結果を処理してみよう

チェックされたかどうかを通知する

チェックボタンの作成と配置

チェックボタンの状態を通知する関数

Section05 ラジオボタンを使って1つだけ選択できるようにしよう

ラジオボタンで1つだけ選択可にする

どのラジオボタンがオンにされたかを調べる

Section06 メニューを配置する

[ファイル]メニューを作ってウィンドウに配置する

メッセージボックスの表示

[×]([閉じる]ボタン)がクリックされたことを検知する

プログラムの作成

Section07 明日の予定を決めてくれるプログラムを作ろう

まずは予定を決める関数を用意しよう

プログラムの画面を作ろう

グローバル変数を使用するための記述(①のコード)

Canvasウィジェットの作成と配置

グラフィックスを用意してキャンバス上に配置

応答エリアを作成する(④以下のコード)

ボタンの作成(⑤以下のコード)

プログラムを実行してみよう

・練習問題

・Chapter07のまとめ

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする