「Pythonの学習は分からないことばかり。ググれと言われましても…」
Pythonを独学していると、調べることが作法として求められます。
質問サイトで投稿するにも、「まず調べろよ。」といわれることもしばしば。
ただ、学習しはじめの初心者は、調べた内容の1割くらいしか理解できず、頭をかかえることも多いのではないでしょうか。
過去の自分もそうだったので分かるのですが、サイトをたらい回しにされる気分はなんとも切ないものです。
なので、今回は過去の経験から、初心者がつまずきそうな基礎的な用語を10個ほど用語集としてまとめました。
「偉そうに語るおまえは誰やねん。」と思われるので、私のことも少し紹介させてください。
たいらーのプロフィール
- 文系四大出身。ソフトウェア開発の経験はなしですが、IT業界に身を置いています。
- 開発者やユーザーとのパイプ役など、業務にプログラミングスキルを活かす。
- Pythonは独学で習得。スクレイピングや作業の自動化などに勤しんでいます。
専門用語はたくさんありますが、初心者の方は、まずこの10個を頭に叩き込みましょう。
ググったときの精度と理解度がぐっと上がります。
1.変数
Pythonに限らず、プログラム理解するうえで避けて通れないのが変数です。
プログラムにおける変数とは、データを読み書きする場所のことをいいます。
一般的に変数は、値や文字列を格納しておく箱に例えられます。プログラムを実行する過程で、データの収納や取り出すために使用します。
Pythonにおける変数も同様で、値を保管するための名前のついた箱と認識してください。
また、他のプログラミング言語のように「これは変数だよ。」と宣言をする必要は基本的になく、変数に値が代入された時点で定義されます。(変数を宣言することは可能です。)
例えば以下のように100を代入し、変数を呼び出すと実行結果として100が返ってきます。
atai = 100 atai #実行結果 100
プログラムは組んでいくと複雑になりがちなので、どのような種類のデータが、どこに格納されているか判別できるようにラベリングします。そのため、管理がしやすいという特徴もあります。
Pythonでは、変数の命名にいくつか決まりがあるので、覚えておきましょう。
変数の命名のルール
- 先頭に数字は使用できない。
- 大文字と小文字は区別される。
- 英数字と_が使用できる。
2.データ型
データ型とは、値を分類したものです。
型やデータタイプと表現されることがありますが、みな同じ意味です。
データ型ごとに、値の性質や範囲、扱い方などが決まっています。
分類はさまざまで、プログラミング言語によって定義が異なるものの、だいたいは共通の扱われ方をします。
Pythonの代表的なデータ型は以下のとおりです。
データ型 | 説明 |
int | 整数 |
float | 浮動小数点 |
str | 文字列 |
bool | 真偽値(True/False) |
変数の説明でもしましたが、Pythonは変数に値が代入された時点で、変数が定義されます。
よって、変数のデータ型は代入した値のデータ型に従うことになります。
例えば、変数Xに整数の10を代入した場合、変数Xのデータ型は「int型」になります。
もしこの状態で変数Xに“abc”といった文字列を代入するとたいがいはエラーで弾かれます。
これは、変数Xが「int型」であるのに対し、“abc”は「str型」なのでデータ型が一致しないために起こります。
変数のデータ型が分からなくなったら、「type(変数名)」で確認することができます。
3.引数と返り値(戻り値)
ある処理に入力する値が引数、出力される値が返り値(戻り値)といいます。
“ある処理”とは、関数であったりモジュールだったりします。
関数?モジュール?っといった話は後述します。
ここでは、
- 関数に渡す値が引数
- 関数から出てくる値が戻り値
と理解してください。
4.関数
関数とは、値を渡すと、特定の処理をし、何かしらの値を返すもののことをいいます。
日本語ではだいぶ抽象的なので、Pythonに標準的に組み込まれている関数を使って説明します。
例として、前述のtype()関数で説明します。
type()関数は、括弧に値や変数を渡すと、その値や変数のデータ型を返す関数です。
実際に変数xに整数の10を代入し、変数xをtype()関数に渡すと以下のようになります。
x = 10 print(type(x)) #実行結果 <class 'int'>
関数について、なんとなくお分かりいただけたでしょうか。
type()関数の他に、print()関数やinput()関数など、Pythonには標準的に組み込まれている関数が多くあります。
もう一つ重要な点として、Pythonでは標準的に組み込まれている関数の他に、独自に関数を自作できることが挙げられます。
関数を自作する方法を、例をもとに説明します。
自作する場合はdef文を使用します。
引数は複数設定できます。
構文とサンプルプログラムは次のとおりです。
サンプルプログラムでは、kingaku()関数にzeinukiという引数と引数が渡された時の処理を定義しています。
def 関数名(引数名):
処理
return 戻り値
def kingaku(zeinuki): zeikomi =zeinuki * 1.1 return print(zeikomi) kingaku(1000) #実行結果 1100.0
5.オブジェクト
オブジェクトとは、プログラムの手続きを抽象化する概念のことをいいます。
この時点で理解に苦しみますが、少し解像度を上げて話すと、処理や操作する対象をモノ(オブジェクト)として扱います。
Pythonにおいて、オブジェクトは「データを抽象的に表したもの」と定義されているので、上記の考え方で問題ありません。
なので、変数や関数はすべてオブジェクトの位置づけになります。
それでも抽象的なので、例を挙げて説明します。
例えば車を作るとします。
車を構成しているものを考えると、エンジンやブレーキ、さらにエンジンを作るための部品などが挙げられます。
この時、車は、全体として機能するまとまりであるシステムです。
そして、車を構成しているエンジンやブレーキがオブジェクトにあたります。
オブジェクトと共にオブジェクト指向という言葉を目にすることがあると思いますが、オブジェクト指向とは、複雑なシステムをつくるにあたり、システムの一員をモノ(オブジェクト)として抽象化、分解し、全体を設計する考え方のことです。
このように考えることで、モノとモノの関係性や処理などの情報共有がしやすくなります。
そうすることで、結果的にプログラミングの効率や再利用性が高くなるというメリットがあります。
6.Import文
Import文とは、モジュールやパッケージ、ライブラリを自作のプログラムに組み込むための作法です。
モジュール/パッケージ/ライブラリについては、後述します。
例えば、ライブラリのRequestsを読み出す場合は、以下のように記述します。
import requests
7.リストと辞書
リストとは、複数の値を順番に並べた値です。
角括弧“[]”で括って記述します。
角括弧のなかの値を要素といい、カンマ区切りで記述します。
特定の要素を取り出したい場合は、インデックスを使用します。
一方で辞書とは、値の集合のことをいいます。
基本的には、リストと同様に複数の値を格納して扱うことができますが、辞書はインデックスにいろいろなデータ型を持つことができます。
辞書では、インデックスのことをキーと呼び、キーに紐づく値のかたまりをキー・バリュー・ペアと呼びます。
辞書は、波括弧“{}”で括って記述します。
特定のキー・バリュー・ペアを取り出すときは、キーを指定します。
また、辞書はリストと違い、順序関係がありません。
そのためインデックスを指定してデータを取り出すことはできません。
それぞれ、データの格納と取り出し方の例を以下に記述します。
zoo = ['dog', 'cat', 'cow', 'pig'] print(zoo[2]) print(type(zoo)) taro = {'age':'18', 'height':'175', 'weight':'68', 'gender':'man'} print(taro['age']) print(type(taro)) #実行結果 cow <class 'list'> 18 <class 'dict'>
8.タプル
タプルとは、リストなどと同様に複数の値を格納して扱うデータ型です。
ただし、リストや辞書と異なり、要素の追加/削除/変更ができません。
なので、データを固定して使いたい、データを編集されたくない場合に使用します。
括弧“()”で括って記述し、取り出したいときはインデックスを使用します。
zoo = ('dog', 'cat', 'cow', 'pig') print(zoo[3]) print(type(zoo)) #実行結果 pig <class 'tuple'>
9.コメント
自分が書いたプログラムにメモや説明を残したいときに使用します。
コメントの書き方は、メモや説明文の先頭にひとつだけ半角の#を付けます。#を付けた部分から行末までは、コメントと認識されます。
プログラムは、書かれた内容が正しければ、こちらの意図した結果を示しますが、プログラムに間違いがあると、エラーが発生したり、意図しない結果が示されます。
このとき、プログラムの間違いを検証するために、実行したくないソースコード上に#をつけることで、処理の対象から外すこともできます。 (このことをコメントアウトといいます。)
このように間違いの原因特定にも、コメントは有用です。
10.ライブラリ/パッケージ/モジュール
モジュール、パッケージ、ライブラリは、3つまとめて頭に入れたほうが理解しやすいので、順に説明します。
モジュール
3つのなかでは最小単位です。よく部品などに例えられます。
人間で例えると、指とか鼻とかの規模感です。
モジュールは、関数が集まったものをイメージすると分かりやすいです。
拡張子「.py」はPythonのモジュールであり、Import文で呼び出して使うことができます。
パッケージ
パッケージとは、モジュールが集まったものです。
人間で例えると、腕や顔、胃、心臓などの規模感です。
「持つ」とか「投げる」など、ひとつのパッケージで多くの仕事をしてくれるので、モジュールよりも大きな規模感のイメージです。
Pythonで__init__.pyとするとパッケージ化できます。
パッケージもImport文で呼び出して使うことができます。
ライブラリ
ライブラリとは、人間で例えると、人物です。
ひとつのことに特化した専門家。専門的な仕事ができるイメージです。
標準ライブラリとは、Pythonにもともと用意されているライブラリです。
なので、Import文を使わずに使えます。
一方で、外部ライブラリはインストールが必要です。
インストール後は、Import文で呼び出さないと使えません。
Pythonのセールスポイントのひとつが、この外部ライブラリです。
多種多様、高機能なものがそろっているので、いろいろなことができるのが魅力です。
この強力な外部ライブラリを持ち、学習しやすいところがPythonの人気ともいえます。
まとめ
Pythonの学習で絶対といっていいほど目にする10個の用語について、解説しました。
このあたりは英語などの語学学習と同じで、語彙が増えればサイトや専門書の理解度もアップすると思います。
もし、分からないことが多くて、心が折れそうになっているなら、今が踏ん張り時です。
Pythonをどのように学び進めればよいか、お悩みの方は『Pythonの独学ロードマップ【独学方法の経験談有り】』をご覧ください。
私個人がPythonを独学で身につけたロードマップについて解説しています。
ご清聴ありがとうございました。