print()

Hello world!プログラムでも出てきたprint()関数です。 関数とは何かという話は、また下の方で行いますが、とりあえずこれは「( )」の中身を画面に出力するためのものです。後述する変数を指定すると、中の値を出力することができ、またカンマ「,」で区切ることで複数の値を出力することが出来ます。Python 3では、日本語も容易に扱う事が出来ます。

実行結果

コメント

コードに中に残すメモ書きのことを、コメントを言います。コードを読む時に、処理の内容等が適切にメモしてあれば可読性が向上します。Pythonでは、コードの任意の場所で「#」を入力した場合、以降文末までは何を書いてもプログラム的に無視されます。シンタックスハイライト(コード中の意味に応じて文字の色が自動的に変わる機能)のあるエディタを使っている場合、やはりコメントと分かるように色が変わります。

実行結果

複数行に渡るコメントが必要な場合、シングルクォーテーション3つ「”’」、もしくはダブルクォーテーション3つ「“””」で対象とする範囲を囲むことで実現できます。

また、コードの先頭にある「#!」で始まる文はLinux等で動かす時のPythonのパス、「#coding:」で始まる文は文字コードの指定に使う特殊なコメントですが、最初はあまり気にしなくても大丈夫です。本サイトの範囲では書かなくてもプログラムは動きます。

文字列

シングルクォーテーション「」もしくはダブルクォーテーション「」で囲まれた部分は文字列として扱われます。どちらを使っても違いはありません。文字列の中の特定の1文字を取り出したり変更するには、「[ ]」で囲まれたインデックスで指定します。1文字目のインデックスは0であり、インデックスが文字数を超えるとエラーになるます。インデックスの便利な使い方は応用編で説明します。

実行結果

また、複数行の文字を扱いたい場合は、「”’」もしくは「“””」で囲みます。先述の複数行のコメントと同じことをしていますが、実は複数行のコメントはプログラム中で使われない文字列を作ってるだけなんですね。

変数

数値や文字列を格納するところを変数といいます。変数の名前を任意に決め、「=」で値を入れることで変数が作られます。C言語を使ったことがある人は違和感を感じるかもしれませんが、「値を入れずに宣言だけ先に済ませる」というとは出来ず、型(整数型、実数型etc)を明記することもありません。

変数名に使えるのはアルファベット数字アンダーバー(_)で、アルファベットには大文字小文字の区別があります。「for」や「while」といったプログラムで使用されている予約語は使えず、数字で始まるような変数も作れません。

整数は小数点以下の値を持たない数字実数は小数点以下の値も持つ数字です。
1,2,3・・・と数え上げる時などは整数が、重さ(53.4kg)とか、長さ(176.3cm)など、測定値には実数が使われることが多いです。上の例で示したように、指数表記を使うときはeを使います。

リスト、タプル

数値や文字といったデータを1つの入れ物にまとめることが出来ます。例えば、1~5までの5つのデータを扱う時に

とするよりも

とまとめることで、データ操作が容易になります。リストは定義した後に要素の変更が可能であるのに対し、タプルは変更が不可能です。リストだけ使えれば大抵のことが出来ますので、基本的にリストでいいと思いますが、タプルが要求される場合が少なからず有ります。

どちらも、複数の階層を持たせることが可能で、2次元配列、3次元配列といった柔軟な定義が出来ます。特定の要素を選択する場合は、変数名の後に「[ ]」で囲まれたインデックスで指定して下さい。インデックス+1番目の要素にアクセス出来ます。つまり、1番目の要素は[0]です。

出力

条件式、真偽値

この後で説明するif文、for文、while文により、特定の条件の時だけ処理させることが出来るようになります。この「特定の条件」に合致しているか確かめるために、条件式を使います。条件に合う場合はTrue(真)を、合わない場合はFalse(偽)をとり、このTrueとFalseを真偽値といいます。また、真偽値自体を変数に代入して使用することも出来ます。

条件式で使う主要な演算子は以下の通りです。

条件式 意味
a == b aとbの値が等しい
a != b aとbの値が等しくない
a < b aよりもbが大きい
a <= b aがb以下
a > b aがbよりも小さい
a >= b aがb以上
A and b 条件式AがTrue かつ 条件式BがTrue
A or b 条件式AがTrue または 条件式BがTrue

if (条件分岐)

動作を条件によって選択します。
if文の条件に合わなかったもので、さらに条件を追加する場合はelif文で、全ての条件に合わない場合はelse文で処理します。
elif はいくつでも追加可能で、なくても問題ありません。elseも必要なければ書かなくて大丈夫です。基本的な書き方を以下に示します。

条件の後にはコロン「:」を書き、条件に合った場合のみに処理させる文をインデントさせて書きます。この時、インデントは揃えなくてはなりませんが、基本的にTab一個、もしくはそれに相当するスペースが一般的です。インデントされた一連の文をブロックと呼びます。より詳しい説明は後ほど行います。

出力

for, while (繰り返し)

動作を条件によって繰り返します。
for文はリストや文字列の要素を1つずつ取り出して処理するのに適しています。for文はinと組み合わせて以下のように書きます。「」を忘れないようにしましょう。

一方、while文では条件式がTrueの間、インデントされた行の処理が繰り返されます。while文の書き方は以下の通りです。こちらも「」を忘れないようにしましょう。

出力

関数

イメージとして、数学のy=f(x)と同様に、関数f引数xを与えると、何かしらの処理がされて戻り値yが得られます。引数の数は関数の用途により、複数の場合もあるし、引数を取らない場合もあります。また、戻り値に関しても、ない場合もあれば、複数の場合もあります。

関数はPythonが予め用意してあるもの、後述するモジュールに入っているもの、自分で作ったものが使用できます。
関数の作り方は以下のようにdefから始まる文で、関数名と引数を定義し、インデントされたブロックで処理を記述します。

出力

メソッド

基本的には関数と同様に、なんらかの処理を行うときに使います。ただし、何かしらの呼び出し元がいて、その呼び出し元の要素を処理する時に使う感じです。例えば、文字列は複数のメソッドを持っており、その一つ、文字を置換する replace()では、処理したい文字列にドット「.」で続けて

とすることで

と置換することが出来ます。

import

pythonを使って簡単にいろんな処理が出来るのは、複雑な関数やデータなど、便利な機能が用意されているからです。しかし、使わない機能を常に用意していたら、何をするにも処理が遅くなってしまうでしょう。そこで、pythonそのものが持つ機能は基本的な処理だけに限定し、用途に応じて必要な関数やデータは、モジュールとして別のファイルにまとめられています。そのモジュールを読み込んで使えるようにする機能が import です。一例として、数学の関数等が入ったmathモジュールを読み込んで使用してみます。

実行結果

cos()関数はmathモジュールに属した関数ですので、メソッドと同様にドットに続けて使います。

コードの書き方

Pythonでは、if文、for文、while文や、関数の定義といった一連のコードのかたまりに対し、同じインデントを持たせることでプログラムが処理出来るようになっています。if文の中で別のif文やfor文等がある場合、どんどんインデントが深くなっていくことになります。

インデントはタブか、タブに相当する数の半角スペースを使うのが一般的です。コメント及び文字列を除き、全角スペースや日本語は使えません。

Pythonで強制される綺麗なコードの書き方を覚え、可読性のあるコードを書きましょう。