وبلاگ آموزشی

آموزش پایتون

وبلاگ آموزشی

آموزش پایتون

۲ مطلب در خرداد ۱۳۹۹ ثبت شده است

  • ۰
  • ۰

تمرین5

تمرین1:

تمرین2:

تمرین3:

تمرین4:

خب این تمرینو خودم نتونستم حل کنم،پس یکم کمک گرفتم...

  • Nima Sharifkazemi
  • ۰
  • ۰

تمرین 4

تمرین1:

خروجی هرو یکیست.اما نکته ای که وجود دارد این است که در خط 22 ما یک کپی کم عمق(shallow copy) از روی لیست اصلی درست کردیم.درواقع یک نسخه از لیست اصلی ساختیم که هر بلایی سرش آوردیم اخ نگه!و با هر بار ایجاد تغییر بر روی اصلی،مقدار اونهارو داخلش خودش نگه داره.میتونید فرقشونو از طریق تابع ()id پیدا کنید.

تمرین2:

به صورت کلی هنگامی که از تابع ()sort استفاده شود لیست در اون لحظه دچار تغییر میشود ولی تابع ()sorted باعث ایجاد یک لیست جدید نیز میشود.پس اگه حفظ لیست اصلی براتون مهمه باید از دومی استفاده کنید چون همزمان به لیست اصلی دسترسی دارین ولی اگه خیلی براتون اهمیت نداره،خب پس همون اولی کارتونو راه میندازه!

نکته بعدی اینه که وقتی از تابع ()sorted استفاده میکنید یادتون باشه که یه مقداریو برمیگردونه،پس نیاز به یه متغیر دارین که اون مقدارو ذخیره کنین ولی تابع ()sort لیستتون رو درجا(in-place)مرتب میکنه و چیزی برنمیگردونه،پس نیازی به متغیرم ندارین.

نحوه استفاده:

تمرین3:

تمرین4:

خب وقتی حلقه اجرا میشه دقیقا چه اتفاقی میوفته؟اول اینکه لیست 1 و2 با هم یکین!چرا؟چون اصلا یکی از ویژگی هاشه.که وقتی تغییری در لیست جدید میدیم قبلی هم تغییر میکنه.خب حالا برای اینکه تغییر نکنه باید چیکار کنیم؟؟خب به لیست 3 نگاه کنید(تو خط 3).اینطوری ما یه لیست جدید ساختیم که هر کاریم باهاش بکنیم باز هیچ تغییری تو لیست اصلی ایجاد نمیشه.تاکید میکنم فقط تو لیست اصلی.ولی خب ما اینجا یه تغییراتی رو اعمال کردیم که باعث میشه لیستمون تغییر کنه(خط 5).ساختار حلقه هم که خیلی راحته توی هر کدوم از لیستارو یدور  میره فقط باید بدونیم دوبار شرط اول اجرا میشه و بار اخر برای لیست 3 شرط اخر.

 

  • Nima Sharifkazemi