the ド田舎エンジニア

東京とは名ばかり 八王子市は尾崎 幸一朗(通称:サチロー)による気まぐれブログです

Pythonが人気を浴びる理由

こんばんは。幸一朗です。

箸休めがてらにpythonの話。

ここ数年、やたらと人気なpython
パッと見た感じでは、そんなに難しくもなく、誰でも触れるような仕様なのです。
が、何故そこまで人気が出ているのかは理解できていませんでして。

話題になっているから触ってみようと。
数年前にもチラっと扱ってみた事があるのですが、日曜大工程度です。


うーむ。
これは確かに使いやすいかも。


まず、libraryが充実しすぎて簡単な構文で出来ることが多い。
その1つとして『辞書型』

これが辞書型の例

dict = { "yamada":85, "tanaka":70, "suzuki":95 }

『名前』対する『値』を持つ。
この値を取り出したい場合は、以下の構文。

val = dict["yamada"]

出力結果は『85』となる。
わずか数行。

これをC言語でやろうとすると

typedef struct {
  char name[64 + 1];
  int value;
} NameValue;

const NameValue name_val_list[] = {
  { "yamada", 85 }.
  { "tanaka", 70 }.
  { "suzuki", 95 }.
  { NULL, 0 }.
};

int fetch(char *name, const NameValue *list )
{
  int i = 0;
  int ret = -1;

  while (list[i]->name) {
    if(strcmp(list[i]->name, name)) {
        ret = list[i]->value;
        break;
    }
    i++;
  }
  return ret;
}

int main(void)
{
    char name[64 + 1] = "yamada";

    printf("%d\n", fetch(name, name_val_list);
    
    return 0;
}

コンパイルしていないので動くかはさておき、こんな感じになるはず。
書くだけでも面倒でした。ステップ数の違いは一目瞭然。

json形式のデータとも相性が良く、データ操作はすこぶる楽。


そして、ブロックが『インデント』なのも特徴的。

for文の例

for val in range(1, 5):
    print(val)

結果は
1
2
3
4
5
となる。

'{'で括る形式の場合、先頭に'{'と終端に'}'があれば基本的には動くため、その中の記述は大げさに言えば好き勝手に書くことができるが、pythonはできない。

誰が書いたとしてもクセの無いコードになりやすい。


書けば書く程、この仕様にはハマる。
是非お試しあれ。