.لینکهای مفید برای شرکت در مسابقه:
میتوانید سوالهای خود را در رابطه با سوالات و دیگر بخشهای پایتون از قسمت "سوال بپرسید" مطرح کنید.
توجه کنید که نسخه پایتون استفاده در سوالات ۳.۷ است.
عَلی که با کمک شما توانست از مخمصهی خرید ۳ پیتزا نجات پیدا کند؛ حال میخواهد بعنوان تشکر، پیتزایی که برای شما بفرستد. ولی از آنجایی که شما در شهر دیگری زندگی میکنید؛ دو راه برای فرستادن پیتزا به شما پیشنهاد میکند:
از آنجایی که شما برای حل کردن این سوال و رفتن به سوال بعدی، عجلهی بسیاری دارید؛ گزینهی اول را انتخاب میکنید. ولی امان از دل غافل! شما باید دو کلاس خواسته شده را پیادهسازی کنید تا شرکت راهآهن، این پیتزا را برای شما بفرستد.
کلاس Train
از پیش پیادهسازی شده است ولی دو کلاس Trip
و Passenger
را شما باید پیادهسازی کنید.
Train
__init__
🔗این متد در فایل اولیه مقداردهی شده است و نباید آن را دستکاری کنید. ویژگیهایی که در این متد به شیء اختصاص داده میشوند، عبارتاند از:
last_visited_city
: از نوع str میباشد.weight_capacity
: از نوع float میباشد.is_on_trip
: از نوع bool است؛ در صورتی که True باشد، قطار در حال سفر است و اگر False باشد یعنی در ایستگاه راه آهن مستقر است.Trip
all_cities
: این ویژگی برابر با یک تاپل از همه شهرهایی است که امکان ساخت راه آهن در آنها وجود دارد. این ویژگی در فایل اولیه مقداردهی شده است و نباید آن را دستکاری کنید.__init__
🔗این متد در فایل اولیه مقداردهی شده است و نباید آن را دستکاری کنید. ویژگیهایی که در این متد به شیء اختصاص داده میشوند، عبارتاند از:
train
: از نوع Train میباشد.origin_city
: از نوع str میباشد.destination_city
: از نوع str میباشد.passengers
: از نوع list میباشد.origin_city_validation
این متد یک ورودی به نام origin_city میگیرد:
all_cities
موجود نباشد، یک Exception با پیغام This input is not a verified city!
پرتاب میکند. Origin and destination cities can't be the same!
پرتاب میکند.The train of the trip is not available in the origin city!
پرتاب میکند.در نهایت اگر هیچکدام از حالتهای فوق صادق نبود باید origin_city برگردانده شود.
train_validation
این متد یک ورودی به نام train میگیرد:
Train
) نباشد، یک Exception با پیغام This input is not a train!
پرتاب میکند. This train is not available!
پرتاب میکند.در نهایت اگر هیچکدام از حالتهای فوق صادق نبود باید train برگردانده شود.
داندرمتدی را برای این کلاس بازنویسی کنید که هنگام صدا زدن شیء سفر، «ظرفیتِ وزنِ بارِ باقیمانده از قطارِ سفر» برگردانده شود.
مثلا اگر یک سفر قطاری با ظرفیت وزن 1000 کیلوگرم و دو مسافر با وزن بار 60 و 70 کیلوگرم داشته باشد، هنگام صدا زدن این سفر، عدد 870 برگردانده میشود.
Passenger
__init__
🔗این متد در فایل اولیه مقداردهی شده است و نباید آن را دستکاری کنید. ویژگیهایی که در این متد به شیء اختصاص داده میشوند، عبارتاند از:
fullname
: از نوع str میباشد.load_weight
: از نوع float میباشد.attend_trip
این متد در ورودی یک سفر میگیرد و در صورتی که بار مسافر از «ظرفیتِ وزنِ بارِ باقیمانده از قطارِ سفر» کمتر یا مساوی باشد، مسافر را به لیست مسافران سفر اضافه میکند. در غیر این صورت یک Exception با پیغام Heavy load!
پرتاب میکند.
cancel_trip
این متد در ورودی یک سفر میگیرد و در صورتی که مسافر در لیست مسافران آن سفر موجود باشد، مسافر را از لیست مسافران سفر حذف میکند. در غیر این صورت یک Exception با پیغام This passenger is not attended to this trip!
پرتاب میکند.
داندرمتدی را برای این کلاس بازنویسی کنید که اگر یک شیء مسافر print
شود، به جای آدرس آن شیء در حافظه، نام مسافر چاپ شود.
Passenger
، Train
و Trip
به شکل گفته شده وجود داشته باشند.