【ラズパイ初歩】文字列を数値に変換するint関数とfloat関数

出窓に本とコップの画像Python初歩

はじめに

ラズパイ(ラズベリーパイ)(←過去記事にリンク)でプログラムを作成するにあたり、Python(←過去記事にリンク)は 習得しておいた方が良い言語です。本ブログでは、その初歩的な関数について紹介しています。

ラズパイを使ったスマートホーム化

スマートホーム

ラズパイを使ってなんちゃって”スマートホーム化”を目指すには、センサやwebスクレイピングを使って温度・湿度、日付、時刻を取得して、それらを計算して次のコマンドを実行することが多々あります。
たとえば、センサで部屋の温度・湿度を測定して、Bluetoothスピーカーで喋らせることもあります。さらに、webAPIで外の温湿度を取得して、スピーカーに喋らせることもあります。

さらにさらに、日の出、日の入時刻を取得して喋らせることもあると思います。ポイントとしては、

ラズパイを使ったスマートホーム化には、数値計算は欠かない

ということです。

ラズパイに喋らせるためには、文字列を認識させる必要がありますが、それにはstr関数を使います。str関数についてはすでに紹介していますので、↓を参考にしてください。

文字列を計算するためには、数値を認識させる必要があります

何かの文字列を計算に使う場合、計算する対象を数値として認識させることが必要です。たとえば、ある時刻から15分後に何かを実行するような場合には、時刻を数値化した後に計算させないと計算してくれません。

int関数の使い方

文字列

int関数は文字列を整数に変換します

文字列を整数に変換する場合には、int関数を使います。どんな場面で使えるでしょうか?具体例を示して使い方を説明します。

具体的な使い方 ~今日から5日後を定義する~

今日が何日かを取得します。その方法は何でも良いです。その入手した日数から5日後に何かプログラムを実行するとします。そのような場合には、入手した日を整数に変化して数値化します。たとえば、以下のようにします。所得した今日の日をtodayとします。これは文字列で取得したとします。それにint関数を使うことでdayというのは数値化できます。

さらにその5日後を定義するために、5日後の日をex_dayとして、”day + 5″により簡単な足し算で5日後を定義します。

day = int(today)
ex_day = day + 5

float関数の使い方

数字

float関数は、文字列を小数点を含む数値に変換します

int関数は文字列を整数に変換する関数でしたが、文字列を少数点を含む数字に変換するのがfloat関数です。その使い方は以下のとおりです。

具体的な使い方 ~日の出時刻から30分後を定義する~

日の出

日の出時刻を取得して、その30分後にラズパイに喋らせたいにこのfloat関数が使えます。日の出時刻の取得方法については、↓の過去記事を参考にしてください。

ここでは、まず日の出時刻を次のようなコマンドで取得しています。

time_sunrise = get_time_sunrise(today.year, today.month, today.day, lat, lng)

そして、取得した”time_sunrise”を小数点を含む数値に変換しています。次のようなコマンドです。

nun_time_off10 = float(time_sunrise)

これにより、日の出時刻を小数点を含む数値に変換することができました。あとはこれを計算するだけです。30分後であれば、0.5を足すだけです。もし、15分後であれば、0.25を足せば良いです。

time = nun_time_off10 + 0.5

これで日の出時刻の30分後が定義できました。あとは定期的に実行するコマンドを使えば、毎日日の出時刻の30分後にプログラムを実行することができます。たとえば、

日の出から30分がたちました。シャッターをあけましょう。

などです。

まとめ

文字列を数値化する方法を紹介しました。文字列を整数に変換するにはint関数を使います。文字列を小数点を含む数値に変換するにはfloat関数を使います。ラズパイを使ってスマートホーム化するには、時刻の計算や温度・湿度の計算など、様々な計算をする必要があるので、この二つの関数は良く使う関数です。

pythonなどのプログラムを学ぶときには、横に本を置いて読みながら勉強すると進みが早いです。webで調べると行ったり来たりが多くなるのに比べて、横で見ながらできて比べながら進めることができます。特に↓の本は初心者でも分かりやすく書いてある本なので、初心者の人におすすめです。

コメント