Pythonと変数(文字列)

前回の日記でHello,Worldの表示方法を書いた訳ですが、今回はそれに変数を交えてやってみます。

                                          • -

a = "Hello,World"
print a

                                          • -

これでいいのですが、他のプログラム言語との違いをつらつらあげて見ます。

1.変数宣言はないの?
⇒いきなりaに値を代入していますね。例えばVBAだと「Dim a as string」というように、「aは文字列型の変数ですよ。」と宣言してあげる必要があります。しかし、Pythonは変数宣言をしなくても代入した時点で変数とみなされるので問題ありません。

2.変数aの型を指定しないの?
VB等では変数は上記の1のように型まで指定してあげる必要がありますが、Pythonではその必要がありません。というのは、変数aに"Hello,World"という値を代入している訳ではないからです。aはあくまでメモリ上に展開され"Hello,World"というオブジェクトを参照しているだけなのです。なので、aに数字を代入(メモリ上の参照先を変更しているだけです)することも可能です。


2を証明するため、ひとつ例を挙げてみましょう。

                                          • -

a = "Hello,World"
b = a
b = "ORE,DJYOSUKE!"
print a

                                          • -

上記の結果は何と表示されると思いますか?
正解は「Hello,World」です。2行目で変数bは変数aと同じ"Hello,World"というオブジェクトを参照しています。3行目でbは"ORE,DJYOSUKE!"というメモリ上の値に参照先を変更しています。ここでaのオブジェクトの参照先には変化がないのです。この辺りはプログラムを書く際に注意したいところです。