Pythonスタートブックを読んでみる – 第2章 プログラムの材料と道具

諸事情によりPythonを触る。
やさしい内容でわかりやすいと評判のPythonスタートブックに沿って学ぶ。
# 私のPCスペック:Windows 7 Professional / 2.30GHz Intel Core i5 / 8GB) ←前エントリではMacだったがWindowsに変更
# 前回のエントリはこちら。

第2章 プログラムの材料と道具

  • 第2章 プログラムの材料と道具
    • 2-1. この章で学ぶこと
    • 2-2. 材料の種類とデータ型
    • 2-3. 道具としての関数

2-1. この章で学ぶこと

ここは前回に習えで目を通すのみ。
第2章ではデータと型、関数、メソッドについて学習すると書いてある。

2-2. 材料の種類とデータ型

ここではPythonにおけるデータ型(本では組み込みデータ型と記載されているがここではシンプルにデータ型とする)の種類とその書き方について触れる。
Pythonでは書き方によってデータ型を定義するので、この項目は大切と思われる。

個人的に特に以下2点は覚える必要があると感じる。
・小数で計算結果を返してほしい時は計算式も少数で記載する必要がある
・文字列とリストの違い

整数
数字をそのまま書く
例: 1, 10, 0, -1

小数
小数点をつけて数字を書く
例: 1.0, 0.000001, -3.15

文字列
引用符(「 ‘ 」(シングルクォーテーション)または「 ” 」(ダブルクォーテーション))で文字を囲む。
※「 ‘ 」(シングルクォーテーション)と「 ” 」(ダブルクォーテーション)はどちらを使用してもOK
例: ‘Apple‘, ‘お腹すいた‘, ‘4649‘

真偽
正しいか間違っているかの2つ
例: True, False

リスト
「 , 」(カンマ)区切りに並べたデータを「[]」(角括弧)で囲む
例: [1,2,3,4,5], [‘Happy’,’New’,’Year’,’2018′]

こちらは本にあるデータ型の一覧。
f:id:ysk_son:20180110171722p:plain

 

続いて「材料に名前を付ける」というテーマで変数へ数値を代入する。
色々書いてあるが百聞は一見にしかず。

>>> x=3
>>> x
3

と簡単に変数に数値を代入でき、

>>> x+6
9

さらに簡単に変数を使った計算も可能。
とても簡単。

ただし注意点がいくつかある。

注意点1・アルファベット、数字、アンダースコア(_)しか変数にできない
→Python3からは日本語も変数に使用できるようになった

>>> 日本=100
>>> 日本
100

注意点2・変数名は、アルファベットの大文字と小文字が区別される

>>> abc=5
>>> ABC=7
>>> abc
5
>>> ABC
7
>>>

注意点3・数字を変数名の先頭に使うことはできない

>>> abc123=99
>>> abc123
99
>>> 123abc=99
SyntaxError: invalid syntax
>>>

続いてはPythonを電卓のように使う。
習うより慣れろだが、ここについては見るだけで十分理解できる。

まず整数(int型)

>>> 1
1
>>> 3
3
>>> -100
-100
>>> apple = 100
>>> orange = 10
>>> apple * 3 + orange *2
320
>>> orange = 50
>>> apple * 3 + orange *2
400
>>>

次に小数型(float型)
「12.0」と「12.」が同義である点のみ注意。

>>> 0.5
0.5
>>> -0.5
-0.5
>>> 12.0
12.0
>>> 12.
12.0
>>>

次に文字列(str型)
引用符で囲んで文字列として表現。
引用符で囲めば数字も文字列として扱える。

>>> '-12.0'
'-12.0'
>>> 'orange'
'orange'
>>>

次に真偽型(bool型)
条件が成立するときは「True」、成立しないときは「False」。

>>> 1 > 5
False
>>> 1 > 0.1
True
>>>

次にリスト型

>>> ['a','b','c']
['a', 'b', 'c']
>>> abc = ['a','b','c']
>>> abc
['a', 'b', 'c']

リスト型では格納されている一意のデータを取り出せる。
リストの最初に格納されているデータを[0]番目として指定できる。

>>> abc[0]
'a'
>>> abc[1]
'b'

また、ここでは演算についても触れられているが、演算については前回のエントリにて触れたのでここでは割愛する。

2-3. 道具としての関数

様々なプログラミングに関する道具(=関数)について触れる。

長さを測る

>>> len('python')
6

この場合における「len(‘python’)」は引数、「6」は戻り値と言われる。

>>> len([1,2,3])
3

この場合における「len([1,2,3])」は引数、「3」は戻り値と言われる。

その他にも
「データを画面に出力する関数 print」
「整数のリストを作る関数 range」
などの説明があるが、特に注意点は無いので割愛する。

 

第2章はここまで。

Pythonスタートブックを読んでみる – 第1章 プログラムを作ろう!

諸事情によりPythonを触る。
やさしい内容でわかりやすいと評判のPythonスタートブックに沿って学ぶ。
(私のPCスペック: MacBook Air / OS X EI Capitan / 1.6GHz Intel Core i5 / 4GB)

第1章 プログラムを作ろう!

  • 第1章 プログラムを作ろう!
    • 1-1. この章で学ぶこと, 1-2. プログラミング言語Python, 1-3. Pythonのインストール
    • 1-4. コンピュータに指示を出す, 1-5. インタラクティブシェルではじめるPython
    • 1-6. はじめてのプログラムを書く

1-1. この章で学ぶこと, 1-2. プログラミング言語Python, 1-3. Pythonのインストール

この辺りは本の導入部分として色々と文章が書いてあるので目を通す。

・なぜPythonなのか
→プログラミング言語はあくまで適材適所であるが、Pythonは比較的簡単に習得ができる
拡張機能が豊富であり単なる初心者向け言語ではない
GoogleやNASAでの採用実績もある言語である

・Pythonのインストール方法

1-4. コンピュータに指示を出す, 1-5. インタラクティブシェルではじめるPython

ターミナルを起動して ls, cd, mkdirについての説明がある。
本の指示に従って私も「pyworks」ディレクトリを作成した。

$ mkdir pyworks

今後はPython関連の作業は全てこちらのディレクトリで行う。

 

続いてPythonインタラクティブシェルを起動する。
ターミナルで「python」と打つと通常のシェルから「Pythonインタラクティブシェル」に切り替わる。
正常に処理がされた場合は行先頭の文字が「>>>」に変わる。

$ python
Python 2.7.13 (v2.7.13:a06454b1afa1, Dec 17 2016, 12:39:47)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>

Pythonインタラクティブシェルを終了するには「quit()」。

>>> quit()
$

続いてインタラクティブシェルでは様々な演算が可能とある。

+  足し算
-  引き算
*  かけ算
/  割り算
**  累乗
%  余剰(割り算の余りがいくつか)

実際にやってみた。

>>> 2+4
6
>>> 2-4
-2
>>> 2*4
8
>>> 2/4
0>>> 2.0/4
0.5
>>> 2**4
16
>>> 8%3
2

2/4だと答えは0だと返され、
2.0/4とすると答えは0.5と返された。
つまり式が整数だと答えも整数で返ってくる。
少数での答えを期待する場合は少数で式を書く必要がある。
この小数点の扱いは覚えておいた方が良さそう。

 

次に文字列。

>>> abc
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'abc' is not defined
>>> 'abc'
'abc'

文字列を扱うときはシングルクォーテーション(‘)かダブルクォーテーション(“)文字列を囲まないと上記のようにエラーが出る。
シングルクォーテーション(‘) or ダブルクォーテーション(“)はどちらでもOKらしい。
本ブログでは以降はシングルクォーテーション(‘)を使っていく。

>>> 'あいうえお'
'\xe3\x81\x82\xe3\x81\x84\xe3\x81\x86\xe3\x81\x88\xe3\x81\x8a'
>>> Print('あいうえお')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'Print' is not defined
>>> print('あいうえお')
あいうえお
>>>

日本語を表示させたい場合はシングルクォーテーション(‘)だけでは不十分で、「print」コマンドを使う必要がある。
また、複数のデータをリストとして持つことも可能とある。
このリストについては4章で深掘りするらしい。

>>> [1,2,3,4]
[1, 2, 3, 4]

次にランダムに数字を返すコマンドを書く。
ここで突然モジュールという言葉が出てきた。

Pythonには、プログラミングで多くの人が共通して必要とする機能が、あらかじめ組み込まれています。たとえば、日付の計算や、データの圧縮や解答、インターネット上のホームページからデータを取得する方法など、たくさんの機能が備わっているのです。これらの機能はバラバラになっていると使いにくいので、機能ごとにモジュールという単位でまとまっています。

要するに「Pythonでは色々なモジュールを用意してあるから使いたいものを読み込んで使え」ということ。
早速使ってみる。

>>> import random
>>> random.choice([1,2,3,4,5])
4
>>> random.choice([1,2,3,4,5])
4
>>> random.choice([1,2,3,4,5])
5
>>> random.choice([1,2,3,4,5])
2
>>> random.choice([1,2,3,4,5])
1
>>>

「import random」でrandomモジュールを読み込んで、random.choiceを実行。
1から5の中の数字をランダムで返す。
実施に繰り返すと返ってくる数字がランダムであることがわかる。

ここで「random.choice」とあるが、これは
『randomモジュールの中の「choice」という命令を使う』という意味らしい。
これについては特に追記がないので、そういうものとして記憶。

1-6. はじめてのプログラムを書く

最後にプラグラムを書く。
.py拡張子のPyhtonプログラムを作ってpyworksディレクトリに配置してシェルから実行させる。
いきなりそれっぽい。笑

まず、そもそも、テキストエディタが必要。
ここでは本に従ってTextWranglerというものをインストールして使う。

TextWrangler

TextWrangler

  • Bare Bones Software, Inc.
  • 開発ツール
  • 無料

UIは日本語対応していないけど見た感じシンプルな印象。

 

TextWranglerをインストールしたら
1・Pythoneモードを選択
2・コードを書く
3・pyworksに保存
をそれぞれ実施していく。

Pythoneモードの選択は以下スクショの下部にあるようにPythonをプルダウンで選択する。
新規作成時にはNoneが表示されている。

f:id:ysk_son:20171229060620p:plain

コードはこちら。

import random
data = ['goo','choki','pa']
data_choice = random.choice(data)
print(data_choice)

書き終えたらSave as..で冒頭作成したpyworksディレクトリを選択。
そいつをシェルから実行させて以下の挙動をすれば成功。

$ cd pyworks
$ python janken.py
pa
$ python janken.py
pa
$ python janken.py
pa
$ python janken.py
choki

# もしインタラクティブシェルにいる場合はシェルへ切り替える必要がある(quit())
# $ cd pyworksでpython janken.pyがあるディレクトリへ移動する必要がある

とりあえずこれで第1章は完了。