初めてのPythonと動的型付けについて

テスト中だがPythonやってみようと思った

C言語Hello worldしようとすると

//C言語
#include <stdio.h>

void main {
printf("Hello, World!");
}

という感じだけど、Pythonなら

#Python
print "Hello,World!"

これだけでいいらしい
この手軽さは非常に良い、The スクリプト言語という感じ

ところがどっこい

Cは静的型付け、Pythonは動的型付けだったのだ!

いままでずっと静的型付け言語ばかりを触っていたために、動的型付けの書き方に慣れない

wikipediaによれば動的型付けとは、

プログラミング言語で書かれたプログラムにおいて、変数や、サブルーチンの引数や返り値などの値について、その型を、コンパイル時などそのプログラムの実行よりも前にあらかじめ決めるということをせず、実行時の実際の値による、という型システムの性質のことである。*1

らしい

たとえば、

//変数hogeに標準入力から整数を代入
int hoge;
scanf("%d", &hoge);

みたいなことするときに、Pythonだと

#変数hogeに標準入力から”何か”を代入
hoge = raw_input()

になる

変数hogeの型はプログラムの実行中に決まるので、上ではraw_input関数からの戻り値によって変化する
つまり、raw_inputから値が来るまでは、hogeは文字列である可能性もあるし、数値である可能性もある

ということは、コーディング中に常に変数がどんな型をとっているのかを意識しないといけない気がする

そもそも変数の型が最初から決まってないのが非常にむず痒い、宣言がないだけでコンパイルできなさそうな気さえしてくる*2

しかし宣言文が無いことでコード自体は短くなるし、これに慣れればコーディングも短い時間でできるような気がしなくもない(憶測)

とにかく

Pythonは便利そう、どんどん活用していきたい
AOJでも使えるので学習する上でも良さそう

テストは知らん