ばじめてのぱいそん

こんにちは。mp_hskです。

今日は海外で機械学習やら科学計算で持て囃されているPythonを軽く触ってみました。

What Python?

ざっくりいうと以下のような言語

  • LL言語(ライトウェート ランゲージ 要は軽量で手軽に動かせるってこと)
  • 文法でインデントを強制するので読みやすいコードが書ける
  • フリーソフト(無料で使える)
  • クロスプラットフォーム(どんなOSでも動く、移植も簡単にできる)
  • 科学計算、数値計算系のライブラリが豊富

インストー

Qiitaの以下のページを参考にインストーラーのEXEをダウンロードして実行すればOK

qiita.com

ちょっと触ってみた

hello world

おなじみのhello worldはこんな感じで書ける。めっさ簡単。

■hello.py(ソースファイル)

print("Hello world!")

 

■実行結果

C:\work\python_test>python hello.py
Hello world!

whileループ

whileループで1~100までの数字の合計を計算する。

■while.py(ソースファイル) 

n = 0
sum = 0
while n <= 100:
 sum += n
 n += 1
print(sum)

 

■実行結果

C:\work\python_test>python while.py
5050

 インデントつければ煩わしい{}をつけなくていいのでいい感じ

forループ

上と同じことをforでやってみた。

■for.py(ソースファイル

sum = 0
for n in range(1,101):
    sum += n
    n += 1
print(sum)

 

■実行結果

C:\work\python_test>python for.py
5050

Pythonのforループはシーケンス(イテレータみたいなやつ)を順番に1要素ずつ回す構文で、上記ではrange関数で 1 ~ 100までのシーケンスを作っている。

ちょっと実験してみた

Python数値計算が得意ということで、桁落ちの精度をJavaと比較してみた。

条件:0.1 を1000万回足し合わせた結果を表示

           java 1.8 double型で変数を宣言して実行

           Python 3.6 型指定なしで実行

結果: Java     999999.9998389754

         Python  999999.9998389754

結果は同じになったので、おそらく浮動小数点型の計算ではどちらも特殊処理はしておらず普通に計算してるみたい。この辺はライブラリ使わないとやっぱだめだなー

まとめ

軽く触ってみたけど、同じLL言語Rubyよりはきれいに書けそうな気がした。

また、色々入門サイトみてるとオブジェクト指向でかけるし、

デフォルトでタプル型とか複素数型みたいな珍しい型も扱えるらしい。

気が向いたらもっと深く突っ込んでみます。

参考リンク

www.python-izm.com

ツッコミなどあればお待ちしてます。