はじめに
筆者は、仕事の都合もあって独学でPythonを勉強してきた。
自分の復習も兼ねつつ、「Pythonくらい使えるようになりたいんだよね」みたいな同僚もチラホラいるので、布教活動しやすくするために入門書替わりの記事を書いてみる。
タイトルに【コラム】
とついているセクションは、動作や書式に直接の関係はありません。
なので、ちゃっちゃと動かしてみたい人は読み飛ばしても問題ありません。
もちろん、せっかく書いたので読んでもらえたほうが嬉しいです。
対象
-
Python
の初歩中の初歩を学習したい人
執筆時の環境
- OS: Windows10
- Python: 3.7.3
- エディタ:VSCode
本文中の用語
用語 | 概略 |
---|---|
ターミナル | コマンドでコンピュータに命令を出すインターフェース Windowsだと"コマンドプロンプト"や"PowerShell"が標準 |
Pythonインタプリタ | Pythonのソースコードの解釈と実行を行うアプリケーション 詳しくはコラムを参照 |
ソースファイル | アプリケーションの元となる、プログラム言語の決まった書式で書かれたファイル |
パス | ファイルやディレクトリ(フォルダ)のコンピュータ上の場所を表す文字列 |
テキストエディタ | テキストファイルを編集するアプリケーション |
Pythonを導入する
そもそもPythonの環境すら持ってない人は、まずインストールとセットアップをする。
拙著だが、筆者が書いた記事もあるので、参考にセットアップする。
Pythonを実行する
対話モードで実行
対話モードは、ユーザがターミナルにて直接命令を入力し、その応答をユーザが確認しながら処理を進めていくモード。
Pythonをインストールしたときに、Add Python3.x to PATH
(xはバージョン番号)にチェックしていればパスが通っているはずなので、Windowsキー
+r
で"ファイル名を指定して実行"を開いて、python
と入力してEnter
で起動する。
もし、起動しなかったらパスの設定が誤っている可能性がある。手で修正するか、よくわからないようであれば、一度アンインストールしてAdd Python3.x to PATH
のチェックを入れて再インストールするといい。(今後ゴリゴリと使っていくようなら、PATHの設定くらいは覚えておいたほうがいいかも…)
また、ターミナルからpython
と実行しても起動できる。
この方法の場合は、別ウィンドウは立ち上がらず、ターミナルの画面がそのままPythonインタプリタへのインターフェースになる。
簡易的な実行ではあるが、日常業務でちょっと計算するときに"高機能な電卓として"使えて便利だったり、"ソースコードを書いていて書式や仕様をど忘れしたときに、実際に入力して確認してみる"という使い方ができるので、割と重宝する。
ソースファイルから実行
命令をソースコードとして記述したファイルを用意して、ファイルの内容を一括で実行するモード。
プログラミング自体の実務としてはこのモードでの使用がメイン。
Pythonのソースファイルは.py
の拡張子で表され、デフォルトではPythonインタプリタに紐づいているので、ファイルのダブルクリックでも起動する。
ただし、ダブルクリックで起動すると、ソース内に明示的に停止処理を書いていない限り、スクリプトの実行が終わると画面ごと終了するので、軽い処理だと画面表示が確認できない。(よく見ると、一瞬だけウィンドウが立ち上がっているのが見えるはず)
そのため、次のようにターミナルから起動することで、Pythonインタプリタが終了しても画面は終了しないようにして実行することが多い。
.py
ファイルの実行アプリを変更している(エディタに紐づけてるなど)場合は、python ファイル名.py
として実行する。
【コラム】インタプリタ型言語
読む
Pythonは**"インタプリタ"**型言語といわれる部類の言語で、"インタプリタ"とは
インタプリタとは、人間に分かりやすい高水準プログラミング言語(高級言語)で書かれたコンピュータプログラムを、コンピュータが解釈・実行できる形式に変換しながら同時に少しずつ実行していくソフトウェア。英語の原義は「通訳者」
出典:インタプリタとは - IT用語辞典 e-Words
とされている。
対義語?としては**"コンパイラ"**があり、どちらもプログラムを解釈するのは同じだが、"コンパイラ"は実行を伴わない。
"インタプリタ"は解釈と同時に実行されるため、プログラムが未完成だったりエラーがあっても途中までの実行結果が確認できる反面、冗長なコードも解釈した時点で実行されるために実行速度が遅い。
"コンパイラ"は実行を伴わないおかげで、全体を解釈した内容を"処理速度優先"や"省メモリ優先"などの目的に合わせて最適化したうえで実行できる反面、未完成やエラーがある状態のプログラムは途中まででも実行結果が確認できない。
このように、"インタプリタ"と"コンパイラ"はメリットとデメリットが相反関係にあり、「どちらが優れている」ということでもない。
作りたいアプリケーションの特性に合わせて、開発言語を選べるようになるのが一番いい。
動かしながら書き方を覚えよう
ソースファイルを作る
まずは、Pythonのソースファイルを作ろう。
といっても、ただのテキストファイルなので、ソースファイルを置きたいところで右クリック -> 新規作成 -> テキストドキュメント -> 任意のファイル名.py
で作るだけ。
ただ、ファイル拡張子の表示がOFFになっていると、拡張子を.py
にできないので、ファイルエクスプローラー上で表示 -> ファイル名拡張子
のチェックを入れる。
もちろん、各種エディタの新規作成
やコマンドラインから作ってもいい。
なお、ソースファイル自体や保存先のパスに日本語を含んでいるとトラブることもあるので、ソースファイルへのパスに日本語を含まないように作るのが無難。
文字コードを設定する
これは少し面倒なのだが、プログラム上で日本語を使う場合、そのソースファイルが書かれている文字コードを意識しないといけない。
英語が堪能でない限り、コメントなどに日本語を使うことは避けられないと思うので、覚えておく必要がある。
確認と設定方法
文字コードによってコンピュータ側の認識が異なる(詳しくはコラム参照)ので、Pythonインタプリタに対しても「このファイルの文字コードは○○ですよ」と教えてあげないと、ソースファイルを正しく解読できずにエラーになってしまう。
ファイルの文字コードは、テキストエディタで開くと確認できる。
Windows標準でついてくるメモ帳ですら右下に表示される。
もちろん、プログラミング向けのリッチなエディタでも確認可能で、筆者がメインで使っている"VSCode"では右下に表示されている。
ちなみに、一応他のインストールしているエディタも見てみたがどれも表示箇所は右下だった。
確認して表示された文字コードが意図していない設定だったら、エディタで文字コードを変換しておく。なんの文字コードがいいのかわからない場合は、とりあえずutf-8
にするのをオススメする。
参考までに、VSCodeでは次のように右下の文字コードをクリック -> エンコード付きで保存 -> "utf"と入力 -> utf-8を選択 -> 上書き保存
で変更できる。
次にPythonへの設定方法だが、ソースファイルの先頭行に次のように記述する。
# coding: 文字コード
又は、
# -*- coding: 文字コード -*-
2つ目の書き方は、公式ドキュメントに準拠した形だが、-*-
はなくても問題ない。
先頭行にシバン(起動バージョン自動判定用のコメント)を書いている場合は2行目に書く。
#!/usr/bin/env python3
# coding: 文字コード
又は、
#!/usr/bin/env python3
# -*- coding: 文字コード -*-
文字コード
の部分にファイルの文字コードを記述する。
基本的にはutf-8
を指定して、エディタ側でファイルの文字コードをutf-8
にしてしまうのがいいと思うが、Windows標準(コラムの通り、Windowsもutf-8に移行してきているので標準というかは微妙だが)を使いたければcp932
と指定する。
一応、デフォルトはutf-8
で認識されるので、ソースファイルをutf-8
で書くなら省略しても問題はないが、"エディタの設定で別のコードとして開いてしまい、手動で正規のコードで開きなおす"際に、人が視認できるというメリットもあるので、utf-8
でも書く癖をつけておいたほうがいい。
【コラム】文字コードとは?
読む
コンピュータ上では、さまざまな文字は対応表に基づく数値として解釈されていて、A to Z
のアルファベット(小文字も)や数字と一部の符号に関しては普遍的な対応表(Asciiコード)があるのだが、日本語のようなアルファベットの組み合わせで表現できない言語は別途文字と数値の対応表が整備されている。
この対応表にあたるのが文字コードで、Asciiコードに含まれない文字は割り当てが異なる複数の対応表が存在している。
Windowsはcp932
という文字コードが標準だったが、最近はutf-8
という文字コードが世界標準になりつつあって(もうなっているといってもいいのか?)、これは日本語含む様々な文字に対応しているため、Windows系も徐々に移行が進んでいる1が、過去互換性などの都合か完全移行はできていない。
ターミナルへの出力
ここまでの準備が終わったら、ようやくソースコードを書いて動かしてみる。
とりあえず、ターミナルに任意の表示ができないと始まらないので、ターミナルへの出力方法を覚えよう。
文字列を出力してみよう
ターミナルへ文字列を出力するには、
print(出力したい文字列)
と記述する。
Pythonでは"
または'
で囲った範囲を文字列と認識する。
文字列についての詳細は別記事にまとめたので気になる人はどうぞ。
例題
実行したら、画面にこんにちは
を表示するソースコードを作ってみよう。
> python .\hellow.py
こんにちは
数値を出力してみよう
ターミナルへ数値を出力するには、
print(出力したい数値)
と記述する。
文字列の出力の出力したい文字列
を出力したい数値
に変えるだけでいい。
数値についても詳細は別記事にまとめたので気になる人はどうぞ。
例題
実行したら、画面に10
と1.25
を表示するソースコードを作ってみよう。
> python .\numbers.py
10
1.25
回答例
print(10)
print(1.25)
print
関数は他にもオプションや機能があるが、それらは追々紹介する(たぶん)。
次回
今回はプログラム自体よりも、Pythonの実行方法やソースファイルの作り方がメインになったが、次回以降は徐々にプログラム書いてみるセクションが増えるはず。
動かしながら学ぶPython入門~その2:変数操作と画面入力~に続く…