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


در این مطلب از مجله فرادرس، روشهای مختلف بررسی بخش پذیری در پایتون را بررسی میکنیم. ابتدا با مفهوم بخش پذیری و روش محاسبه آن در پایتون آشنا میشویم. سپس تکنیکهای کاربردی را معرفی میکنیم که برای بررسی بخش پذیری دستهای از اعداد بر عدد دیگر به کار برده میشوند. بعد از آن روش اجرا و پیادهسازی تمام این تکنیکها را یک به یک همراه با مثالهای کدنویسی شده توضیح میدهیم.
بخش پذیری در پایتون چیست؟
بخش پذیری در پایتون یعنی اینکه با کدنویسی در این زبان برنامه نویسی بررسی کنیم که آیا عدد a بر عدد b بخش پذیر است یا نه. پایتون از عملگر خاصی در دسته عملگرهای تقسیم برای این کار استفاده میکند. در این زبان، سه عملگر اصلی برای انجام محاسبات مربوط به تقسیم وجود دارد. برنامه نویسان برای بررسی بخش پذیری از عملگر درصد در پایتون یا «%» استفاده میکنند. با کمک این عملگر به راحتی میتوان فهمید که آیا عدد a بر عدد b بخش پذیر است یا نه. به این صورت که اگر نتیجه عبارت شرطی a % b == 0 برابر با «True» باشد، یعنی a بر b بخش پذیر است.
مسئله اینجاست که در پروژههای واقعی، بیشتر اوقات باید وظایفی مانند استخراج اعداد بخش پذیر بر عدد خاصی را انجام بدهیم. این عملیات در بین انبوهی از اعداد اجرا میشود. برای مثال، ممکن است لیست بزرگی از اعداد صحیح داشته باشیم و بخواهیم اعداد بخش پذیر بر ۳ را از آن خاج کنیم.
| روش | ایده اصلی | ویژگی ساده |
|---|---|---|
| روش دستی | استفاده از % و حلقه for | ساده و مناسب مبتدیان |
| filter() | فیلتر کردن اعداد با شرط | حرفهای و کوتاه |
| توابع بازگشتی | فراخوانی تابع توسط خودش | مناسب مسائل بازگشتی |
| List Comprehension | ساخت لیست با شرط | کوتاه و خوانا |
در فهرست زیر، ۴ روش پرکاربرد را برای حل چنین مسائلی معرفی کردهایم.
- بررسی بخش پذیری در پایتون به روش دستی
- بررسی بخش پذیری در پایتون با کمک تابع filter()
- بررسی بخش پذیری با استفاده از توابع بازگشتی در پایتون
- بررسی بخش پذیری در پایتون با کمک List Comprehension

در بخشهای بعدی مطلب، تمام موارد بالا را یک به یک همراه با مثال و کد توضیح میدهیم.
تا به اینجای مطلب هم با مفهوم بخش پذیری آشنا شدهاید و هم اینکه روشهای محاسبه آن را در پایتون به صورت اسمی شناختهاید. در ادامه تمام این روشها را یک به یک بررسی کرده و همراه با مثالهای کدنویسی شده توضیح میدهیم. در صورت تمایل به مطالعه مطالبی مانند این مورد، پیشنهاد میکنیم که حتما اپلیکیشن مجله فرادرس را بر روی دستگاههای همراه خود نصب کنید.
برای نصب اپلیکیشن رایگان مجله فرادرس، کلیک کنید.
بررسی بخش پذیری در پایتون به روش دستی
سادهترین روش برای بررسی بخش پذیری در پایتون استفاده از عملگر درصد «%» یا ماژولو برای پیدا کردن باقیمانده تقسیم است. با کمک این عملگر و حلقه for میتوانیم تمام اعداد صحیح موجود در لیست مشخص شده را برای بخش پذیری بر عدد مورد نظر آزمایش کنیم.
برای مثال فرض کنید که لیستی از اعداد صحیح داده شده است.
- ابتدا با کمک حلقه بر روی این لیست پیمایش میکنیم.
- در هر بار پیمایش یکی از عناصر لیست را بررسی میکنیم.
- اگر باقی مانده تقسیم صحیح این عنصر بر عدد داده شده برابر با صفر بود یعنی آنکه بین این اعداد رابطه بخش پذیری وجود دارد.
- در غیر این صورت، اعداد مورد نظر بر یکدیگر بخش پذیر نیستند.
بعد از اجرای این کدها خروجی زیر تولید شده و در کنسول پایتون نمایش داده میشود.
[10, 40, 50, 60]تمام مراحل اجرای کدهای بالا را در فهرست زیر به ترتیب نوشتهایم.
- ابتدا لیستی از اعداد را در متغیر numbers قرار میدهیم.
- سپس مقدار مقسومعلیه را در متغیر divisor ذخیره کرده و لیست خالی divisibles را تعریف میکنیم.
- با حلقه for روی تمام اعداد لیست پیمایش میکنیم.
- در هر تکرار، بررسی میکنیم که آیا عدد بر 10 بخش پذیر است یا نه.
- اگر باقیمانده تقسیم برابر صفر باشد، عدد در لیست divisibles ذخیره میشود.
- در پایان، لیست اعداد بخش پذیر بر 10 روی خروجی چاپ میشود.
یادگیری پایتون با کمک فیلم های آموزشی فرادرس
فرادرس بزرگترین تولیدکننده محتوای آموزشی آنلاین در کشور ایران است. تمرکز اصلی در فرادرس بر روی تهیه محتوای آموزشی متنی و فیلم قرار دارد. بیشتر کاربران و دانشجویان آنلاین ترجیه میدهند که از فیلمهای آموزشی استفاده کنند. زیرا در این فیلمها نکات بسیار متنوعتری به صورت تصویری همراه با توضیحات اساتید مجرب ارائه میشوند. پایتون یکی از تکنولوژیهایی است که فیلمهای زیادی برای آن در فرادرس تولیده شده. زبان برنامه نویسی پایتون ساده ولی قدرتمند است. زیرا کتابخانههای متنوع و بسیار انعطافپذیری دارد. بنابراین به یکی از پرکاربردترین زبانهای برنامه نویسی دنیا تبدیل شده است.

کاربرد پایتون در صنعت از امنیت سایبری گرفته تا پزشکی را پوشش میدهد. به دلیل وجود موقعیتهای شغلی فراوان، افراد زیادی هم اقدام به یادگیری پایتون میکنند. برای درک مفاهیم پیشرفته پایتون به منابع قوی و اساتید باتجربه نیاز دارید. فرادرس تمام این موارد را به صورت یکجا در فیلمهای آموزشی خود جمعآوری کرده است. فیلمهای آموزشی فرادرس، مطالب پیشرفته را با زبانی شیوا و مثالهای متنوع آموزش میدهند. در ضمن، استفاده از فیلمهای فرادرس برای یادگیری، یکی از مقرونبهصرفهترین روشها برای آموزش پایتون است.
در فهرست پایین، چند مورد از فیلمهای آموزش پایتون را معرفی کردهایم.
- فیلم آموزش ویژوال پایتون، یادگیری برنامه نویسی پایتون بدون کدنویسی با Visual Python + گواهینامه
- فیلم آموزش ساخت چت بات در پایتون با «چت جی پی تی» (ChatGPT)
- فیلم آموزش طراحی رابط کاربری گرافیکی GUI با کتابخانه Tkinter در پایتون + گواهینامه
- فیلم آموزش برنامه نویسی تابعی در پایتون + گواهینامه
- فیلم آموزش میکروپایتون، درباره برنامه نویسی میکروکنترلر برای اینترنت اشیا
در بخش بعد روش استفاده از تابع filter() را برای بررسی بخش پذیری اعداد بررسی میکنیم.
بررسی بخش پذیری در پایتون با کمک تابع Filter
در زبان برنامه نویسی پایتون تابعی به نام تابع filter() تعریف شده است. وظیفه تابع filter() این است که عناصر موجود در شیء پیمایشپذیر را یک به یک بررسی کرده و آنها را با توجه به شرط مشخص شده فیلتر بکند. به طور معمول از توابع درونی یا ساخته شده توسط کاربر به عنوان شرط تابع filter() استفاده میکنیم. تابع filter() جزو توابع پیشرفته و حرفهای پایتون است. برای تبدیل شدن به توسعهدهنده حرفهای باید با نکات پیشرفته این زبان آشنا بشوید. در صورت تمایل به یادگیری بیشتر، پیشنهاد میکنیم که فیلم آموزش برنامه نویسی پایتون پیشرفته، بررسی ترفندهای Python + گواهینامه را در فرادرس مشاهده کنید. با هدف کمک به مخاطبان مجله، لینک دسترسی به این فیلم را در پایین نیز قرار دادهایم.
تابع filter() کاربردهای مختلفی دارد. برای مثال میتوانیم از آن برای فیلتر کردن اعداد بخش پذیر بر عدد مشخص شده استفاده کنیم. تابع filter() فقط عناصری را برمیگرداند که توسط عبارت شرطی نوشته شده درست ارزیابی شوند.
در کادر پایین، مثال سادهای از روش فیلتر کردن اعداد بخش پذیر بر عدد مشخص شده را پیادهسازی کردهایم.
بعد از اجرای این کدها خروجی زیر تولید شده و در کنسول پایتون نمایش داده میشود.
Numbers divisible by 10: 10 40 50 60در فهرست پایین نکات مهم کد بالا را توضیح دادهایم.
- ابتدا لیستی از اعداد صحیح را با نام numbers تعریف کردهایم.
- سپس با کمک توابع filter() و Lambda بر روی تمام عناصر این لیست پیمایش میکنیم.
- در هربار پیمایش لیست، شرط x % divisor == 0 را بر روی یکی از عناصر اعمال میکنیم.
- اگر این شرط بر روی عنصر مورد نظر صحیح ارزیابی شد، وارد شی پیمایشپذیر divisible_numbers میشود.
- در نهایت شیء divisible_numbers شامل تمام اعداد بخش پذیر بر عدد 10 است.
- در خط آخر، تمام اعضای شیء پیمایشپذیر divisible_numbers با دستور print() چاپ میشوند.
| مرحله | کار انجام شده |
|---|---|
| تعریف لیست | ساخت لیست numbers |
| پیمایش دادهها | استفاده از filter() و lambda |
| بررسی شرط | چک کردن x % divisor == 0 |
| ذخیره نتیجه | افزودن اعداد بخشپذیر به divisible_numbers |
| چاپ خروجی | نمایش اعداد با print() |
نکته ۱: شیء پیمایشپذیر در پایتون شیئی است که با کمک حلقهها بتوان بر روی آن پیمایش کرد. برای مثال میتوانیم به لیست یا تاپل و غیره اشاره بکنیم.
نکته ۲: نماد * در دستور print() قبل از نام شیء پیمایشپذیر قرار گرفته است. این نماد برای باز کردن بستهبندی عناصر درون این شیء و نمایش یک به یک آنها به صورت مجزا به کار برده میشود.

بررسی بخش پذیری با استفاده از توابع بازگشتی
توابع بازگشتی به نوعی از توابع گفته میشود که خودشان را برای بررسی نمونه کوچکتری از مسئله فراخوانی میکنند. این توابع به طور معمول آنقدر خودشان را فراخوانی میکنند که به حالت پایهای از مسئله برسند. سپس از این حالت پایه شروع به حل مسئله کرده و قدم به قدم به سمت مسئله اصلی (حالت بزرگتر) بالا میآیند. برای بررسی تکنیک برنامه نویسی توابع بازگشتی در پایتون میتوانید مطلب مربوط به آن را در مجله فرادرس مطالعه کنید.
برای مثال، فرض کنید که لیست 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 تا به انتهای لیستی را که در ورودی دریافت کرده به عنوان پارامتر به خودش ارسال میکند. با این کار، در هر بازگشت، لیست اصلی به اندازه یک خانه کوتاهتر میشود. تا جایی که تابع لیست خالی را به عنوان پارامتر ورودی به خودش ارسال بکند. این حالت، همان حالت پایه و سادهترین صورت مسئله است.
- قطعه قطعه کردن لیست با کد numbers[1:] یعنی زیرمجموعهای از لیست numbers ایجاد کنیم که از عنصر دوم تا انتهای آن را پوشش بدهد.
- در هر بازگشت تابع، اگر عنصر حذف شده از لیست بر عدد مشخص شده 10 بخش پذیر باشد، در خروجی با پیغام مناسب چاپ میشود.
- اگر این عنصر بر عدد 10 بخش پذیر نباشد هم از پیغام مناسبی برای آن استفاده کردهایم. میتوان این کدها را طوری نوشت که فقط اعداد بخش پذیر بر 10 در خروجی چاپ شوند. این عملیات تا زمانی ادامه پیدا میکند که لیست خالی شود.
چطور با کمک فرادرس اجرای پروژه های پایتون را یاد بگیریم؟
فرادرس برای کمک به یادگیری نوشتن و اجرای پروژههای عملی پایتون، مجموعه آموزش حرفهای را تولید و منتشر کرده است. در این مجموعه آموزش، موارد بسیار متنوعی قرار دارند. آموزشهای فرادرس از طراحی بکاند سایت تا توسعه مدلهای هوش مصنوعی و بازیسازی را دربر میگیرد. دانشجویان و افراد علاقهمند به برنامه نویسی، با مشاهده این فیلمها و تمرین همراه با آن میتوانند خودشان را برای دستیابی به موقعیتهای شغلی متنوع آماده کنند. به هر حال برنامه نویسان پایتون باید بتوانند پروژههای خود را بدون خطا و با ترکیب تکنولوژیهای مختلف در این زبان پیادهسازی کنند. کمک گرفتن از فیلمهای پروژهمحور فرادرس یکی از روشهای مؤثر برای کسب تجربه در این زمینه است.
در فهرست زیر، چند مورد از فیلمهای آموزشی پروژهمحور پایتون را معرفی کردهایم.
- فیلم آموزش مدیریت موجودی انبار در پایتون، به صورت پروژه اپلیکیشن گرافیکی سیستم انبارداری
- فیلم آموزش پروژه محور پایتون درباره طراحی ماشین حساب با Python + گواهینامه
- فیلم آموزش پروژه محور پایتون، درباره ساخت بازی حافظه تصویری با کتابخانه Tkinter و Turtle + گواهینامه
- فیلم آموزش ساخت نرم افزارهای گرافیکی دسکتاپ با PySide6 در پایتون به صورت چند پروژه کاربردی
- فیلم آموزش پروژه محور پایتون، درباره مدیریت فایل ها
برای مشاهده فیلمهای بیشتر بر روی این تصویر کلیک کرده و به صفحه اصلی مجموعه آموزشی پروژهمحور پایتون هدایت شوید.

بررسی بخش پذیری در پایتون با کمک List Comprehension
List Comprehension روش کوتاهی برای تعریف لیستهای پایتون است. در این روش میتوانیم عبارت خاصی را بر روی تمام عناصر شیء پیمایشپذیر اعمال کرده و سپس تمام این عناصر را در داخل ساختار لیست ذخیره بکنیم. در ضمن برای فیلتر کردن و گزینش عناصر مناسب ذخیرهسازی در لیست میتوانیم از شرط دلخواهی هم استفاده کنیم.
از List Comprehension میتوانیم برای استفاده بر روی اشیاء پیمایشپذیر مانند لیستی از اعداد صحیح استفاده کنیم. در این صورت کافی است که فقط شرط مورد نظر خود را برای بررسی بخش پذیری عناصر داخل لیست به کار ببریم. برای مثال، عدد مورد نظر خود را در متغیر divisor ذخیره میکنیم. سپس با کمک شرط number % divisor == 0 بخش پذیری number را بر divisor بررسی میکنیم. اگر شرط درست ارزیابی شد، مقدار موجود در متغیر number برای ذخیرهسازی در لیست برگشت داده میشود.
با این روش میتوانیم بر روی هر لیستی پیمایش کنیم. سپس تمام اعداد بخش پذیر بر divisor را از درون این لیست شناسایی کرده و جمعآوری بکنیم.
بعد از اجرای این کدها خروجی زیر تولید شده و در کنسول پایتون نمایش داده میشود.
[10, 40, 50, 60]در فهرست پایین مهمترین نکات کد بالا را توضیح دادهایم.
- ابتدا لیستی از اعداد را در متغیر numbers قرار میدهیم و مقدار مقسومعلیه را در متغیر divisor ذخیره میکنیم.
- سپس با استفاده از List Comprehension، اعدادی را انتخاب میکنیم که باقیمانده تقسیم آنها بر 10 برابر صفر باشد.
- اعداد بخش پذیر در لیست divisible_numbers قرار میگیرند.
- در پایان، لیست اعداد بخش پذیر روی خروجی چاپ میشود.
جمعبندی
در این مطلب از مجله فرادرس روشهای مختلف بررسی بخش پذیری در پایتون را معرفی کردهایم. پایتون، زبان برنامه نویسی بسیار انعطافپذیر و قدرتمندی است. زیرا ابزارهای متنوع و فراوانی در اختیار برنامه نویسان قرار میدهد. برای مثال در حل این مسئله میتوانیم از حلقه for در پایتون استفاده کنیم. استفاده از این حلقه ساده بوده و به راحتی کاربران متوجه روش کار آن میشوند. در روش بعد از تابع filter() استفاده میکنیم. در این روش، مسئله را با کمک رویکرد برنامه نویسی تابعی حل میکنیم.
روش دیگر برای بررسی بخش پذیری، نوشتن تابع بازگشتی مخصوص انجام این کار است. این رویکرد، مناسب حل مسائل خاص است. یعنی مسئلههایی که در آنها برای حل کردن سوالات بزرگ باید مسئله را به بخشهای کوچکتری تجزیه بکنیم. روش بعدی استفاده از تکنیک List Comprehension است. این تکنیک برنامه نویسی از سایر روشها کوتاهتر و پایتونیتر هست.












