روش ما برای اندازهگیری زمان کمی درهموبرهم است. در یک دقیقه ۶۰ ثانیه داریم و در یک ساعت ۶۰ دقیقه. این از بابل باستان میآید، جایی که ۶۰ را مبنای دستگاه اعداد خود قرار میدادند. یک روز ۲۴ ساعت دارد، یک هفته ۷ روز. اما یک ماه چند روز دارد؟ خب، تعداد روزهای یک ماه نه تنها به این بستگی دارد که کدام ماه است، بلکه به این هم بستگی دارد که در کشور محل زندگی شما از چه نوع تقویمی استفاده میشود.
چه میشود اگر بهجای این، برای بیان بازههای زمانی فقط از ثانیه استفاده کنیم؟ در آن صورت میتوانیم برای نوشتن تعداد زیادی ثانیه به شکل کمیتهایی که فهمشان راحتتر است، از پیشوندهای دستگاه متریک استفاده کنیم.
اگر روزی مریخ یا سیارهی دیگری را مستعمره کنیم، اندازهگیری زمان حتی درهموبرهمتر هم میشود. اگر کسی بگوید «سال»، منظورش سال روی زمین است یا سال روی مریخ؟
ایدهی این تمرین از رمان علمیتخیلی «A Deepness in the Sky» نوشتهی نویسنده ورنر وینج گرفته شده است. در آن، نویسنده از دستگاه متریک به عنوان مبنای اندازهگیری زمان استفاده میکند.
وظیفهی شما تعیین تاریخ و زمانی است که یک «گیگاثانیه» پس از یک تاریخ مشخص رخ میدهد.
گیگاثانیه برابر است با هزار میلیون ثانیه. یعنی عدد ۱ و بعد از آن ۹ صفر.
اگر در ۲۴ ژانویه ۲۰۱۵، ساعت ۲۲:۰۰ (۱۰:۰۰:۰۰ شب) به دنیا آمده باشید، در ۲ اکتبر ۲۰۴۶، ساعت ۲۳:۴۶:۴۰ (۱۱:۴۶:۴۰ شب) یک گیگاثانیه سن خواهید داشت.
کد بیشتر از آنکه نوشته شود، خوانده میشود و خواندن یک عدد بزرگ یا طولانی در میان متنهای دیگر میتواند چالشبرانگیز باشد. دو روش برای خواناتر کردن عددها وجود دارد:
۱. استفاده از زیرخط در لیترالهای عددی. 1_000_000 از 1000000 خواناتر است و مرور 10_100_201_330 از 10100201330 آسانتر است. برای اطلاعات بیشتر، PEP-0515 را ببینید.
۲. استفاده از نماد نمایی یا نماد علمی. حرف e (یا E) که پس از آن یک عدد صحیح میآید، نشاندهندهی توان ۱۰ است که عدد پیش از e باید در آن ضرب شود (یعنی: 1e6، عدد ۱ در ۱۰ به توان ۶ ضرب میشود، که برابر 1000000 است). برای جزئیات بیشتر، این مرجع دربارهی نماد علمی را ببینید.
این تمرین اشیایی از ماژول datetime در Python را بررسی میکند: