সাল ২৫২৫, আর আপনি এইমাত্র সৌরজগতের সব গ্রহ (বুধ, শুক্র, পৃথিবী, মঙ্গল, বৃহস্পতি, শনি, ইউরেনাস ও নেপচুন) ঘুরে দেখার একটি যাত্রা শুরু করেছেন। প্রথম গন্তব্য বুধ, যেখানে কাস্টমসের নিয়মে আপনাকে একটি ফর্ম পূরণ করতে হয় (দেখা যাচ্ছে, আমলাতন্ত্র শুধু পৃথিবীর একচেটিয়া নয়)। আপনি কাস্টমস অফিসারের হাতে ফর্মটি তুলে দিতেই তিনি তা খুঁটিয়ে দেখে ভুরু কুঁচকে ফেলেন। "আপনার বয়স মাত্র ৫০ বছর, এটা বিশ্বাস করতে আপনি সত্যিই আমার কাছে আশা করছেন? আপনার বয়স তো ২০০ বছরের কাছাকাছি হওয়ার কথা!"
মজা লাগলেও আপনি অপেক্ষা করলেন, কাস্টমস অফিসার হেসে উঠবেন কি না, কিন্তু তিনি যে একেবারে গম্ভীর। আপনি বুঝতে পারেন, আপনি আপনার বয়স লিখেছেন পৃথিবীর বছরে, কিন্তু অফিসার তা চেয়েছিলেন বুধের বছরে! সূর্যের চারপাশে বুধের প্রদক্ষিণের সময় পৃথিবীর চেয়ে অনেক কম, তাই বুধের বছরে গুনলে আপনি আসলে অনেক বেশি বয়সী। দ্রুত কিছু হিসাব করে আপনি বুধের বছরে আপনার বয়স বলে দিতে পারেন। কাস্টমস অফিসার সন্তুষ্ট হয়ে হাসেন আর আপনাকে হাত নেড়ে যেতে দেন। মনে মনে ঠিক করে নিলেন, ভবিষ্যতে কাস্টমস চেকের আগেই গ্রহভেদে আপনার বয়স আগে থেকে হিসাব করে রাখবেন, যাতে এমন গোলমাল আর না হয়।
প্লুটো কেন বাদ পড়ল, ভাবছেন? তাহলে এই YouTube ভিডিওটি দেখুন।
সেকেন্ডে একটি বয়স দেওয়া থাকলে, হিসাব করুন আমাদের সৌরজগতের কোনো গ্রহে কারও বয়স কত হবে।
পৃথিবীর এক বছর সমান 365.25 পৃথিবীর দিন, অর্থাৎ 31,557,600 সেকেন্ড। যদি আপনাকে বলা হয় কারও বয়স 1,000,000,000 সেকেন্ড, তাহলে তার বয়স হবে 31.69 পৃথিবীর বছর।
অন্য গ্রহগুলোর ক্ষেত্রে আপনাকে পৃথিবীর বছরে তাদের কক্ষীয় পর্যায়কাল হিসাবে ধরতে হবে:
| গ্রহ | পৃথিবীর বছরে কক্ষীয় পর্যায়কাল |
|---|---|
| বুধ | 0.2408467 |
| শুক্র | 0.61519726 |
| পৃথিবী | 1.0 |
| মঙ্গল | 1.8808158 |
| বৃহস্পতি | 11.862615 |
| শনি | 29.447498 |
| ইউরেনাস | 84.016846 |
| নেপচুন | 164.79132 |
সূর্যের চারপাশে পৃথিবীর একবার সম্পূর্ণ প্রদক্ষিণের প্রকৃত দৈর্ঘ্য 365.256 দিনের (১ সিডারিয়াল বছর) কাছাকাছি। গ্রেগরিয়ান ক্যালেন্ডারে গড়ে 365.2425 দিন থাকে। সম্পূর্ণ নির্ভুল না হলেও, এই অনুশীলনীতে 365.25 মানটিই ব্যবহার করা হয়েছে। একটি বছর মাপার আরও উপায় জানতে উইকিপিডিয়ায় Year দেখুন।
Python ট্র্যাকের ক্ষেত্রে এই অনুশীলনীতে আপনাকে একটি SpaceAge ক্লাস (classes) তৈরি করতে বলা হয়েছে, যেখানে সৌরজগতের সব গ্রহের জন্য মেথড থাকবে।
মেথডগুলোর নামকরণে on_<planet name> রীতি অনুসরণ করতে হবে।
প্রতিটি মেথড বছর হিসেবে বয়স (ওই গ্রহে) return করবে, দুই দশমিক স্থান পর্যন্ত রাউন্ড করা:
#creating an instance with one billion seconds, and calling .on_earth().
>>> SpaceAge(1000000000).on_earth()
#This is one billion seconds on Earth in years
31.69
ক্লাস তৈরি ও ব্যবহার সম্পর্কে আরও জানতে দেখুন:
Exercism-এ সাইন আপ করুন, Python ট্র্যাকের 17টি কনসেপ্ট146টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।