情報システム科 ブログ
楽しいプログラミング言語!Python
2018.01.14
情報システム科アプリ開発コースで学ぶプログラミング言語は、広く使われているJavaがメインですが、今ホットなのはやはりPython(パイソン)でしょう。
PythonはWebだけでなく、端末上で動作するアプリケーションや、大量データの統計処理を必要とする人工知能などでも広く使われています。
文法がシンプルでライブラリも使いやすく、初心者でも取り組みやすい特徴があります。
アプリ開発コースでは、IoTの授業でPythonを使用しています。
慣れてくるとサクサク書ける例として、配列(Pythonではリストと呼びます)の要素をすべて100倍する処理を考えてみます。
a = [0.53, 0.64, 0.8, 0.97]
これを100倍して
[53.0, 64.0, 80.0, 97.0]
と表示させてみます。いろいろなやり方があります!
- 普通にループで処理する
- 関数を使う
- 無名関数を使う
- リスト内包表記を使う
- NumPyライブラリを使う
まずは普通にループ(for文)で書いてみます。次のようになります。
a = [0.53, 0.64, 0.8, 0.97]
b = []
for i in a:
b.append(i * 100)
print(b)
次はmapという関数を使う例です。map関数の第一引数に、リストの各要素に施したい処理を与えます。
a = [0.53, 0.64, 0.8, 0.97]
def multiply(x):
return x * 100
print (list(map(multiply, a)))
ここでは、multiplyという関数を定義し、関数自体をmapの引数に与えてやりました。
さらに、わざわざ関数を定義するのも面倒だというときは、無名関数を使うことができます。
a = [0.53, 0.64, 0.8, 0.97]
print (list(map(lambda x : x * 100, a)))
たったこれだけになりました!
ただ、カッコが多くて見ずらいかもしれません。Pythonにはリスト内包表記という記述方法もあります。リストを表す[ ]の中に算術演算や論理演算を記述することができます。
a = [0.53, 0.64, 0.8, 0.97]
print ([x * 100 for x in a])
かなりすっきりしてしまいましたね。
最後は、Pythonの数値計算ライブラリであるNumPyを使う方法です。次のようになります。
import numpy as np
a = [0.53, 0.64, 0.8, 0.97]
b = np.array(a)
print (list(b * 100))
一度NumPy用のリストに変換しているので先のコードより長いですが、やっていることは極めて単純で、リストに数値を掛けているだけです。つまり、ベクトルや行列をスカラー倍するイメージで記述できてしまうということです。
簡単な処理の一例を見てみましたが、いろいろなやり方で書けるのも魅力のプログラミング言語です。Python使いになって、ワンランクレベルの高いプログラマーを目指してみませんか!?