در ادامه آموزش گسترش اندیشه پویا:
تقسیم صحیح در پایتون همانند تقسیم استاندارد است. با این تفاوت که مقدار اعشار پاسخ نهایی حذف میشود. برای مثال نتیجه عبارت3//2برابر با1است. در این مدل تقسیم، بدون توجه به نوع عملوندها در خروجی همیشه عددی کامل و بدون اعشار برگشت داده میشود. خودپایتون، بخش اعشاری پاسخ را حذف میکند. این مدل تقسیم به طور خاص در زمان اجرای وظایفی مانند «صفحهبندی» (Pagination)، تکهتکه کردنمجموعههای دادهو غیره به کار برده میشود. تقسیم صحیح در زبان برنامه نویسی پایتون، مانند همان تقسیم معمولی است، با این تفاوت که همیشه خروجی را به سمت بزگترین عدد صحیح کوچکتر از جواب گرد میکند. برای اجرای این تقسیم از عملگر // در پایتون استفاده میکنیم.
- تفاوت بین تقسیم صحیح در پایتون و تقسیم استاندارد را متوجه میشوید.با عملگر // برای انجام تقسیم صحیح در پایتون آشنا میشوید.تاثیر استفاده از عملگر // را بر روی اعداد مثبت و منفی یاد میگیرید.تفاوت اجرای تقسیم صحیح در پایتون بر روی اعداد زوج و فرد را میآموزید.با کاربرد تقسیم صحیح برای تکهتکه کردن لیستها و آرایهها آشنا میشوید.روش استفاده از تقسیم صحیح را در پروژههای واقعی یاد میگیرید.
در این مطلب از مجله مفهوم تقسیم صحیح در پایتون را بررسی میکنیم. عملگر//یا «Double Slash» به عنوان علامت تقسیم صحیح شناخته میشود. این عملگر را میتوان همزمان بر روی اعداد صحیح و اعشاری به کار برد. بعد از بررسی این نوع تقسیم، آن را با تقسیم استاندارد مقایسه میکنیم. سپس چند مورد از سناریوهای مختلف کار با تقسیم صحیح را همراه با مثالهای کدنویسی شده بررسی میکنیم.
تقسیم صحیح در پایتون چیست؟
تقسیم صحیح در پایتون عملیاتی است که در طی آن دو عدد بر یکدیگر تقسیم میشوند. سپس بخش اعشاری پاسخ از آن حذف شده و فقط قسمت صحیح برگشت داده میشود. اگر هر دو عملوند این عملگر از نوع «Integer» یا عدد صحیح باشند، در خروجی هم عدد صحیح برگردانده میشود. اما اگر حداقل یکی از این عملوندها از نوع «Float» باشند، خروجی هم مقدار با نوع Float خواهد بود. برای اجرای تقسیم صحیح از عملگر//در پایتون استفاده میکنیم.
در کادر زیر، نمونه سادهای از اجرای عملیات تقسیم صحیح را پیادهسازی کردهایم.
بعد از اجرای تقسیم بالا در خروجی عدد3نمایش داده میشود.
اگر از تقسیم استاندار بر روی اعداد7و2استفاده میکردیم، عدد3.5در خروجی به عنوان پاسخ نمایش داده میشد. اما استفاده از علامت تقسیم صحیح باعث شده است که مقدار اعشار بعد از نقطه حذف شود. یکی از مهمترین کاربردهای این عملیات آن است که بدون نوشتن تابع خاصی میتوان اعداد مختلف را به سادگی به سمت پایین گرد کرد.
در عملیات بالا عدد7مقسوم و عدد2مقسومعلیه هستند. خروجی بدست آمده از تقسیم صحیح از عددی از نوع Integer است. در جدول پایین به صورت خلاصه مهمترین نکات مطرح شده در این بخش را نوشتهایم.
چطور عملیات تقسیم صحیح در پایتون را انجام بدهیم؟
بهترین روش برای اجرای تقسیم صحیح در پایتون، استفاده از دو عملگر اسلش به صورت//در کنار هم است. این دو در کنار هم به عنوان عملگر یا علامت تقسیم صحیح شناخته میشوند. در کادر زیر، چند مثال ساده را برای اجرای تقسیم صحیح نوشتهایم.
بعد از اجرای عملیات بالا اعداد زیر در خروجی نمایش داده میشوند.
در این تقسیم میتوانیم از اعدادی با نوع دادهFloat در پایتوننیز به عنوان عملوند استفاده کنیم.
با اینکه نتیجه تقسیم از نوع «عدد با ممیز شناور» است اما باز هم مقدار اعشاری آن حذف شده. در واقع، تقسیم صحیح روی همه نوعهای عددی به شکل یکسانی عمل میکند. یعنی اینکه اگر عدد Integer به عدد Integer تقسیم شود، خروجی هم از نوع Integer خواهد بود. اما اگر یکی از عملوندها از نوع Float باشد خروجی نیز از نوع Float است. اما این خروجی هم هیچ مقدار اعشاری ندارد. در تقسیم بالا خروجی برابر با5.0است. وجود0بعد از علامت ممیز شناور (نقطه.) یعنی آن که این داده از نوع Float است. اما مقدار اعشاری آن برابر با0قرار داده میشود.
اگر در برنامههای نوشته شده به اعداد دقیق و بدون اعشار نیاز داشته باشیم، باید از تقسیم صحیح در محاسباتمان استفاده کنیم. برای مثال شاید سعی کنیم عناصر را به صورت برابر بین کاربران تقسیم کنیم. یا اینکه تعداد ردیفهای نمایش داده شده در هر صفحه را مشخص کنیم. در چنین پروژههایی امکان استفاده از مقدار اعشاری در پاسخ وجود ندارد.
تا به این قسمت از مطلب، به شکل مختصر و کامل با عملیات تقسیم صحیح در پایتون و عملگر مورد استفاده برای آن آشنا شدهاید. در ادامه نکات بیشتری را با کمک مثالهای کدنویسی شده درباره این عملیات بررسی میکنیم. در صورت تمایل به مطالعه مطالبی مانند این مورد، پیشنهاد میکنیم که حتما اپلیکیشن مجله را بر روی دستگاههای همراه خود نصب کنید.
براینصب اپلیکیشنرایگانمجله کلیک کنید.
فیلم های آموزش های پایتون برای نوجوانان
زبان قدرتمند، انعطافپذیر و همه کاره پایتون در حال حاضر یکی از مشهورترین زبانهای برنامهنویسی جهان است. در نتیجه منابع آموزشی فراوان و گوناگونی برای آن تولید شدهاند. افراد علاقهمند به یادگیری پایتون به خصوص نوجوانان میتوانند از تمام منابع در دسترس کمک بگیرند. برای مثال میتوان به کلاسهای آنلاین و حضوری، کتاب و فیلمهای آموزشی اشاره کرد. لازم به ذکر است که فیلمهای آموزشی نسبت به سایر منابع از امتیازات بیشتری برخوردار هستند. هم به طور تخصصی فیلمهایی خوبی برای کمک به یادگیری پایتون توسط نوجوانان تولید کرده است.
بر اثر سالها تلاش و تجربه به یکی از بهترین تولیدکنندگان منابع آموزش زبان پایتون تبدیل شده است. برای شروع آموزش این زبان برنامهنویسی، میتوان به مجموعه فیلمهای آموزش پایتون برای نوجوانان به عنوان یکی از بهترین گزینهها اشاره کرد. گزینهی مناسب دیگری که با هدف آموزش پایتون برای افراد مبتدی، تهیه شده، فیلمآموزشرایگانبرنامه نویسی سریع و آسان پایتون در ۱۴۰ دقیقهاز است. مجموعه آموزشی را هم با هدف کمک به یادگیری پایتون توسط نوجوانان جمعآوری کرده است.
در فهرست زیر، چند مورد از فیلمهای این مجموعه آموزشی را معرفی کردهایم. برای مشاهده فیلمهای بیشتر میتوانید بر روی تصویر بالا کلیک کنید.
- فیلم آموزش پایتون گرافیکی، معرفی رابط های گرافیکی پایتون + گواهینامهفیلم آموزش برنامه نویسی پایتون ویژه نوجوانان، بخش دومفیلم آموزش طراحی رابط کاربری گرافیکی GUI با کتابخانه Tkinter در پایتون + گواهینامهفیلم آموزش برنامه نویسی پایتون ویژه نوجوانان، بخش یکم + گواهینامهفیلم آموزش رابط گرافیکی PySide2 در Python – تکمیلی
در بخش بعد، تقسیم صحیح پایتون را با تقسیم استاندار این زبان مقایسه میکنیم.
مقایسه علامت تقسیم صحیح با تقسیم استاندارد
برنامه نویسان پایتون لازم است که تفاوت بین تقسیم استاندارد با عملگر/را با علامت تقسیم صحیح//بلد باشند.
در کادر زیر با کمک مثال سادهای عملکرد این دو عملگر را مقایسه کردهایم.
خروجی تقسیم استاندار در پایتون همیشه از نوع Float است. در حالی که تقسیم صحیح، بخش اعشاری پاسخ را حذف میکند.
به یاد داشته باشید که عملیات تقسیم صحیح، نتیجه را به سمت «منفی بینهایت» گرد میکند. یعنی اینکه رفتار این عملگر در مقابل اعداد منفی با اعداد مثبت در ظاهر تفاوت دارد. برای درک بهتر این مسئله به مثال پایین دقت کنید.
بعد از اجرای کد بالا مقدار-4در خروجی به عنوان پاسخ نمایش داده میشود. باید به این روش تقسیم توجه کنیم. تصور اینکه تقسیم صحیح اعداد را به سمت صفر گرد میکند، اشتباه است.
تقسیم صحیح در پایتون با اعداد منفی
عملگر تقسیم صحیح، رفتار جالبی در مقابل عملوندهای منفی از خودش نشان میدهد. در کادر پایین دو مورد از این نوع تقسیم را اجرا کردهایم.
در هر دو تقسیم، پایتون مقدار جواب را به سمت بزرگترین عدد صحیح کوچک گرد میکند. یعنی عددی که منفیتر است. رفتار پایتون در زمان اجرای تقسیم صحیح بر روی اعداد منفی با زبانهای دیگر مثلجاوا اسکریپتمتفاوت است. بنابراین لازم است توسعهدهندگان در زمان انتقال منطق برنامههای خود از زبانی به زبان دیگر به این مسائل دقت بکنند.
تقسیم صحیح در کنار حلقههای پایتون
بیشتر اوقات برای جدا کردن تکههای مختلف اشیاه پیمایشپذیر از عملیات تقسیم صحیح در حلقههای پایتون استفاده میشود. در اجرای سایر عملیات مانند موارد زیر هم میتوان از ترکیب تقسیم صحیح با حلقهها در پایتون کمک گرفت.
- محاسبه اندیس میانهتعریف گام برای پیمایشو غیره
البته در استفاده ازحلقههای پایتوننکات بسیار ریز و فنی متنوعی وجود دارند. برنامه نویسان پایتون باید روش کار با این ابزارهای بسیار کاربردی را بلد باشند. در صورت نیاز به کسب اطلاعات بیشتر درباره این ساختارهای جذاب، پیشنهاد میکنیم که مطلب مربوط به آن را در مجله مطالعه کنید.
برای مثال، در زمان محاسبه مقدار میانه در الگوریتمجستوجوی باینری، بهترین روش به کار بردن تقسیم صحیح است.
با کمک تقسیم صحیح مطمئن میشویم که اندیسها به صورت درست و دقیق محاسبه شدهاند. در ضمن با این روش از بروز خطاهای مربوط به گرد کردن اعداد اعشار هم پیشگیری میکنیم.
از تقسیم صحیح میتوانیم در حلقههای مبتنی بر محدوده هم استفاده کنیم. یعنی اینکه فرض کنیم میخواهیم نیمی از اندازهلیسترا پیمایش کنیم. اگر اندازه لیست، فرد باشد نتیجه تقسیم بر دو کردن این مقدار، عدد اعشاری است. این مسئله شاید باعث بروز خطا در زمان پیمایش بشود. اما با کمک تقسیم صحیح از ظهور بخش اعشاری جلوگیری میکنیم.
در واقع با کمک این عملگر بدون نیاز به استفاده از کتابخانههای ریاضی خارجی میتوانیمآرایههارا به دو بخش تقریبا مساوی تقسیم بکنیم.
مثالهای از کابرد تقسیم صحیح در پروژههای واقعی
این عملیات کاربردهای خیلی زیادی دارد. در این قسمت از مطلب دو مورد از آنها را معرفی میکنیم.
- «صفحهبندی» (Pagination)«قطعهبندی» (Chunking) کردن دادهها
برای نمونه، وظیفهای مانند «صفحهبندی» (Pagination) در پروژههای مربوط به طراحی سایت استفاده میشود. در صورت تمایل به یادگیری طراحی سایت با پایتون پیشنهاد میکنیم که فیلمآموزش پروژه محور «جنگو» (Django)، درباره طراحی سایت خبریرا در مشاهده بکنید. به منظور کمک به مخاطبان مجله، لینک دسترسی مستقیم به این آموزش در پایین نیز قرار داده شده است.
صفحهبندی، کاربرد بسیار گستردهای دارد. از این مفهوم در نمایش محتوای وبسایتها، حجم انبوه داده و غیره استفاده میشود. از تقسیم صحیح در زمان صفحه بندی دادهها و صفحات وبسایتها و غیره استفاده میکنیم.
با اضافه کردن دستورitems_per_page - 1قبل از اعمال تقسیم صحیح میتوانیم از اجرای درست صفحهبندی مطمئن شویم.
یکی دیگر از کاربردهای رایج عملیات تقسیم صحیح در پایتون مربوط به قطعهبندی مجموعههای داده است. البته کد زیر با فرض این نوشته شده است که متغیرdataبه دیتاست مشخصی اشاره میکند.
بعد از اجرای عملیات بالا میتوانیم تعداد قطعات را هم محاسبه کنیم.
با این تکنیک به راحتی میتوانید زیرمجموعههایی با اندازه ثابت تعریف کنید.
کار با لیستها و اندیسگذاری
یکی دیگر از رایجترین کاربردهای تقسیم صحیح در پایتون مربوط به محاسبه اندیسها در زمان کار با لیست است.
تکنیک بالا را میتوان بر روی لیستهایی با اندازه فرد هم پیادهسازی کرد. با کمک این روش، اندیس عنصر میانه در لیست به راحتی به دست میآید.
با کمک تقسیم صحیح میتوانیم برای اجرای درست و خودکار منطقهای تکرارشونده، توابع کاربردی تعریف کنیم. برای مثال، تابعی را در نظر بگیرید که وظیفه آن تقسیم کردن آرایهها از وسط به دو بخش است.
یا حتی توابع پیچیدهتری که برای تقسیم یکنواخت آرایهها به کار برده میشوند.
در تابع بالا از علامت تقسیم صحیح در پایتون برای قطعهقطعه کردن آرایهها به اندازههای تقریبا برابر استفاده میکنیم.
تقسیم صحیح برای تبدیل زمان
برای مثال در برنامه زیر، میخواهیم ثانیهها را به دقیقه تبدیل کنیم.تبدیل ثانیه به ساعت و دقیقه در پایتونیکی از عملیات بسیار رایج است.
در برنامه بالا، علامت تقسیم صحیح پایتون، ثانیههای باقیمانده را دور میریزد. یعنی اینکه در خروجی فقط دقیقهها را برمیگرداند.
تفاوت تقسیم صحیح با سایر روشهای تقسیم
در این بخش از مطلب، رفتارهایتقسیمهای مختلف در پایتونرا به شکل خلاصه بررسی کردهایم. اول از همه باید با انواع تقسیم آشنا بشویم.
- تقسیم استاندارد با علامت «/»:این تقسیم همیشه در خروجی دادهای از نوع فلوت برمیگرداند.تقسیم صحیح با علامت «//»:خروجی این تقسیم همیشه عددی کامل و بدون مقدار اعشار است.تقسیم ماژولو با عملگر «/%»:این عملگر، مقدار باقیمانده عملیات تقسیم صحیح را برمیگرداند.
در کادر پایین، عملیات تقسیم صحیح را در کنارعملگر ماژولوبه کار بردهایم.
این تکنیک در زمان بازسازی اعداد تقسیم شده یا تایید منطق اجرای عملیات در زمان پاسخ دادن به سوالات برنامه نویسی به کار برده میشود.
در پایتون، تابعی به نامdivmod()تعریف شده است. این تابع مقدار باقیمانده و خارج قسمت را به صورت همزمان و در یک مرحله برمیگرداند. برای نمونه، خروجی تابعdivmod(7, 2)به شکل تاپل(3, 1)است. در اینتاپل، عنصر اول آن خارج قسمت و عنصر دوم آن باقیمانده است.
رفتار نوع در تقسیم صحیح
نتیجه تقسیم صحیح با نوع داده عملوندهای آن ارتباط مستقیم دارد. برای مثال در کادر زیر از عملوندهایی با نوع صحیح و اعشاری استفاده کردهایم.
خروجی عملیات بالا برابر با4بوده و از نوع Integer است. خروجی عملیات پایین به صورت4.0نمایش داده میشود. این خروجی از نوع Float است. یعنی اینکه اگر حتی یکی از عملگرها هم مقدار اعشار داشته باشند، در خروجی عددی با نوع Float برگشت داده میشود. در غیر این صورت، خروجی همیشه از نوع Integer است. در زمان نوشتن توابعی که به نوع داده خروجی وابسته هستند، باید به این تفاوت توجه بکنیم.
شاید در زمان تقسیم صحیح نخواهیم که از عملگر//استفاده کنیم. در این صورت میتوانیم از تابعmath.floor()کمک بگیریم. این تابع (همین طور که از نام آن مشخص است) در داخل ماژولmath در پایتونتعبیه شده و میتواند هر عددی را گرد بکند. خروجی تابعmath.floor()بزرگترین عدد کوچکتر مساوی عدد ورودی است.
بعد از اجرای کدهای بالا، خروجی زیر در کنسول پایتون نمایش داده میشود.
فیلم آموزش های پیشرفته پایتون در
با صرف زمان و تمرکز بر روی یادگیری مهارتهای پیشرفته پایتون، میتوانید موقعیتهای شغلی متنوعی مانندطراحی سایت، طراحی نرمافزار،بازی سازی، هوش مصنوعی و غیره را بدست بیاورید. البته توجه کنید، با اینکه مراحل اولیه فرایند یادگیری پایتون را به شکل ساده و سریع میآموزید، اما برای یادگیری تکنیکهای پیشرفتهتر به کمک و منابع بهتری نیاز دارید. فیلمهای آموزشی شامل نکات مفیدی برای دانشجویان هستند. حتی اشخاص کارجو و برنامه نویسان حرفهای نیز میتوانند از محتوای این فیلمها کمک بگیرند.
در پایین، چند مورد از فیلمهای آموزشی مربوط به تکنیکهای پیشرفته را در پایتون معرفی کردهایم.
- فیلم آموزش جنگو، فریمورک تحت وب Django با Python + گواهینامهفیلم آموزش بازی سازی در پایتون با کتابخانه Pygame + گواهینامهفیلم آموزش الگوهای طراحی یا دیزاین پترن در پایتونفیلم آموزش «الستیک سرچ» (ElasticsSearch) در پایتون همراه با پروژه عملی ساخت برنامه Searchفیلم آموزش پردازش موازی در پایتون، بررسی روش کار با کتابخانه Thread و Async IO
در صورت تمایل با کلیک بر روی تصویر زیر به صفحه اصلی مجموعه فیلمهای آموزش برنامه نویسی پایتون هدایت شده و فیلمهای بیشتری را مشاهده کنید.
در بخش بعد، روش اجرای تقسیم صحیح را بر روی آرایههای NumPy بررسی میکنیم.
اجرای تقسیم صحیح با کمک NumPy
در صورت استفاده ازکتابخانه NumPyهم میتوانید با همان روش سابق عملگر//را به کار ببرید.
بعد از اجرای کدهای بالا، خروجی زیر در کنسول پایتون نمایش داده میشود.
با تکنیک بالا میتوانید عملیات تقسیم صحیح را به صورت عنصر به عنصر بر روی تمام مقادیر درون آرایه به کار ببرید. در این روش برای انجام محاسبات بر روی آرایههای پایتون، بسیار کارآمد و مفید است.
در این مطلب از مجله با علامت تقسیم صحیح، روش استفاده و کاربرد این ابزار در پایتون آشنا شدیم. عملگر تقسیم صحیح در پایتون، روش سر راست و کارآمدی برای تقسیم اعداد و گرد کردن آنها فراهم کرده است. این عملیات نقش بسیار مهمی در الگوریتمها، پیادهسازی منطقهای مبتنی بر حلقه، صفحهبندی و کار با آرایهها دارد. عملگر تقسیم صحیح//تمام پاسخها را به سمت منفی بینهایت گرد میکند. این قانون حتی در زمان کار با اعداد منفی هم رعایت میشود. در نتیجه با عملیات مربوط به گردن کردن ساده نتیجه محاسبات به عدد صحیح تفاوت دارد.
در زمان انتخاب بین تقسیم استاندارد و تقسیم صحیح باید به این فکر کنید که آیا به بخش اعشاری پاسخ نیاز دارید یا فقط مقدار صحیح آن را به کار خواهید برد. از تقسیم صحیح در پایتون برای سناریوهایی استفاده کنید که در آنها به خروجیهای Integer و قابل پیشبینی نیاز هست. برای مثال میتوان به محاسبه اندیسها، قطعه بندی ساختارهای داده مانند لیست، آرایه و دیتاستها یا قالببندی صفحات برای نمایش داده اشاره کرد.
- مجموعه آموزش برنامه نویسی پایتون Python – مقدماتی تا پیشرفتهآموزش پروژه محور پایتون – حل ۲۰ مسئله کاربردی در برنامه نویسی + گواهینامهمجموعه آموزش پایتون رایگان – مقدماتی تا پیشرفتهعملگرهای ریاضی در پایتون – به زبان ساده با مثال و کداولویت عملگرها در پایتون – تقدم و ترتیب عملگرها به زبان ساده
گسترش اندیشه پویا از سال ۱۳۸۲ در حوزه مشاوره فناوری اطلاعات و آموزش تخصصی فعالیت میکند. برای دریافت مشاوره با ما تماس بگیرید.