情報システム科 ブログ

楽しいプログラミング言語!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]

と表示させてみます。いろいろなやり方があります!

  1. 普通にループで処理する
  2. 関数を使う
  3. 無名関数を使う
  4. リスト内包表記を使う
  5. 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使いになって、ワンランクレベルの高いプログラマーを目指してみませんか!?

↑