初心者のためのpython入門

自分がつまづいたところやつまづきやすいところを中心に書いていきます。また、役に立つライブラリの紹介などをしていきます。

データ型についてのお話し。

データ型

今日はデータの方について書きます。 プログラムで扱うことのできるデータの種類のことをデータ型や型と呼びます。 Pythonでは、型とクラスは同一のものです。 クラスについてはおいおい説明します。 Pythonは動的に型付けされるので、自分で型を指定する必要がありません。 代表的な型としては、整数、小数、真偽値、文字、文字列などがあります。

変数の型を調べる方法は、type(変数名)もしくは変数名.__class__です。
実際に例を挙げておきます。

>>> a = 5
>>> type(a)
<class 'int'>
>>> b = 1.2
>>> b.__class__
<class 'float'>
>>> c = a + b
>>> type(c)
<class 'float'>
>>> x = 'Hello World'
>>> type(x)
<class 'str'>
>>> type(True)
<class 'bool'>

また、型の変換も行うことができる。 int()float()str()を用いることによってそれぞれ、int型、float型、str型に変更することができる。 int()float()は数字ではない文字列などの数字に変換できないものに利用すると例外がおきます。 実際に使用例を挙げておきます。上述の例で使った変数を利用します。

>>> d = int(a + b)
>>> type(d)
<class 'int'>
>>> y = '123.456'
>>> type(y)
<class 'str'>
>>> float(y)
123.456
>>> type(float(y))
<class 'float'>
>>> type(str(d))
<class 'str'>
>>> int('str')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: 'str'

変数を定義し、使ってみよう。

変数を使ってみよう!

オブジェクト指向のオブジェクトって?

今回は変数の定義の仕方と使用法について説明します。 Pythonの変数について本当に理解するためにはオブジェクト指向の知識が多少必要です。
まずは、オブジェクト指向のオブジェクトとは何かについて説明します。今回は難しいことは考えずに直感的な理解をしていきましょう。
Pythonでは、すべて(整数、文字列、関数など)がオブジェクトとして実装されています。オブジェクトには整数、文字列などのデータ型があり、型によりオブジェクトの性質が決まります。
オブジェクトとはデータを入れるためのそれぞれに適した形の箱だと考えるとイメージから理解しやすいです。整数のオブジェクトなら整数値を、文字列のオブジェクトなら文字列を扱うことができます。 これは、箱に~型専用のシールが貼られていると考えれば理解しやすいでしょう。
型はオブジェクトに入っているデータの値を変更できるか(ミュータブル)、変更できないか (イミュータブル)の性質も決めます。イメージは、ミュータブルは何度も開けることのできる箱であり、中身を取り出して入れ替えることができ、イミュータブルは1度しか開けることのできない箱であり、中身を取り出して変更することはできない感じです。
また、ミュータブルであろうと型自体(箱の形自体)を変更することはできません。

変数の定義と使用

プログラミング言語では、変数が定義できるようになっております。変数とは、コンピューターのメモリの中にある値を指す名前です。プログラム中の好きなところで定義することができます。変数に値を代入したい場合は、=を使います。以下に例を示します。

>>> x = 10
>>> print(x)
10
>>> x
10

上記の例では、xという名前の変数に整数値の10を代入してから2通りの方法で変数の中身を表示させています。 ここで、重要な概念は変数はただの名前だということです。値を代入したとしても、値自体はコピーされていません。 変数とは、ただ単にデータの入っているオブジェクト(箱)に名前をつける(貼り付ける)だけです。名前は値自体ではなく、値の参照を表しています。参照についてはいずれ説明します。簡単に言うと、値の入っているメモリの番地を記憶すると言うことです。

変数を宣言するとき、変数に名前をつける必要があります。変数の名前として用いることのできる文字や数字の並びのことを識別子と呼びます。条件を満たす限り、どのような名前をつけるかはプログラマの自由ですが、後から見てもわかりやすい名前や他者が読んでも意味がわかりやすいものをつけるように心がけるといいです。また、同じプログラム中では、同じ名前を重複して使わないようにしましょう。名前として使えるのは以下の通りです。

  • 英字[ a-zA-Z ]
  • 数字[ 0-9 ]
  • アンダースコア[ _ ]

しかし、数字は名前の先頭として使えません。 Pythonは先頭が_で始まるものを特別な変数として処理するので、特別な理由がない限り避けたほうがいいです。 以下に簡単な例を紹介するので参考にしてみてください。

# 有効な変数名
・python
・python_
・python_1
・_python

# 無効な変数名
・1python
・1_python

また、プログラミング言語には予約語というものが存在し、それらは変数名として使うことができません。 これらは、プログラム中で条件分岐などをするときに用いられたりします。

予約語
and as assert break class
continue def del elif else
except finally for from global
if import in is lambda
nonlocal not or pass raise
return try while with yield
False None True

最後に変数を用いた簡単な計算例を挙げておきます。

>>> a = 10
>>> b = 2
>>> a * b
20
>>> square = a * a
>>> print(square)
100
>>> a = b
>>> print(a)
2

あとがき

お疲れ様でした。今回は、変数について説明しました。次回はデータ型について説明します。

Python対話型インタープリタを利用してみよう。

まえがき

今回は、Pythonの対話型インタープリタの使い方について書きます。

対話型インタープリタの起動

前回、helloworld.pyファイルを作り、その中に1行のコードを書きました。
しかし、一行のために毎回ファイルを作るのはめんどうです。 そこで、Pythonの対話型インタープリタを利用します。利用の仕方は簡単です。Macならターミナルを開いてそこでpython3と打ち込むだけです。 Macのターミナルにはデフォルトではpython2が導入されています。そのため、自分で新しく導入したpython3を起動するにはpython3と打ち込む必要があります。
サンプル画像を貼り付けておきます。参考にしてください。

f:id:tiginkgo:20171108144239p:plain

上記のようにメッセージ(個人差あります!)が表示された後にプロンプト(>>>)が出現します。 また上記のメッセージでPython 3.~.~になっているかを確認してください。Python 2.~.~となっている場合はpython2を利用していることになります。

対話型インタープリタの使用

それでは対話型インタープリタを使ってみましょう。
まずは計算させてみましょう。

>>> 1 + 2
3
>>> 3 - 6
-3
>>> 2 * 3
6
>>> 7 / 2
3.5
>>> 7 // 2
>>> 7 % 2
3
>>> 2 ** 3
8

一通り計算させると上記のようになります。演算子の意味は以下の表にまとめてあります。 pythonの計算規則は数学と同じなので()などを使うことによりより複雑な式を計算することも可能です。 好きな式を計算させて動作を確認してみてください。

演算子 意味
+ 加算
- 減算
* 乗算
/ 浮動小数点数の除算
// 整数の除算(小数点以下は切り捨て)
% 剰余
** 指数

また、計算だけでなく文字列を表示させることもできます。

>>> print("Hello World!")
Hello World!
>>> "Hello World!"
'Hello World!'
>>> "Hello" + " " + "World!"
'Hello World!'

対話型インタープリタ内では上記の2つからわかるようにprint()を使わなくても文字列や計算結果をを表示することができます。 もちろん、print()を使っても大丈夫です。

対話型インタープリタについて

対話型インタープリタについて簡単に説明しましょう。
対話型インタープリタは、Pythonがファイルに記述されたプログラムに対して動作するのとほぼ同じように動作します。
つまり、ファイルで記述したことをインタープリタで記述して、実行することもできるということです。
大きく違うところはただの数値や文字列などを入力したときにインタープリタはその結果を表示することができる点です。ファイルでは、結果を表示にするにはprint()を使いますが、インタープリタではprint() を用いずに表示をすることができるのです。

あとがき

次回は変数について説明します。

Welcome to Python3

ようこそPythonの世界へ

まずは記念すべき第一回目ということでpythonの特徴について書きます。
私が考えるpythonの特徴は以下のようなものになります。

  • 学びやすく、読みやすい言語体系

  • オブジェクト指向プログラミング

  • 数多くのライブラリが使用できる(特にデータ処理)

  • 優れた汎用高水準言語

  • 生産性が高い

  • 最近話題の機械学習などでデータを扱いやすい(特に画像や文字列)

  • 使用している人が多い

上記のような特徴を持つpythonを学んでみたくはありませんか。
このブログでは、初めてプログラミング言語に触れる方や触れたことはあるけどオブジェクト指向がわからないという人が、pythonの基本文法からオブジェクト指向、最後には自分でプログラムを組める状態になるように、スッキリ理解でき楽しく勉強できるように書いていきます。
一緒にサンプルコードをプログラミングしながら一緒に学んで行きましょう。そしてpythonをマスターしてpythonistaになりましょう。

ここまで読んでいただいて恐縮なのですがPythonを学ぶべきではないというか、その目的なら違う言語を学んだ方がいいというお方についても少し書かせていただきます。Pythonを避けるべき理由は以下のものだと思います。

上記のような方はそれぞれにより適した言語というものがあるのでそちらを試して見てください。 Pythonでもできないことはないですが...。

Hello World!

今回は導入なので、みなさんに簡単なサンプルプログラムをお見せします。 以下のプログラムをhelloworld.pyというファイルを作って、その中に書いて見てください。 python3の導入の仕方は、OSにより微妙な差があります。自分のOSに適した方法を検索していただければすぐにわかると思います。

# helloworld.py
print("Hello World!")
# 実行結果 (python helloworld.py)
Hello World!

python helloworld.py で実行すると画面に"Hello World"と表示されると思います。 それでは、自らプログラムを書き換えて様々なことを表示させて見ましょう。

# hellopython.py
print("Hello Python!")
実行結果 
Hello Python!

もしプログラムにエラーがあるとエラーが報告されます。

# helloworld.py
print("Hello World!)

今回はSyntaxErrorが返ってくると思います。 どこが間違っているのでしょうか。

皆さんはもうお気づきですね。 最後の"が抜けていますね。 このミスはよくあるミスなので気をつけてください。

あとがき

お疲れ様でした。今回はこれで終わりです。 次回はpythonの対話型インタプリタの使い方と簡単な計算練習をします。