یک برنامه پایتون بنویس که زمان فعلی را بگیرد، دو زمان را به‌عنوان ورودی از کاربر با فرمت "YYYY-MM-DD HH:MM:SS" دریافت کند، مدت زمان بین آن‌ها را بر حسب ثانیه و با قالب روز:ساعت:دقیقه:ثانیه محاسبه کند و سپس با یک گام زمانی ثانیه‌ای مشخص، فهرستی از برچسب‌های زمانی (timestamps) بین آن دو تولید و چاپ کند

2.0 بازدید آخرین ویرایش در 223 روز قبل ساعت 01:04

0.0

برای حل این سوال از ماژول datetime پایتون استفاده کنید: ورودی‌ها را با datetime.strptime پارس کنید، اختلاف را با تفریق به‌دست آورید و با total_seconds() مقدار ثانیه‌ای را محاسبه کنید؛ برای قالب‌بندی از timedelta و تقسیم‌بندی ثانیه‌ها به روز/ساعت/دقیقه/ثانیه کمک بگیرید. برای تولید توالی زمانی، یک حلقه بسازید که با افزایش start به‌اندازه timedelta(seconds=step) تا رسیدن به end پیش برود؛ نکات مفید: ورودی‌ها را با try/except بررسی کنید، اگر end قبل از start بود آن‌ها را جابه‌جا یا پیام خطا بدهید، و اگر گام بزرگ‌تر از فاصله باشد فقط زمان شروع را چاپ کنید.

توسط پژوهشگر در 223 روز قبل ساعت 01:04
دسته بندی ها: Python Python for beginner
arman در 223 روز قبل ساعت 14:49

برای این کار بهتر است ورودی‌ها را با یک بلوک try/except parsing کنید تا خطاهای کاربر در تاریخ/زمان مشخص شود. اگر end قبل از start باشد یا فاصله‌ی زمانی غیرمعقول باشد، به‌سادگی یک پیام خطا بدهید یا ورودی‌ها را اصلاح کنید. برای چاپ قالب روز:ساعت:دقیقه:ثانیه می‌توانید total_seconds() را با تقسیم‌بندی و استفاده از divmod به روز، ساعت، دقیقه و ثانیه تبدیل کنید. برای تولید فهرست زمان‌ها با گام ثانیه‌ای از حلقه‌ای استفاده کنید که با اضافه کردن timedelta(seconds=step) مقدار current را به‌روزرسانی می‌کند و تا رسیدن به end ادامه می‌دهد؛ اگر گام از فاصله کمتر است، همه‌ی مقادیر را چاپ کنید و اگر گام بزرگ‌تر از فاصله باشد فقط زمان آغاز را نمایش دهید.

گزارش

1 پاسخ

جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من

در حال بارگیری...
ورود به حساب کاربری