کتابخانه Turtle در پایتون

کتابخانه یا library چیست؟کتابخانه یا همان library، مجموعه کدی است که برای انجام کاری مشخص، از قبل نوشته شده و در جایی ذخیره شده‌است، به طوری که هر برنامه‌نویس برای استفاده از کدهای موجود در هر کتابخانه، فقط باید آن‌ها را در برنامه‌ی خود فراخوانی نماید. این کار با نوشتن دستورهای آماده شده در کتابخانه‌ی مورد نظر، در درون کدهای ما صورت می‌گیرد.زبان‌های برنامه‌نویسی مختلف دارای کتابخانه‌های متنوّع و زیاد هستند. در این بین، زبان‌های برنامه‌نویسی JAVA (جاوا)، #C (سی‌شارپ)، ++C (سی‌پلاس‌پلاس)، C (سی)، Python (پایتون) و محیط برنامه نویسی Matlab (متلب)، دارای بیش‌ترین تعداد کتابخانه‌ی کاربردی هستند.کمی تخصّصی‌تر: همانطور که می دانید چرخ در حال حاضر اختراع شده است! بنابراین کسی که در حال اختراع و یا ساخت ماشین است، زمان خود را صرف ساخت مجدد چرخ نمی‌کند، چرخ را به صورت یک ماژول از پیش ساخته شده استفاده می‌کند.انواع کتابخانه‌هاماژول‌ها یا کتابخانه‌هایی که در python نوشته می‌شوند را می‌توان در ۳ قالب زیر دسته‌بندی کرد:کتابخانه‌هایی که توسّط شما ایجاد شده‌اند.کتابخانه‌هایی که توسّط دیگران یا افراد دیگر ایجاد شده‌است. مانند PyPI.برای بررسی بیشتر، توصیه می‌شود به سایت pypi مراجعه کنید.کتابخانه‌هایی که به صورت پیش فرض به همراه پایتون نصب شده‌اند.لیست کتابخانه های استاندارد پایتون ۳&amp;amp;lt;br/&amp;amp;gt;فراخوانی کتابخانه هابرای کتابخانه‌هایی که از قبل در پایتون وجود دارد، کافیست از دستور import به صورت زیر استفاده کنیم:import library-nameبرنامه نویسی شئ گراهمان‌گونه که قبلاً اشاره کردیم ، پایتون یک زبان برنامه نویسی شئ‌گرا است. برنامه‌نویسی شیءگرا (Object-Oriented Programming به‌اختصار: OOP) یک شیوه‌ی برنامه‌نویسی است که ساختار یا بلوک اصلی اجزای آن، شئ‌ها می‌باشند.مثلاً یک دوچرخه را در نظر بگیرید:ترمز یک قسمت از چند قسمت اصلی آن است. هر ترمز، خود دارای خصوصیّات مختلف و رفتارهای متفاوت در حالت فشرده است. هرقطعه به همین شکل دارای ویژگی‌های مخصوص خود است و به تفکیک قابل پیگیری و بررسی!در شئ‌گرایی در مورد هر شئ این خصوصیّات و رفتارها بررسی و تغییر می‌کند… که بعداً به آن مفصّلاً خواهیم پرداخت.turtle libraryکتابخانه turtle یا همان لاک‌پشت یک کتابخانه گرافیکی است. یعنی این کتابخانه به ما اجازه‌ی ترسیم خطوط، اَشکال و… در رنگ‌ها و اندازه‌های مختلف را می‌دهد.به زبان ساده ترturtle یک فِلِش روی صفحه است که شما می توانید آنرا کنترل کنید و با جابجا کردن آن اَشکال مختلف رسم کنید. دقیقا مثل ماژیکی که روی تخته وایت بورد آن را هدایت و رسم می‌کنیم.همان‌طور که قبلا گفتیم برای فراخوانی یک کتابخانه از دستور import استفاده می کنیمimport turtleبرای علاقه مندان : لیست کامل دستورات TurtleIDLEقبلاً اشاره شد که برای برنامه نویسی به IDE نیاز داریم که ما از محیط پیش فرض پایتون یعنی IDLE استفاده می‌کنیم .استفاده از این نرم افزار در لینوکس و ویندوز به یک صورت است . (برای اجرای آن از طریق ویندوز باید نام IDLE را در منوی استارت جست و جو کنیم )شروع کار : جابجایی در Turtleشما باید صفحه برنامه را مثل یک محور مختصات در نظر بگیرید .برای انواع جابجایی ها ۲ جهت اصلی داریم:forward : جلو : محور xbackward : عقب : محور x-برای اینکه برنامه ای بنویسیم که پیکان را ۵۰ واحد به جلو ببرد، بعد از import کردن turtle ، دستور زیر را وارد می‌کنیم :turtle.forward(50)حرکت با زاویهدر کتابخانه turtle، لاک پشت ما همیشه در جهت جلو یا عقب فلش حرکت می‌کند.امّا اگر بخواهیم آن‌را به راست یا چپ هدایت کنیم چه باید بکنیم؟ برای این کار ابتدا زاویه حرکت بعدی را مشخص می‌کنیم:turtle.right(50)همان‌طور که در شکل بالا می‌بینید، جهت نوک پیکان 50 درجه چرخیده است و هیچ جابجایی رخ نداده است.import turtle turtle.forward(50) turtle.right(30) turtle.forward(40)در برنامه‌ی بالا بعد از چرخش نوک پیکان، آن را 40 واحد به جلو بردیم.برای چرخش به اندازه‌ی زاویه‌ی‌مشخّص شده به سمت راست یا چپ باید به جهت و مقدار زاویه توجّه نمود. برای مثال در شکل روبرو ۳۵ درجه چرخیدن به چپ دقیقاً مانند ۳۲۵ درجه گردش از سمت راست است…تغییرات پیکان۱) تغییر شکل پیکانشما می‌توانید به جای فِلِش، از شکل‌های دیگری هم استفاده کنید.شکل های موجود در کتابخانه :square: مربّعarrow: پیکانcircle: دایرهturtle: لاک پشتtriangle: مثلّثclassic: شکل پیش فرضبرای تغییر آن از دستور زیر استفاده می کنیم :turtle.shape(&quotname&quot)مثال:turtle.shape(&quotturtle&quot)۲) تغییر رنگ پیکانیکی دیگر از امکانات کتابخانه، تغییر رنگ فِلِش‌ها می‌باشد. رنگ پیکان ها در دو دسته قرار می‌گیرند.رنگ قاب یا دور پیکان (pencolor)رنگ درون پیکان (fillcolor)در شکل زیر، رنگ دور پیکان سبز و رنگ درون آن قرمز است.? برای این کار از دستور زیر استفاده می‌کنیم:برای رنگ درون – fillcolorturtle.fillcolor(&quotred&quot)برای رنگ حاشیه – pencolorturtle.pencolor(&quotgreen&quot)۳) تغییر اندازه پیکانشما می توانید با استفاده از دستور زیر ، اندازه فِلِش را تغییر دهید .turtle.shapesize(3)تغییر اندازه‌ی خط۱) ضخامت خطمی‌توانید ضخامت خط‌هایی که لاک پشت رسم می‌کند را تغییر دهید:turtle.pensize(4)۲) رنگی کردن خطقبل‌تر به دستور pencolor اشاره کردیم. در اصل تمام وظایف این دستور به رنگ کردن دور شکل محدود نمی‌شود، بلکه این دستور خط را هم رنگی می‌کند.import turtle turtle.pensize(4) turtle.pencolor(&quotred&quot) turtle.shapesize(1.25) turtle.forward(70)اگر خواستید خطّی را نامرئی کنید، یکی از راه ها این است که …برنامه فوق حاصل دستور بالا است.۳) تغییر سرعت خطسرعت حرکت قلم و کشیدن خط روی صفحه، عددی بین ۰ و ۱۰ است . در اینجا سرعت صفر به این معنا است که هیچ زمانی صرف کشیدن خط روی صفحه نمی شود و خط یک باره روی صفخه رسم می شود . همچنین سرعت ۱ آهسته ترین سرعت و سرعت ۱۰ سریع ترین است .turtle.speed(2)stampبرخی مواقع لازم است لاک پشت در طول حرکت، از خود ردّی به جای بگذارد. در این صورت از دستور stamp به شکل زیر استفاده می‌کنیم:turtle.forward(100) turtle.stamp() turtle.forward(100)رسم شکل‌هافکر می‌کنید با دستورات بالا می‌توان یک دایره کشید؟پاسخ شما مثبت است!احتمالاً می‌پرسید چطوری؟ کار سختی نیست! فقط باید دایره را نقطه به نقطه رسم نمود…بد نیست به عنوان یک خودآزمایی این کار را انجام دهید…به نظر کار طاقت فرسایی است. یکی از مزایای زبان‌های برنامه‌نویسی این است که ما می‌توانیم به بسیاری از کارها سرعت دهیم. بعداً بیشتر به آن خواهیم پرداخت.دایرهبرای رسم دایره درون محیط Turtle از دستور زیر استفاده می کنیم :turtle.circle(90)به این اَشکال Preset گفته می‌شود. Preset به معنی از قبل تنظیم‌شده یا پیش فرض است، یعنی مقادیر، داده‌ها و یا دستوراتی که از قبل به برنامه داده شده و برای استفاده نیاز به تعریف آن نیست.نقطهبرای رسم یک نقطه (نقطه‌ها تو پر ولی دایره‌ها توخالی هستند) باید از دستور زیر استفاده کرد:turtle.dot(20)رنگ زمینهشیوه تغییر رنگ قلم را آموختیم و با آن خطوط رنگی رسم کردیم. حال می‌خواهیم رنگ زمینه را تغییر دهیم. با دستور زیر این کار قابل انجام است:turtle.bgcolor(&quotgreen&quot)حال بررسی کنید که به غیر از سه رنگ اصلی Red , Blue , Green چه رنگ‌های دیگری را می‌توان به عنوان رنگ زمینه قرار داد؟عبارت bgcolor در اصل مخفّف background color (رنگ پس‌زمینه) است.عنوان (Title)بالای مرورگر خود را نگاه کنید. جایی که Tab های مختلف باز است. بالای زبانه‌ای که الان باز است، چه متنی نوشته شده؟ مثلاً اگر وارد سایت Google شویم ، عنوان بالای زبانه به شکل زیر ظاهر می‌شود:به نوشته Google در بالای صفحه ، Title (عنوان) گفته می‌شود.شما می‌توانید برای برنامه‌های نوشته شده در Turtle هم Title تعیین کنید.turtle.title(&quotMy Turtle Program&quot)جابجایی‌هادر جلسه پیش با نوعی از جابجایی‌ها ( forward , backward , … ) آشنا شدیم.نوع دیگری از جابجایی‌ها، با استفاده از دستور go to صورت می‌گیرد. این دستور نقطه‌ای خاص از صفحه نمایش را در نظر می‌گیرد و به لاک پشت عزیز دستور می‌دهد که به آن نقطه برود.turtle.goto(x,y)عدد اول بیانگر مقدار جابجایی در جهت محور X و عدد دوم مقدار جابجایی در جهت محور Y می باشدتوجّه داشته باشید که این دستور، پیکان را در همان جهت که بود به مشخصات تعیین شده می‌فرستد و زاویه نوک پیکان را تغییر نمی‌دهد.turtle.goto(50,40)برای بازگردادن پیکان به نقطه اوّلیّه از دستور زیر استفاده می‌کنیم.turtle.home()خلاصه‌نویسی دستورات turtleاگر شما در حال نوشتن یک برنامه بلند در Turtle باشید، متوجّه می‌شوید که برخی از عبارات بسیار بلند و تایپ نمودن آن‌ها زمان‌گیر است. شما باید ابتدای هر دستور، عبارت turtle را بنویسید و این کار بسیار زمان‌بَر است.برای این‌که بتوانیم در زمان صرفه جویی کنیم، برخی از دستورات را خلاصه می‌کنیم. بعضی از این خلاصه‌ها در خود کتابخانه‌ی turtle موجود است البته در بعضی موارد می‌توانیم خودمان آن خلاصه‌سازی را تعریف ‌کنیم.Turtle ( صدا کردن لاکی جون! )برای خلاصه کردن عبارت turtle می‌توانید حرف t را برابر با Turtle قرار بدهید .t = turtle.Turtle() t.forward(10)جابجایی ها ( پیش فرض )برای کوتاه کردن دستورات جابجایی که در جلسه قبل استفاده کردیم، می‌توان از دستورات زیر استفاده کرد:forward = fdbackward = back = bkright = rtleft = ltمثال:t.rt (90) t.fd (100) t.rt (90) t.fd (100) t.rt (90) t.fd (100)رنگ کردن داخل شکلفکر کنید که از شما خواسته شود، یک مربّع تو پر رسم کنید. مراحل کار چیست؟ابتدا اضلاع مربّع را رسم می‌کنید. سپس داخل آن‌را رنگ می‌نمایید. همین ایده در برنامه نویسی با turtle هم قابل انجام است. اوّل باید به ‌turtle بگویید که من قصد دارم این شکل را در پایان رنگ کنی. سپس شروع به رسم شکل کنید.در آخر هم به او بگویید که شکل تمام و آماده‌ی رنگ آمیزی شده‌است.شروع رنگ آمیزی با دستور :turtle.begin_fill()پایان رنگ آمیزی با :turtle.end_fill()توجه داشته باشید حتما قبل از اینکه شروع به رسم شکل کنید با دستور اول به برنامه بگویید که قصد رنگ‌آمیزی دارید، و پس از رسم شکل با دستور دوم به برنامه بگویید که رنگ‌آمیزی تمام شده تا برنامه شکل شما را رنگ نماید.نوشتن کد ها در یک خطاگر کد‌های قبلی را مرور کنید، به خاطر می‌آورید که برخی از کد ها با Pen شروع می‌شد مثل :Pensize , Penshape , Pencolorتمامی این دستورات مربوط به pen هستند . شما می توانید دستوراتی که مربوط به آن هستند را به صورت زیر خلاصه کنید:شکل معمولی:t.pencolor(&quotpurple&quot) t.fillcolor(&quotorange&quot) t.pensize(10) t.speed(9)شکل خلاصه شده:t.pen(pencolor=&quotpurple&quot, fillcolor=&quotorange&quot, pensize=10, speed=9)برنامه زیر با استفاده از کتابخانه turtle و دستورات پایتون نوشته شده است. شما هم برنامه را بنویسید و اجرا کنید تا نتیجه را ببینید. سپس مقادیر آن را تغییر دهید و از نتایج آن لذت ببرید.Sources:- https://asrsite.ir/python/python_03/- https://asrsite.ir/python/python_04/