تمرین بخش پذیری در پایتون با مثال و کد – به زبان ساده

۱۰
۱۴۰۵/۰۲/۲۷
۱۰ دقیقه
PDF
آموزش متنی جامع
امکان دانلود نسخه PDF

بهترین و کاربردی‌ترین ابزار برای محاسبه بخش پذیری در پایتون، عملگر درصد «%» است. این عملگر برای محاسبه مقدار باقیمانده تقسیم به کار برده می‌‌شود. برای مثال اگر عبارت «a % b» برابر با صفر باشد یعنی اینکه «a» تقسیم بر «b» هیچ باقی‌مانده‌ای ندارد. بنابراین می‌توان گفت که a بر b بخش پذیر است. نوشتن این عبارت و قرار دادن آن در ساختار شرطی کار راحتی است. اما مسئله آنجاست که باید بخش پذیری تعداد زیادی عدد مجزا از هم را بر عدد خاصی محاسبه کنیم. در بعضی از پروژه‌های ریاضی، به طور خاص پروژه‌های که بر روی کار با اعداد تمرکز کرده‌اند، اغلب اوقات باید اعداد بخش‌ پذیر بر عدد مشخص شده را فیلتر کنیم. این مسئله یکی از عملیات بسیار رایج در برنامه نویسی است.

آنچه در این مطلب می‌آموزید:
  • در این مطلب با مفهوم بخش پذیری و عملگر مورد استفاده برای بررسی آن در پایتون آشنا می‌شوید.
  • یکی از روش‌های نوشتن دستی تابع برای بررسی بخش پذیری در پایتون را یاد می‌گیرید.
  • می‌آموزید که چطور توابع Filter  و Lambda را برای بررسی بخش پذیری به کار ببرید.
  • نحوه کار با List Comprehension را برای بررسی بخش پذیری می‌آموزید.
  • روش بررسی بخش پذیری با استفاده از توابع بازگشتی را یاد می‌گیرید.
  • می‌‌توانید تمام این روش‌ها را با هم مقایسه کرده و گزینه مناسب پروژه خود را انتخاب کنید.
تمرین بخش پذیری در پایتون با مثال و کد – به زبان سادهتمرین بخش پذیری در پایتون با مثال و کد – به زبان ساده
997696

در این مطلب از مجله فرادرس، روش‌های مختلف بررسی بخش پذیری در پایتون را بررسی می‌کنیم. ابتدا با مفهوم بخش پذیری و روش محاسبه آن در پایتون آشنا می‌شویم. سپس تکنیک‌های کاربردی را معرفی می‌کنیم که برای بررسی بخش‌ پذیری دسته‌ای از اعداد بر عدد دیگر به کار برده می‌شوند. بعد از آن روش اجرا و پیاده‌سازی تمام این تکنیک‌ها را یک به یک همراه با مثال‌های کدنویسی شده توضیح‌ می‌دهیم.

بخش پذیری در پایتون چیست؟

بخش پذیری در پایتون یعنی اینکه با کدنویسی در این زبان برنامه نویسی بررسی کنیم که آیا عدد a بر عدد b بخش پذیر است یا نه. پایتون از عملگر خاصی در دسته عملگر‌های تقسیم برای این کار استفاده می‌کند. در این زبان، سه عملگر اصلی برای انجام محاسبات مربوط به تقسیم وجود دارد. برنامه نویسان برای بررسی بخش پذیری از عملگر درصد در پایتون یا «%» استفاده می‌کنند. با کمک این عملگر به راحتی می‌توان فهمید که آیا عدد a بر عدد b بخش پذیر است یا نه. به این صورت که اگر نتیجه عبارت شرطی a % b == 0 برابر با «True» باشد، یعنی a بر b بخش پذیر است.

مسئله اینجاست که در پروژه‌های واقعی، بیشتر اوقات باید وظایفی مانند استخراج اعداد بخش پذیر بر عدد خاصی را انجام بدهیم. این عملیات در بین انبوهی از اعداد اجرا می‌شود. برای مثال، ممکن است لیست بزرگی از اعداد صحیح داشته باشیم و بخواهیم اعداد بخش پذیر بر ۳ را از آن خاج کنیم.

روشایده اصلیویژگی ساده
روش دستیاستفاده از % و حلقه forساده و مناسب مبتدیان
filter()فیلتر کردن اعداد با شرطحرفه‌ای و کوتاه
توابع بازگشتیفراخوانی تابع توسط خودشمناسب مسائل بازگشتی
List Comprehensionساخت لیست با شرطکوتاه و خوانا

در فهرست زیر، ۴ روش پرکاربرد را برای حل چنین مسائلی معرفی کرده‌ایم.

  • بررسی بخش پذیری در پایتون به روش دستی
  • بررسی بخش پذیری در پایتون با کمک تابع filter()
  • بررسی بخش پذیری با استفاده از توابع بازگشتی در پایتون
  • بررسی بخش پذیری در پایتون با کمک List Comprehension
چهار روش پرکاربرد برای بررسی بخش پذیری در پایتون بر روی مجموعه‌های بزرگ اعداد صحیح
چهار روش پرکاربرد برای بررسی بخش پذیری در پایتون بر روی مجموعه‌های بزرگ اعداد صحیح

در بخش‌های بعدی مطلب، تمام موارد بالا را یک به یک همراه با مثال و کد توضیح می‌دهیم.

تا به اینجای مطلب هم با مفهوم بخش‌ پذیری آشنا شده‌اید و هم اینکه روش‌های محاسبه آن را در پایتون به صورت اسمی شناخته‌اید. در ادامه تمام این روش‌ها را یک به یک بررسی کرده و همراه با مثال‌های کدنویسی شده توضیح می‌دهیم. در صورت تمایل به مطالعه مطالبی مانند این مورد، پیشنهاد می‌کنیم که حتما اپلیکیشن مجله فرادرس را بر روی دستگاه‌های همراه خود نصب کنید.

برای نصب اپلیکیشن رایگان مجله فرادرس، کلیک کنید.

بررسی بخش پذیری در پایتون به روش دستی

ساده‌ترین روش برای بررسی بخش پذیری در پایتون استفاده از عملگر درصد «%» یا ماژولو برای پیدا کردن باقی‌مانده تقسیم است. با کمک این عملگر و حلقه for می‌توانیم تمام اعداد صحیح موجود در لیست مشخص شده را برای بخش پذیری بر عدد مورد نظر آزمایش کنیم.

برای مثال فرض کنید که لیستی از اعداد صحیح داده شده است.

  • ابتدا با کمک حلقه بر روی این لیست پیمایش می‌کنیم.
  • در هر بار پیمایش یکی از عناصر لیست را بررسی می‌کنیم.
  • اگر باقی مانده تقسیم صحیح این عنصر بر عدد داده شده برابر با صفر بود یعنی آنکه بین این اعداد رابطه بخش پذیری وجود دارد.
  • در غیر این صورت، اعداد مورد نظر بر یکدیگر بخش پذیر نیستند.

بعد از اجرای این کدها خروجی زیر تولید شده و در کنسول پایتون نمایش داده می‌شود.

[10, 40, 50, 60]

تمام مراحل اجرای کدهای بالا را در فهرست زیر به ترتیب نوشته‌ایم.

  1. ابتدا لیستی از اعداد را در متغیر numbers  قرار می‌دهیم.
  2. سپس مقدار مقسوم‌علیه را در متغیر divisor  ذخیره کرده و لیست خالی divisibles  را تعریف می‌کنیم.
  3. با حلقه for  روی تمام اعداد لیست پیمایش می‌کنیم.
  4. در هر تکرار، بررسی می‌کنیم که آیا عدد بر 10 بخش پذیر است یا نه.
  5. اگر باقی‌مانده تقسیم برابر صفر باشد، عدد در لیست divisibles  ذخیره می‌شود.
  6. در پایان، لیست اعداد بخش پذیر بر 10 روی خروجی چاپ می‌شود.

یادگیری پایتون با کمک فیلم های آموزشی فرادرس

فرادرس بزرگ‌ترین تولیدکننده محتوای آموزشی آنلاین در کشور ایران است. تمرکز اصلی در فرادرس بر روی تهیه محتوای آموزشی متنی و فیلم قرار دارد. بیشتر کاربران و دانشجویان آنلاین ترجیه می‌دهند که از فیلم‌های آموزشی استفاده کنند. زیرا در این فیلم‌ها نکات بسیار متنوع‌تری به صورت تصویری همراه با توضیحات اساتید مجرب ارائه می‌شوند. پایتون یکی از تکنولوژی‌هایی است که فیلم‌های زیادی برای آن در فرادرس تولیده شده. زبان برنامه نویسی پایتون ساده ولی قدرتمند است. زیرا کتابخانه‌های متنوع و بسیار انعطاف‌پذیری دارد. بنابراین به یکی از پرکاربرد‌ترین زبان‌های برنامه نویسی دنیا تبدیل شده است.

مجموعه آموزش برنامه نویسی پایتون Python – مقدماتی تا پیشرفته
با کلیک بر روی تصویر بالا می‌توانید به صفحه اصلی مجموعه فیلم‌های آموزش برنامه نویسی پایتون Python از مقدماتی تا پیشرفته هدایت شوید.

کاربرد پایتون در صنعت از امنیت سایبری گرفته تا پزشکی را پوشش می‌دهد. به دلیل وجود موقعیت‌های شغلی فراوان، افراد زیادی هم اقدام به یادگیری پایتون می‌کنند. برای درک مفاهیم پیشرفته پایتون به منابع قوی و اساتید باتجربه‌ نیاز دارید. فرادرس تمام این موارد را به صورت یکجا در فیلم‌های آموزشی خود جمع‌آوری کرده است. فیلم‌های آموزشی فرادرس، مطالب پیشرفته را با زبانی شیوا و مثال‌های متنوع آموزش می‌دهند. در ضمن، استفاده از فیلم‌های فرادرس برای یادگیری، یکی از مقرون‌به‌صرفه‌ترین روش‌ها برای آموزش پایتون است.

در فهرست پایین، چند مورد از فیلم‌های آموزش پایتون را معرفی کرده‌ایم.

در بخش بعد روش استفاده از تابع filter()  را برای بررسی بخش‌ پذیری اعداد بررسی می‌کنیم.

بررسی بخش پذیری در پایتون با کمک تابع Filter

در زبان برنامه نویسی پایتون تابعی به نام تابع filter() تعریف شده است. وظیفه تابع filter() این است که عناصر موجود در شیء پیمایش‌‌پذیر را یک به یک بررسی کرده و آن‌ها را با توجه به شرط مشخص شده فیلتر بکند. به طور معمول از توابع درونی یا ساخته شده توسط کاربر به عنوان شرط تابع filter() استفاده می‌کنیم. تابع filter() جزو توابع پیشرفته و حرفه‌ای پایتون است. برای تبدیل شدن به توسعه‌دهنده حرفه‌ای باید با نکات پیشرفته این زبان آشنا بشوید. در صورت تمایل به یادگیری بیشتر، پیشنهاد می‌کنیم که فیلم آموزش برنامه نویسی پایتون پیشرفته، بررسی ترفندهای Python + گواهینامه را در فرادرس مشاهده کنید. با هدف کمک به مخاطبان مجله، لینک دسترسی به این فیلم را در پایین نیز قرار داده‌ایم.

تابع filter() کاربرد‌های مختلفی دارد. برای مثال می‌توانیم از آن برای فیلتر کردن اعداد بخش پذیر بر عدد مشخص شده استفاده کنیم. تابع filter() فقط عناصری را برمی‌گرداند که توسط عبارت شرطی نوشته شده درست ارزیابی شوند.

در کادر پایین، مثال ساده‌ای از روش فیلتر کردن اعداد بخش پذیر بر عدد مشخص شده را پیاده‌سازی کرده‌ایم.

بعد از اجرای این کدها خروجی زیر تولید شده و در کنسول پایتون نمایش داده می‌شود.

Numbers divisible by 10: 10 40 50 60

در فهرست پایین نکات مهم کد بالا را توضیح داده‌ایم.

  1. ابتدا لیستی از اعداد صحیح را با نام numbers  تعریف کرده‌ایم.
  2. سپس با کمک توابع filter() و Lambda بر روی تمام عناصر این لیست پیمایش می‌کنیم.
  3. در هربار پیمایش لیست، شرط x % divisor == 0  را بر روی یکی از عناصر اعمال می‌کنیم.
  4. اگر این شرط بر روی عنصر مورد نظر صحیح ارزیابی شد، وارد شی پیمایش‌پذیر divisible_numbers  می‌شود.
  5. در نهایت شیء divisible_numbers  شامل تمام اعداد بخش پذیر بر عدد 10 است.
  6. در خط آخر، تمام اعضای شیء پیمایش‌‌پذیر divisible_numbers  با دستور print()  چاپ می‌شوند.
مرحلهکار انجام شده
تعریف لیستساخت لیست numbers
پیمایش داده‌هااستفاده از filter() و lambda
بررسی شرطچک کردن x % divisor == 0
ذخیره نتیجهافزودن اعداد بخش‌پذیر به divisible_numbers
چاپ خروجینمایش اعداد با print()

نکته ۱: شیء پیمایش‌پذیر در پایتون شیئی است که با کمک حلقه‌ها بتوان بر روی آن پیمایش کرد. برای مثال می‌توانیم به لیست یا تاپل و غیره اشاره بکنیم.

نکته ۲: نماد *  در دستور print()  قبل از نام شیء پیمایش‌پذیر قرار گرفته است. این نماد برای باز کردن بسته‌بندی عناصر درون این شیء و نمایش یک به یک آن‌ها به صورت مجزا به کار برده می‌شود.

فلوچارت استفاده از تابع بی‌نام Lambda توسط تابع Filter برای کشف اعداد بخش‌پذیر
فلوچارت استفاده از تابع بی‌نام Lambda توسط تابع Filter برای کشف اعداد بخش‌پذیر

بررسی بخش پذیری با استفاده از توابع بازگشتی

توابع بازگشتی به نوعی از توابع گفته می‌شود که خودشان را برای بررسی نمونه‌ کوچک‌تری از مسئله فراخوانی می‌کنند. این توابع به طور معمول آنقدر خودشان را فراخوانی می‌کنند که به حالت پایه‌ای از مسئله برسند. سپس از این حالت پایه شروع به حل مسئله کرده و قدم به قدم به سمت مسئله اصلی (حالت بزرگتر) بالا می‌آیند. برای بررسی تکنیک برنامه نویسی توابع بازگشتی در پایتون می‌توانید مطلب مربوط به آن را در مجله فرادرس مطالعه کنید.

برای مثال، فرض کنید که لیست numbers = [10, 15, 40]  داده شده است. باید بخش‌ پذیری این اعداد را بر 10 محاسبه کنیم. عدد 10 را با دستور divisor = 10  در متغیر مشخص شده ذخیره می‌کنیم. اکنون تکنیک بازگشتی به شکل زیر، کار می‌کند.

  • فراخوانی اول: دو متغیر numbers = [10, 15, 40]  و divisor = 10  را داریم. بررسی می‌کنیم که آیا شرط 10 % 10 == 0  برقرار است یا نه. از آنجا که این شرط برقرار است پس عدد 10 وارد لیست اعداد بخش پذیر می‌‌شود.
  • فراخوانی دوم: در فراخوانی دوم از متغیر‌های numbers = [15, 40]  و divisor = 10  استفاده می‌کنیم. طبق روال برنامه شرط 15 % 10 != 0  را بررسی می‌کنیم. اما عدد 15  بر عدد 10 بخش پذیر نیست. بنابراین بدون انجام دادن هیچ کاری به سراغ فراخوانی بعدی می‌رویم.
  • فراخوانی سوم: این بار از متغیرهای numbers = [40]  و divisor = 10  استفاده می‌کنیم. شرط 40 % 10 == 0  را بررسی می‌کنیم. از آن‌جا که این شرط درست ارزیابی می‌شود، بنابراین عدد 40 هم به لیست اعداد بخش پذیر اضافه خواهد شد.
  • فراخوانی چهارم: در ین فراخوانی لیست numbers  خالی شده است. بنابراین به حالت پایه مسئله رسیده‌ایم. یعنی دیگر مسئله از این کوچک‌تر نمی‌شود. بنابراین اجرای دور‌های بازگشتی به پایان می‌رسد.
مراحل بررسی بخش پذیری با استفاده از توابع بازگشتی
مراحل بررسی بخش پذیری با استفاده از تابع بازگشتی برای این مثال و همین لیست

در کادر پایین از تکنیک توابع بازگشتی برای بررسی بخش پذیری یک به یک عناصر موجود در لیست پایتون استفاده می‌کنیم.

بعد از اجرای این کدها خروجی زیر تولید شده و در کنسول پایتون نمایش داده می‌شود.

Number 10 is divisible by 10
Number 15 is NOT divisible by 10
Number 22 is NOT divisible by 10
Number 33 is NOT divisible by 10
Number 40 is divisible by 10
Number 50 is divisible by 10
Number 60 is divisible by 10

مهم‌ترین نکات کد بالا را در فهرست پایین بررسی کرده‌ایم.

  1. در هر بازگشت تابع، شرط مشخص شده را بر روی اولین عنصر در لیست آزمایش می‌کنیم.
  2. سپس تابع خودش را فراخوانی می‌کند. در این فراخوانی از اندیس شماره 1  تا به انتهای لیستی را که در ورودی دریافت کرده به عنوان پارامتر به خودش ارسال می‌کند. با این کار، در هر بازگشت، لیست اصلی به اندازه یک خانه کوتاه‌تر می‌شود. تا جایی که تابع لیست خالی را به عنوان پارامتر ورودی به خودش ارسال بکند. این حالت، همان حالت پایه و ساده‌ترین صورت مسئله است.
  3. قطعه قطعه کردن لیست با کد numbers[1:]  یعنی زیرمجموعه‌ای از لیست numbers  ایجاد کنیم که از عنصر دوم تا انتهای آن را پوشش بدهد.
  4. در هر بازگشت تابع، اگر عنصر حذف شده از لیست بر عدد مشخص شده 10 بخش پذیر باشد، در خروجی با پیغام مناسب چاپ می‌شود.
  5. اگر این عنصر بر عدد 10 بخش پذیر نباشد هم از پیغام مناسبی برای آن استفاده کرده‌ایم. می‌توان این کدها را طوری نوشت که فقط اعداد بخش پذیر بر 10 در خروجی چاپ شوند. این عملیات تا زمانی ادامه پیدا می‌کند که لیست خالی شود.

چطور با کمک فرادرس اجرای پروژه های پایتون را یاد بگیریم؟

فرادرس برای کمک به یادگیری نوشتن و اجرای پروژه‌های عملی پایتون، مجموعه آموزش حرفه‌ای را تولید و منتشر کرده است. در این مجموعه آموزش، موارد بسیار متنوعی قرار دارند. آموزش‌های فرادرس از طراحی بک‌اند سایت تا توسعه مدل‌های هوش مصنوعی و بازی‌سازی را دربر می‌گیرد. دانشجویان و افراد علاقه‌مند به برنامه نویسی، با مشاهده این فیلم‌ها و تمرین همراه با آن می‌توانند خودشان را برای دستیابی به موقعیت‌های شغلی متنوع آماده کنند. به هر حال برنامه نویسان پایتون باید بتوانند پروژه‌های خود را بدون خطا و با ترکیب تکنولوژی‌های مختلف در این زبان پیاده‌سازی کنند. کمک گرفتن از فیلم‌های پروژه‌محور فرادرس یکی از روش‌های مؤثر برای کسب تجربه در این زمینه است.

در فهرست زیر، چند مورد از فیلم‌‌های آموزشی پروژه‌محور پایتون را معرفی کرده‌ایم.

برای مشاهده فیلم‌های بیشتر بر روی این تصویر کلیک کرده و به صفحه اصلی مجموعه آموزشی پروژه‌محور پایتون هدایت شوید.

مجموعه آموزش پروژه محور برنامه نویسی پایتون (Python)
با کلیک بر روی تصویر بالا می‌توانید به صفحه اصلی مجموعه فیلم‌های آموزش پروژه محور برنامه نویسی پایتون هدایت شوید.

بررسی بخش پذیری در پایتون با کمک List Comprehension

List Comprehension روش کوتاهی برای تعریف لیست‌های پایتون است. در این روش می‌توانیم عبارت خاصی را بر روی تمام عناصر شیء پیمایش‌‌پذیر اعمال کرده و سپس تمام این عناصر را در داخل ساختار لیست ذخیره بکنیم. در ضمن برای فیلتر کردن و گزینش عناصر مناسب ذخیره‌سازی در لیست می‌توانیم از شرط دلخواهی هم استفاده کنیم.

از List Comprehension می‌توانیم برای استفاده بر روی اشیاء پیمایش‌پذیر مانند لیستی از اعداد صحیح استفاده کنیم. در این صورت کافی است که فقط شرط مورد نظر خود را برای بررسی بخش پذیری عناصر داخل لیست به کار ببریم. برای مثال، عدد مورد نظر خود را در متغیر‌ divisor  ذخیره می‌کنیم. سپس با کمک شرط number % divisor == 0  بخش پذیری number  را بر divisor  بررسی می‌کنیم. اگر شرط درست ارزیابی شد، مقدار موجود در متغیر number  برای ذخیره‌سازی در لیست برگشت داده می‌شود.

با این روش می‌توانیم بر روی هر لیستی پیمایش کنیم. سپس تمام اعداد بخش پذیر بر divisor  را از درون این لیست شناسایی کرده و جمع‌آوری بکنیم.

بعد از اجرای این کدها خروجی زیر تولید شده و در کنسول پایتون نمایش داده می‌شود.

[10, 40, 50, 60]

در فهرست پایین مهم‌ترین نکات کد بالا را توضیح داده‌ایم.

  1. ابتدا لیستی از اعداد را در متغیر numbers  قرار می‌دهیم و مقدار مقسوم‌علیه را در متغیر divisor  ذخیره می‌کنیم.
  2. سپس با استفاده از List Comprehension، اعدادی را انتخاب می‌کنیم که باقی‌مانده تقسیم آن‌ها بر 10 برابر صفر باشد.
  3. اعداد بخش پذیر در لیست divisible_numbers  قرار می‌گیرند.
  4. در پایان، لیست اعداد بخش پذیر روی خروجی چاپ می‌شود.

جمع‌بندی

در این مطلب از مجله فرادرس روش‌های مختلف بررسی بخش پذیری در پایتون را معرفی کرده‌ایم. پایتون، زبان برنامه نویسی بسیار انعطاف‌پذیر و قدرتمندی است. زیرا ابزارهای متنوع و فراوانی در اختیار برنامه نویسان قرار می‌دهد. برای مثال در حل این مسئله می‌توانیم از حلقه for  در پایتون استفاده کنیم. استفاده از این حلقه ساده بوده و به راحتی کاربران متوجه روش کار آن می‌شوند. در روش بعد از تابع filter() استفاده می‌کنیم. در این روش، مسئله را با کمک رویکرد برنامه نویسی تابعی حل می‌کنیم.

روش دیگر برای بررسی بخش پذیری، نوشتن تابع بازگشتی مخصوص انجام این کار است. این رویکرد، مناسب حل مسائل خاص است. یعنی مسئله‌هایی که در آن‌ها برای حل کردن سوالات بزرگ باید مسئله را به بخش‌های کوچک‌تری تجزیه بکنیم. روش بعدی استفاده از تکنیک List Comprehension است. این تکنیک برنامه نویسی از سایر روش‌ها کوتاه‌تر و پایتونی‌تر هست.

بر اساس رای ۱ نفر
آیا این مطلب برای شما مفید بود؟
اگر پرسشی درباره این مطلب دارید، آن را با ما مطرح کنید.
منابع:
PYnative
PDF
مطالب مرتبط
نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *