ギガ秒

ギガ秒

初級

はじめに

時間の測り方というのは、なんだかごちゃごちゃしています。 1分は60秒、1時間は60分ですね。 これは古代バビロニアに由来し、そこでは数の体系の基準として60が使われていました。 1日は24時間、1週間は7日ですが、1か月は何日でしょうか? 実は、1か月の日数は何月かによってだけでなく、住んでいる国でどの種類の暦が使われているかによっても変わります。

では、時間の間隔を表すのに秒だけを使うとしたらどうでしょう? そうすれば、大きな秒数をよりわかりやすい量で書くために、メートル法の接頭辞を使えます。

  • 料理のレシピで、ブラウニーをオーブンで2キロ秒(つまり2000秒)焼く必要があると説明しているかもしれません。
  • あるいは、家族でどこか遠くへ2メガ秒(つまり200万秒)の旅行に出かけることもあるでしょう。
  • そして、配偶者と_10億_秒のあいだ結婚生活を続けたなら、1ギガ秒の結婚記念日を祝うことになります。
Note

将来、火星かどこか別の惑星に移住することになったら、時間の測定はさらにごちゃごちゃするでしょう。 誰かが「年」と言ったとき、それは地球の1年を指すのか、それとも火星の1年なのでしょうか?

この演習のアイデアは、作家Vernor VingeのSF小説"A Deepness in the Sky"から生まれました。 その中で著者は、時間の測定の基準としてメートル法を使っています。

説明

ある日時から1ギガ秒後の日時を求めるのが、この演習の課題です。

1ギガ秒は10億秒です。 つまり、1のあとに0が9つ続く数です。

もし、_2015年1月24日の22時_に生まれたなら、1ギガ秒を迎えるのは_2046年10月2日の23時46分40秒_です。

長い数値の読み書き

コードは、書くことよりも 読む ことのほうが多くあります。また、他のテキストの中にある大きな数値や長い数値を読むのは、たいへんなことがあります。数値を読みやすくする方法は、次の2つです。

  1. 数値リテラルでアンダースコアを使う。1_000_000は1000000よりも読みやすく、10_100_201_330は10100201330よりも目で追いやすくなります。詳しくは、PEP-0515を参照してください。

  2. 指数表記、または科学的記数法を使う。e(またはE)という文字のうしろに整数を続けると、eの前にある数に掛け合わせる10のべき乗を表します(つまり: 1e6では、1に10の6乗を掛けるので、1000000になります)。さらに詳しく知りたいときは、科学的記数法についてのこちらのリファレンスを確認してみてください。

Pythonの日付と時刻

この演習では、Pythonのdatetimeモジュールのオブジェクトを扱います。

GitHubで編集する リンクは新しいウィンドウまたはタブで開きます
Python Exercism

ギガ秒を始める準備はできましたか?

Exercismに登録すれば、17個のコンセプト146個の演習、そして本物の人間によるメンタリングとともに、Pythonを学んでマスターできます。すべて無料です。