- トップページ
- プログラミング
- プログラミング入門書
- Pythonではじめるプログラミング データ処理までしっかりマスター
Pythonではじめるプログラミング データ処理までしっかりマスター
2,200円(本体 2,000円+税10%)
- 品種名
- 書籍
- 発売日
- 2019/4/19
- ページ数
- 280
- サイズ
- B5変形判
- 著者
- 小波 秀雄 著
- ISBN
- 9784295006060
高校卒業から大学1年程度を対象として、プログラミングの知識がゼロでも無理なくPythonでプログラミングの学習を始められます。はじめてプログラミングを行うレベルを対象とするため、プログラムとは何か?といったところから説明します。Pythonのインタラクティブモードと簡単なプログラミング事例を示しながら、生徒に解を導かせるとともに、各章の最後に練習問題を提示し、読者が自分で考える機会を設けています。本書を通読することで、プログラミングの初心者がPythonを使って、実用的なデータ処理ができるレベルまで到達することを目標とします。
- 電子版を買う
-
「読者アンケートに答える」「読者プレゼントに応募」の場合もこちらをご利用ください。
書籍の内容に関するお問い合わせはこちら。お答えできるのは本書に記載の内容に関することに限ります。
学校・法人一括購入に関するお問い合わせはこちらへ。
著者紹介
1951年生まれ。東北大学理学研究科博士後期課程中退。東北大学助手,助教授,宮城高専教授,京都女子大学現代社会学部教授を歴任した。専門は物理化学,統計学など。理学博士。
1980年頃予備校の成績処理システムを開発したのを手始めに,科学計算・シミュレーションのプログラミングで食べていくようになる。京都女子大学の情報教育ではRubyを全国に先駆けて導入するとともに関西におけるRubyコミュニティを育てた。2015年に国際的なデータマイニングのコンテストであるCDMC2015にゼミ生とともに参戦し,優勝を勝ち取る。統計計算ソフトウェアのRを常用するが,最近はPythonを使うことも多い。趣味はピアノとチェロの演奏。
目次
まえがき
本書の構成
Python のバージョンについて
Python の実行環境について
第 1 章 Python を始める
1-1 データ分析だったら Python!
1-2 プログラミングのための準備をしよう
1-2-1 プログラミングってどういう作業?
1-2-2 プログラミング環境を作る
1-2-3 エディタについて
1-3 超簡単 Unix コマンド
1-3-1 10 分間 Unix 体験ツアー
1-4 エディタで最初のプログラムを書いてみる
第 2 章 Python 超入門と基礎知識
2-1 Python のインタプリタで計算しよう
2-1-1 ターミナルからインタプリタを立ち上げる
2-1-2 インタプリタを電卓のように使う
2-1-3 算術演算の仕組みを理解する
2-1-4 変数を使うとさらに便利
2-1-5 いろいろな代入のやり方を試してみよう
2-1-6 自己代入を活用しよう
2-2 あいさつプログラムを書こう
2-2-1 見やすいソースを書こう
第 3 章 データを扱う簡単なプログラム
3-1 データ入力の基本を学ぼう
3-1-1 Python の組み込み型データ
3-1-2 キーボードからデータを入力する
3-1-3 コンストラクタでデータの型を変換する
3-1-4 プログラムを改良してみよう
3-1-5 キーワード引数で print の改行を制御する
3-1-6 文字列フォーマットで変数の値を文字列中に埋め込む
3-1-7 変数名と予約語について
3-2 コマンドライン引数を使ったデータ入力
3-3 乱数を使う
3-3-1 random モジュールで乱数発生
3-3-2 乱数の「種」を使って系列を固定する
第 4 章 論理的条件で処理を分岐させる
4-1 if ステートメントによる条件判断
4-1-1 単純な条件判断のプログラム
4-1-2 インデントは Python の命!
4-1-3 else を使った条件分岐
4-1-4 else と elif を使った多重の条件分岐
4-2 論理をプログラムする
4-2-1 論理式とブール値
4-2-2 論理式同士を組み合わせる
4-2-3 論理演算子,比較演算子
4-2-4 倍数かどうかを判定する
4-2-5 複合した条件をネストした分岐で判定するプログラム
4-2-6 複合した条件をブール演算で判定するプログラム
4-2-7 三項演算子について
第 5 章 シーケンスとその他のデータ構造
5-1 並んだデータをシーケンスで扱う
5-1-1 リスト - 最も重要なデータ構造
5-1-2 より高度なスライシング
5-1-3 コマンドライン引数とリストの関係を知る
5-1-4 レンジ - 中が見えない整数のリスト
5-1-5 変更できないシーケンス ー タプルと文字列
5-1-6 テキストシーケンスの独特の振るまい
5-2 シーケンスを操作するメソッド群
5-2-1 ちょっとだけオブジェクト指向の話
5-2-2 シーケンス同士の変換
5-2-3 シーケンス操作の演算とメソッド・関数群
5-2-4 リスト内包表記でリストの要素を加工する
5-2-5 キーワード引数でソートの振るまいを変える
5-3 集合型 ― データ集合を扱う非シーケンスデータ型
5-4 ディクショナリ ― 関連付けを表現するデータ型
5-4-1 ディクショナリを操作する
5-4-2 ディクショナリのキーはハッシャブルでないといけない
第 6 章 ループを使って高速で繰り返す
6-1 for ステートメントで繰り返す
6-1-1 for ステートメントでリストやタプルのデータを処理する
6-1-2 ループの中で条件判断を行う
6-2 while ステートメントで賢く繰り返す
6-2-1 何かが起きたらループを止める
6-2-2 無限ループと break を組み合わせる
6-2-3 ネストしたループで組み合わせを処理する
6-2-4 掛け算九九をプログラムする
6-2-5 ネストしたシーケンス(二重シーケンス)を扱う
6-2-6 ループの範囲が変化していく
第 7 章 テキスト情報の扱いとファイル入出力
7-1 文字情報の基礎知識
7-1-1 ビット,バイト,文字コード
7-1-2 アスキーファイルとテキストファイル
7-2 Python の文字列リテラル
7-2-1 文字列型リテラルを作る
7-2-2 もうひとつの文字列リテラル―ヒアドキュメント
7-2-3 バックスラッシュによる行継続で長い文字列を扱う
7-2-4 文字列リテラルのまとめ
7-3 標準入力,標準出力,標準エラー出力
7-3-1 標準出力とリダイレクション
7-3-2 標準エラー出力へのリダイレクション
7-4 エラーを処理する
7-5 テキストファイルを利用する
7-5-1 ファイル読み込みの 3 つの基本形
7-5-2 Read モードでファイルをオープンする
7-5-3 ファイルを開いた後はどうするか
7-5-4 シーケンスのようにファイルの情報を読み出す
7-5-5 ファイルの情報全部を一気に読み込む
7-5-6 ファイルアクセスを終えたらクローズする
7-5-7 with を使ってクローズまで面倒をみる書き方
7-5-8 ファイルに書き込む
7-6 表計算ソフトのデータを活用する
7-6-1 CSV フォーマットはデータ共有の基本
7-6-2 デリミタで区切られた文字列をリストに分解する
7-6-3 CSV データをタブ区切りに変換する実用プログラム
7-7 機能分割して効率的にファイルデータを処理
7-7-1 プログラムの理想的な形は?
7-7-2 さらに進んだプログラムの構成―自前の関数を使う
7-8 名簿を扱うプログラム
7-8-1 プログラムの仕様
7-8-2 小さなファイルを用意して作業を楽にする
7-8-3 データ読み込み部分を作る
7-8-4 名簿をよみがな順に並べ替える
7-8-5 結果を出力する
7-8-6 ヘッダ行のあるファイルだったらどうするか
7-9 モジュールを活用してスマートな処理に
7-9-1 CSV データを扱うモジュール
7-9-2 モジュールを使って CSV ファイルに書き込む
第 8 章 関数をあやつる
8-1 自前の関数を作る
8-1-1 関数の形と各部の名称
8-1-2 関数名について
8-1-3 戻り値を返す関数,返さない関数がある
8-1-4 戻り値として複数のデータを返す
8-2 関数の活用とデータの共有
8-2-1 関数の引数と仮引数の名前について
8-2-2 変数のスコープについて
8-2-3 関数の外で定義した変数はグローバルに振るまう
8-2-4 無理やりグローバル変数化することもできる
8-2-5 グローバル変数はなるべく使わないほうがよい
8-2-6 組み込み関数と同じ名前の変数は使わないほうがよい
8-3 データ処理のための関数を設計する
8-3-1 リストやタプルのデータを解析する
8-3-2 関数に渡したリストは共有されている
8-3-3 変換されたリストを非破壊的に得るには
第 9 章 基本的なアルゴリズムを実装する
9-1 探索とソート
9-1-1 フラグを活用して逐次探索
9-1-2 バブルソート
9-2 整数の除算を利用したアルゴリズム
9-2-1 素数の判定
9-2-2 エラトステネスのふるい
9-2-3 ユークリッドの互除法
9-3 再帰的なアルゴリズム
9-3-1 階乗を再帰的に計算する
9-3-2 ハノイの塔
第 10 章 Python で数学を
10-1 数学ライブラリを活用する
10-1-1 matplotlib.pyplot を使ってグラフを作る
10-1-2 ライブラリの読み込み方を異なった表現で
10-1-3 関数の式を使ってプロットするには
10-1-4 数学関数のグラフを作っていく
10-1-5 グラフに必要なものを追加していく
10-1-6 複数のグラフを並べて表示する
10-2 データファイルを読み込んで統計用のグラフを作る
10-2-1 NumPy で統計計算とデータの可視化
10-2-2 NumPy の配列
10-3 Python で統計データを扱う
10-3-1 一変量データから統計量を求める
10-3-2 ヒストグラムで分布を可視化する
10-4 二変量データを扱う
10-4-1 二変量データを読み込む
付録 A 関連情報
付録 A.1 参考ウェブサイト
付録 A.2 Atom エディタ超入門
付録 A.3 UNIX の超基礎知識
付録 A.4 ASCII コード表
付録 A.5 主な記号の読み方
付録 A.6 数値リテラルの形
付録 A.7 print 関数の文字列フォーマット
付録 A.8 リスト,シーケンスの仕様
付録 A.9 Math,NumPy の数学関数
付録 B 練習問題の解答と解説
索引
関連書籍
ダウンロード
本製品の読者さまを対象としたダウンロード情報はありません。
お詫びと訂正
誤記のためにご迷惑をおかけし、誠に申し訳ございません。
- 31ページ 10行目
- [誤]
それに3を足すと - [正]
それに4を足すと
- [誤]
- 50ページ 練習問題3-1 問題文
- [誤]
それらの積を - [正]
それらの和を
- [誤]
- 55ページ 本文6行目
- [誤]
乱数が2,9,1,4,3という流れ - [正]
乱数が2,9,1,4,1という流れ
- [誤]
- 67ページ 練習問題4-3
- [誤]
m = int(sys.argv[1])
n = int(sys.argv[2]) - [正]
x = int(sys.argv[1])
y = int(sys.argv[2])
- [誤]
- 79ページ 最下行
- [誤]
長さが15のリストを - [正]
長さが16のリストを
- [誤]
- 80ページ 「5-1-3 コマンドライン引数とリストの関係を知る」項すぐ下のプログラム4行目
- [誤]
4: print(sys.argv)) - [正]
4: print(sys.argv)
- [誤]
- 98ページ 2番目のコマンドライン2行目、4行目
- [誤]
>>> a = {}
>>> type(a) #=> <class 'dict'
>>>> a = set()
>>> type(a) #=> <class 'set'
>>>> len(a) #=> 0 - [正]
>>> a = {}
>>> type(a) #=> <class 'dict'>
>>> a = set()
>>> type(a) #=> <class 'set'>
>>> len(a) #=> 0
- [誤]
- 99ページ 最初のコマンドライン2行目
- [誤]
>>> type(d) #=> <class 'dict' - [正]
>>> type(d) #=> <class 'dict'> -
備考: ">" かっこが閉じられていない
- [誤]
- 105ページ 本文3行目(タイキのセリフ)
- [誤]
結果はまったく同じになりますが, - [正]
最初はカタカナの動物名で、あとは英語になっていることを除けば、結果は同じになりますが,
- [誤]
- 107ページ findmax01.py 2行目、forrange01.py 2行目
- [誤]
data = (34.5,43,1,50.2,19.0,23.1,89.3,76.4,32.7,65.3,54.1,43.3) - [正]
data = (34.5,43.1,50.2,19.0,23.1,89.3,76.4,32.7,65.3,54.1,43.3)
- [誤]
- 108ページ 練習問題6-3 findmax02a.py 4行目
- [誤]
data = len(data) - [正]
ndata = len(data)
- [誤]
- 108ページ enumerate01.py 2行目、findmax02a.py 2行目
- [誤]
data = (34.5,43,1,50.2,19.0,23.1,89.3,76.4,32.7,65.3,54.1,43.3) - [正]
data = (34.5,43.1,50.2,19.0,23.1,89.3,76.4,32.7,65.3,54.1,43.3)
- [誤]
- 115ページ 本文10行目
- [誤]
前にあったrndという変数 - [正]
前にあったrandnumという変数
- [誤]
- 116ページ 1行目、リスト3行目、本文5行目
- [誤]
random.seed(1) - [正]
rnd.seed(1)
- [誤]
- 146ページ csvtotsv.py 5行目 コメント
- [誤]
# st[0]にベースネーム, s[1]に拡張子 - [正]
# st[0]にベースネーム, st[1]に拡張子
- [誤]
- 147ページ 1行目 コマンドライン
- [誤]
> python namelist.csv - [正]
> python csvtotsv.py namelist.csv
- [誤]
- 155ページ 練習問題7-6
- [誤]
Fruite.txtがあります(サポートページからダウンロードできます)。 - [正]
著者のサポートページには、該当するテキストファイルがありません。備考:からコピーしてください。 -
備考:
カリン
チュウゴクナシ(白梨、シナナシ)
ナシ
マルメロ
セイヨウカリン
ジューンベリー Amelanchier
シポーバ Shipova
リンゴ
アメリカンチェリー(英: bing cherry、ブラックチェリー、ダークチェリー)
アンズ(杏、杏子、アプリコット)
ウメ(梅)
サクランボ(桜桃、スイートチェリー)
スミミザクラ
スピノサスモモ
スモモ(李、酸桃)
モモ
アーモンド
イチョウ
クリ
クルミ(胡桃)
ペカン
アケビ(木通)
イチジク(無花果)
カキ
カシス(クロスグリ)
キイチゴ(木苺)
キウイフルーツ(キウイ)
グミ(頽子、胡頽子、茱萸)
クワ
クランベリー(オオミツルコケモモ)
コケモモ(苔桃、岩桃、はまなし、おかまりんご)
ザクロ(柘榴、石榴)
サルナシ(猿梨、シラクチズル、コクワ)
シーバックソーン(サジー、ヒッポファエ、シーベリー)
スグリ(酢塊、グーズベリー)
ナツメ(棗)
ニワウメ(庭梅、こうめ、いくり)
ハスカップ(クロミノウグイスカグラ)
ビルベリー
フサスグリ(房酸塊、レッドカラント)
ブドウ(葡萄)
ブラックベリー
ブルーベリー
ポーポー(ポポー、ポウポウ、ポポウ)
マツブサ
ラズベリー
ユスラウメ
- [誤]
- 165ページ calc_distance5.py 6行目
- [誤]
x2,y3 = 2.5,3.0 - [正]
x2,y2 = 2.5,3.0
- [誤]
- 165ページ calc_distance5.py
- [誤]
関数distanceと同じ変数名distanceが使われている。 - [正]
変数名distanceを変数distに変更
- [誤]
- 167ページ 上から11行目、12行目、下から5行目
- [誤]
・「タイキ」の台詞:
「12行目のprint(x)が実行される
「その後のprint(z)を見ると」
・「エリカ」の台詞:
「6行目ではxに代入がなされているので… zは一見そう見えませんが - [正]
「12行目のprint(z)が実行される」
「その後のprint(x)を見ると
「6行目ではzに代入がなされているので… xは一見そう見えませんが」
- [誤]
- 247ページ 表A-5
- [誤]
%6.3f
全6桁,小数点以下2桁で出力 - [正]
%6.3f
全6桁,小数点以下3桁で出力
- [誤]
- 254ページ 問題4-1 解答
- [誤]
if value != 30: - [正]
if value != 40:
- [誤]
- 255ページ 問題4-5(1)解答
- [誤]
country == "KR" and age < 50 and sex = "M" - [正]
country == "KR" and age < 50 and sex == "M"
- [誤]
- 255ページ 問題4-5 (2) 解答
- [誤]
not (country == "JP" or country = "CN") and sex = "F" and age >= 20 - [正]
not (country == "JP" or country = "CN") and sex == "F" and age >= 20
- [誤]
- 257ページ 問題5-1 解答
- [誤]
省略 - [正]
>>> len(fruits) #=> 5
>>> fruits.append("Grape") … リストの最後にGrapeを追加
>>> fruits #=> ['Apple','Mango','Orange','Lemon','Banana','Grape']
>>> fruits[3] = "Apricot" … リストの4番目の要素を'Apricot'に入れ替え
>>> fruits #=> ['Apple','Mango','Orange','Apricot','Banana','Grape']
>>> fruits[1:4] #=> ['Mango', 'Orange', 'Apricot'] … リスト要素の2番目から4番目を出力
>>> fruits[1:4] = ["Fig","Nuts"] … リスト要素の2番目から4番目を'Fig','Nuts'に入れ替え
>>> fruits #=> ['Apple', 'Fig', 'Nuts', 'Banana', 'Grape']
>>> del(fruits[1:4]) … リスト要素の2番目から4番目('Fig', 'Nuts', 'Banana')を削除
>>> fruits #=> ['Apple', 'Grape']
>>> del(fruits[0]) … リストの最初の要素('Apple')を削除
>>> fruits #=> ['Grape']
>>> del(fruits) … fruitsというリスト自体を削除
>>> fruits #=> NameError: name 'fruits' is not defined
- [誤]
- 258ページ 問題6-1解答 forcalc02.py 6行目
- [誤]
sumxy += x * y - [正]
削除
- [誤]
- 259ページ 練習問題6-4 解答 2行目
- [誤]
data = (34.5,43,1,50.2,19.0,23.1,89.3,76.4,32.7,65.3,54.1,43.3) - [正]
data = (34.5,43.1,50.2,19.0,23.1,89.3,76.4,32.7,65.3,54.1,43.3)
- [誤]
- 259ページ 練習問題6-3 解答 2行目
- [誤]
data = (34.5,43,1,50.2,19.0,23.1,89.3,76.4,32.7,65.3,54.1,43.3) - [正]
data = (34.5,43.1,50.2,19.0,23.1,89.3,76.4,32.7,65.3,54.1,43.3)
- [誤]
お問い合わせ
書籍の内容に関するお問い合わせはこちら。お答えできるのは本書に記載の内容に関することに限ります。