Python入門(1)続き 変数を使う

変数を使う

プログラム言語における変数(variable)--場合によってはオブジェクトと言うこともある--とは値(value)を格納しておく容器(値=飲み物を入れるカップだと思って間違いない)である。 格納容器には名前(またはアドレス)を付けることができ、変数名(variable name)--またはオブジェクト名--という。 プログラム内では変数によって参照--その中身を取り出したり、同じ変数名である変数の中身を入れ替えたりすることができる。

変数という容器に値を格納する(値を割り当てる)行為を割当または代入(assign)という(代入より、割当という言葉を使うのは良い習慣だ)。 変数に使うことができる文字は、pythonの場合には、おおむね半角英数字とアンダースコア(_)であると思っておこう。 次には変数 boy に値 "Bob" を girl に値 "Alice" を割当て、それらを出力するには次のように書く。 変数内容をプリントする2行目では変数名を2重引用符(")または1重引用符(')で挟んでいないことに注意する。

boy = "Bob"
print(boy)

値は文字列でなく、数字でもよい。

age = 19
height = 175.5
print(age, height)

printにおいて、変数をカンマ(,)で区切って変数値を並べて表示できる。この結果はPython2(括弧 ( ) は任意)とPython3(括弧 ( )は必須)とでは次のように異なる。

(19 175.5)
19 175.5

今後は特に断らない限り、実習室における標準であるPython3の流儀で記述する(『Python3で書くと』を単に『Pythonでは』と表記する)。 詳しくいうとPython2とPython3との差異は少なくないが、初学者はあまり気にしないことだ。

演習: 自分の名前(半角ローマ字で!)を name に、身長を height に、生まれた都道府県を birth に割り当てて、それらを表示するスクリプト myprofile.py を書きなさい。 ただし、出力には変数内容だけでなく、
name: 'Tokyo Hanako'
height: 168.5
birth: 'Fukuoka'
とするような配慮が必要だ。

スクリプトはShebangとマジックコメントで始める

Pythonはクロスプラットホームな言語で、基本的なスクリプトであれば大抵のOSで動く。 Windowsで書いたPythonスクリプトは、いつの時かMacOS/Linuxで、あるいはRaspberry Piで動かすかもしれない。 このため、pythonスクリプトをUTF-8で書いて(Pythonのデフォルト符号化をUTF-*に設定)、スクリプトの先頭を次の2行で始めることを強く薦めたい。

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
    これ以降に、スクリプトやコメントを書く

1行目がshebang(シェバン)で、UNIX系OSスクリプトで起動するインタプリタを指定するために、#!から始まる1行目を書く。

Pythonスクリプトに実行権限がついている場合、コマンドラインからスクリプトを直接実行することができる。 WindowsではShebang行は無視されるので、上の「コマンドラインから実行」のようにインタプリター python を起動してスクリプトを渡す必要がある。

Z:\python> python myscript.py

2行目がマジックコメントで、スクリプトが実行される際にpythonインタプリタは、そのスクリプト内に記載されている文字が指定された文字符号化であることを期待し、正しく処理できる。 今の場合、pythonスクリプトをUTF-8で書くという約束のために utf-8 がある。 この対応関係が破られると、スクリプト実行時にエラーが発生する(スクリプトがShift_JISで書かれているにもかかわらずutf-8で書いていると宣言した場合など)。 スクリプトが shift_jis で保存されたのであれば、Shift_JISで宣言しておかねばならない。

演習: いままでのPythonスクリプトをShebangとマジックコメントで始め、MacOSまたはLinuxで実行属性を設定して、スクリプトを直接実行しなさい。