ysk_son’s diary

勉強の記録

Pythonスタートブックに沿って勉強してみる - 第1章 プログラムを作ろう!

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

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

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

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

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

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章は完了。