عملکرد کتابخانه Turtle در پایتون و کاربرد های آن

عملکرد کتابخانه Turtle در پایتون و کاربرد های آن

تاریخ انتشار: ۱۰ آبان ۱۴۰۳
آخرین بروزرسانی: ۰۹ آبان ۱۴۰۳
زمان مطالعه: دقیقه
۰
(۰)

کتابخانه Turtle در پایتون ماژولی از پیش نصب‌شده (Pre-installed) است. Turtle درواقع یک بوم مجازی است که برنامه‌نویس را قادر به ترسیم گرافیک، تصاویر و بازی‌ها می‌کند. با کمک کتابخانه Turtle پایتون، می‌توانیم خروجی کدها را به‌صورت تصویری ببینیم. 

این کتابخانه جزئیات دیگری هم دارد؛ مانند کاربردهای آن، نصب و راه‌اندازی، مفاهیم، شروع کار با این کتابخانه و غیره. بنابراین در این مقاله همراه ما باشید تا عنوان‌های دیگری را زیر ذره‌بین قرار دهیم و با عملکرد و جزئیات این کتابخانه بیشتر آشنا شویم.

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

کتابخانه Turtle در پایتون یک ماژول گرافیکی محبوب است که برای ایجاد نقشه‌ها و تصاویر استفاده می‌شود. واژه “Turtle” به‌معنی «لاک‌پشت» است و در برخی منابع، از کتابخانه Turtle با نام «کتابخانه لاک‌پشت» هم یاد می‌شود.

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

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

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

مهم‌ترین کاربردهای کتابخانه Turtle در پایتون را در لیست زیر خلاصه کرده‌ایم:

  • ترسیم نقش‌های ساده 
  • ارائه خروجی گرافیکی سریع
  • ترسیم اشکال و الگوهای مختلف
  • درک اثرات کد به‌واسطه مشاهده فوری خروجی
  • امکان کنترل حرکات نشانه‌گر و ترسیم به‌شیوه دل‌خواه
  • کاربرد گسترده به‌عنوان ابزار آموزشی توسط مربیان برنامه‌نویسی
  • درک سریع و شفاف مفاهیم برنامه‌نویسی 
  • به تصویر کشیدن نحوه عملکرد الگوریتم‌های خاص

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

مفاهیم مرتبط با کتابخانه Turtle در پایتون شامل چند مورد می‌شود که در ادامه این بخش، هرکدام را توضیح خواهیم داد.

کتابخانه در برنامه‌نویسی

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

Turtle

همان نشانه‌گر (لاک‌پشتی) که روی صفحه حرکت می‌کند.

Screen

پنجره‌ای که لاک‌پشت در آن حرکت کرده و نقاشی می‌کشد.

Commands

دستورالعمل‌هایی که به لاک‌پشت برای حرکت، چرخش و کشیدن تصویر داده می‌شود.

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

 

متد پارامتر توضیحات مربوط به متد
Turtle() یک نشانه‌گر (لاک‌پشت) جدید ایجاد و برمی‌گرداند.
forward() میزان لاک‌پشت را با مقدار مشخص و روبه‌ جلو حرکت می‌دهد.
backward() میزان لاک‌‌پشت را با مقدار مشخص به عقب حرکت می‌دهد.
right() زاویه لاک‌پشت را در جهت عقربه‌های ساعت می‌چرخاند.
left() زاویه لاک‌پشت را خلاف جهت عقربه‎های ساعت می‌چرخاند.
penup() قلم طراحی را برمی‌دارد.
pendown() قلم طراحی را زمین می‌گذارد.
up() قلم طراحی را برمی‌دارد.
down() قلم طراحی را زمین می‌گذارد.
color() نام رنگ رنگ قلم را تغییر می‌دهد.
fillcolor() نام رنگ رنگ قلمی که برای پر کردن چندضلعی استفاده می‌شود را تغییر می‌دهد.
heading() عنوان فعلی لاک‌پشت را برمی‌گرداند.
position() موقعیت فعلی لاک‌پشت را برمی‌گرداند.
goto() x, y لاک‌پشت را به موقعیت x,y منتقل می‌کند.
begin_fill() نقطه شروع یک چندضلعی پرشده را به‌خاطر می‌سپارد.
end_fill() چندضلعی را می‌بندد و با رنگ فعلی پر می‌کند.
dot() یک نقطه در موقعیت فعلی می‌گذارد.
stamp() نشانی از شکل لاک‌پشت در مکان فعلی به‌جا می‌گذارد.
shape() نام شکل باید پارامتر ورودی این متد را ‘arrow’, ‘classic’, ‘turtle’ یا ‘circle’ بگذارید.

 

نصب و راه‌اندازی کتابخانه Turtle

برای شروع کار با کتابخانه Turtle در پایتون، باید ابتدا محیط مناسبی برای کدنویسی فراهم کنید و سپس این کتابخانه را فرا بخوانید.

محیط مناسب برای استفاده از Turtle شامل دو مورد می‌شود:

  1. محیط پایتون: برای استفاده از Turtle در پایتون، برنامه‌های IDLE و Jupyter Notebook گزینه‌های مناسبی هستند. اگر با گرافیک یا فضای این دو نرم‌افزار راحت نیستید، می‌توانید با REPL هم کدهای‌تان را بنویسید.
  2. ورژن پایتون: استفاده از Turtle مستلزم نصب نسخه سوم پایتون روی سیستم است. 

ما در این بخش از نرم‌افزار REPL استفاده می‌کنیم. ابتدا باید پایتون ۳ را در محیط این برنامه اجرا کنیم. پس کد زیر را درون آن می‌نویسیم:

 

python3

 

در این مرحله، باید کتابخانه Turtle را فرا بخوانیم که با دستور ساده زیر امکان‌پذیر است:

 

import turtle

 

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

شروع کار با کتابخانه Turtle در پایتون سه مرحله بسیار ساده دارد:

  1. ساخت پنجره جدید
  2. ایجاد لاک‌پشت برای کنترل نقشه یا تصویر
  3. استفاده از متدهای کتابخانه و حرکت دادن لاک‌پشت

دلیل ایجاد پنجره جدید ماهیت گرافیکی کتابخانه Turtle است. بدین‌معناکه باید برای اجرای هر دستور طراحی، یک پنجره جداگانه (Screen) داشته باشید. 

برای ایجاد یک پنجره جدید، متغیر s را با مقدار turtle.getscreen() می‌سازیم:

 

s = turtle.getscreen()

 

پس از نوشتن این کد، باید خروجی زیر را مشاهده کنید:

 

خروجی کد بالا

 

این پنجره جایی است که می‌توانید خروجی کدتان را ببینید. این مثلث سیاه و کوچک وسط صفحه، «لاک‌پشت» نام دارد.

سپس، متغیری با نام “t” را مقداردهی اولیه می‌کنیم تا بتوانیم از آن در سراسر برنامه برای اشاره به لاک‌پشت و هدایت آن استفاده کنیم:

 

t = turtle.Turtle()

 

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

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

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

اولین نکته در برنامه نویسی با کتابخانه Turtle در پایتون، حرکت دادن لاک‌پشت روی صفحه است؛ طوری‌که در جهت‌های مدنظر ما این کار را انجام دهد. 

لاک‌پشت در چهار جهت می‌تواند به‌صورت صاف حرکت کند:

  1. جلو
  2. عقب
  3. چپ
  4. راست

حرکت‌ ها در کتابخانه Turtle پایتون، با دستورهای زیر انجام می‌شوند:

  • ()forward. 
  • ()backward. 

این دو دستور لاک‌پشت را در جهتی که با آن روبه‌رو است، حرکت می‌دهد. 

با استفاده از تعیین درجه در متدهای ()right. و ()left. می‌توانید لاک‌پشت را به سمت راست یا چپ تغییر جهت بدهید. 

جدول زیر نحوه نوشتن متدهای ذکرشده را نشان می‌دهد:

 

t.right(90)
t.forward(100)
t.left(90)
t.backward(100)

 

وقتی این دستورها را اجرا می‌کنید، ابتدا لاک‌پشت نود درجه به راست می‌چرخد. سپس صد واحد به سمت جلو می‌رود، نود درجه به چپ می‌چرخد ​​و در نهایت صد واحد به عقب حرکت می‌کند. در تصویر زیر خروجی کدهای جدول را مشاهده خواهید کرد:

 

 

 

خروجی کد بالا

 

دستورهای زیر را می‌توانید به شکل زیر کوتاه کنید:

 

t.right()-> t.rt()
t.forward()-> t.fd()
t.left()-> t.lt() 
t.backward()-> t.bk()

 

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

 

مختصات حرکتی لاکپشت

 

برای موقعیت‌ یابی در Turtle پایتون، باید صفحه نمایش را مطابق‌با شکل بالا، به چهار ربع تقسیم کنید.

 نقطه‌ای که در شروع برنامه، لاک‌پشت در آن قرار می‌گیرد، مختصات (۰,۰) است. به این نقطه «خانه» یا “Home” می‌گویند. 

برای انتقال لاک‌پشت به هر ناحیه دیگری روی صفحه، از متد ()goto. استفاده کرده و مختصات را به این صورت وارد می‌کنیم:

 

t.goto(100,100)

 

با این دستور، خروجی به شکل زیر تغییر حالت می‌دهد:

 

خروجی کد بالا

 

برای بازگرداندن لاک‌پشت به موقعیت اصلی، کد زیر را تایپ کنید:

 

t.home()

 

این دستور مانند یک میان‌بر است که لاک‌پشت را به نقطه (۰,۰) بازمی‌گرداند. تایپ این کد سریع‌تر از تایپ t.goto(0,0) است.

ترسیم اشکال هندسی ساده با کتابخانه Turtle

اکنون که حرکت‌های نشانه‌گر را می‌دانید، می‌توانید به ترسیم اشکال هندسی ساده با Turtle در پایتون بپردازید. 

ابتدا کار را با رسم چندضلعی شروع می‌کنیم؛ چراکه این اشکال از خطوط مستقیمی تشکیل شده‌اند که در زوایای خاصی به‌هم متصل می‌شوند. کد زیر ترسیم یک مربع ساده را انجام می‌دهد:

 

t.fd(100)
t.rt(90)
t.fd(100)
t.rt(90)
t.fd(100)
t.rt(90)
t.fd(100)

 

رسم مربع

 

رسم دایره کمی پیچیده‌تر از مربع است؛ اما در کتابخانه Turtle پایتون، انجام این کار سخت نیست. کد تک‌خطی زیر را در محیط برنامه بنویسید و خروجی آن را به‌شکل یک دایره تحویل بگیرید:

 

t.circle(60)

 

خروجی کد بالا

 

عدد ۶۰ شعاع دایره است که می‌توانید اندازه آن را با تغییر این مقدار، کم یا زیاد کنید. به‌همین‌شکل می‌توانید یک نقطه روی صفحه بزنید؛ چون این نقطه چیزی جز دایره‌ای پرشده نیست. 

 

t.dot(20)

 

رسم نقطه

 

عدد ۲۰ قطر نقطه است. درست مانند دایره، می‌توانید اندازه نقطه را با تغییر مقدار قطر آن کم یا زیاد کنید.

نحوه استفاده از رنگ‌ ها و قلم‌ ها در کتابخانه Turtle پایتون

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

 

turtle.bgcolor("blue")

 

این کد، رنگ صفحه را به آبی تغییر می‌دهد؛ اما این مقدار قابل جایگزینی با رنگ‌های دیگر ازجمله سبز و قرمز است. نتیجه تغییر رنگ را با کد بالا در ادامه خواهید دید:

 

خروجی کد بالا

 

 

 

 

قلم‌ها در Turtle با یک کد ساده تغییر می‌کنند. ما در این مثال می‌خواهیم اندازه لاک‌پشت را ۵ برابر بزرگ‌تر از حالت عادی آن (با اندازه یک) کنیم و هم‌زمان به جلو حرکت دهیم. پس کد زیر را می‌نویسیم و خروجی نهایی را می‌بینیم:

 

t.pensize(5)
t.forward(100)

 

خروجی کد بالا

 

حال می‌خواهیم با متد fillcolor رنگ درون لاک‌پشت و با متد shapesize، اندازه آن را تغییر دهیم. تنها نکته‌ای که باید هنگام تغییر رنگ‌ ها و قلم‌ های لاک‌پشت درنظر داشته باشید، بزرگ کردن اندازه آن پیش از تغییر رنگ است. در این صورت می‌توانید تفاوت رنگ را واضح‌تر ببینید.

 

t.shapesize(3,3,3)
t.fillcolor("red")

 

خروجی کد بالا

 

برای تغییر رنگ حاشیه بیرونی آن هم می‌توانید از متد pencolor کمک بگیرید:

 

t.pencolor("green")

 

خروجی کد بالا

 

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

برای کار با رویدادها و تعاملات کاربر در Turtle پایتون، باید از توابع زیرمجموعه turtle استفاده کنیم. برخی از این رویدادها پسوند “click” دارند که نشان می‌دهند در صورت کلیک کردن کاربر، رویدادی رخ می‌دهد. 

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

 

پارامترها عملکرد
fun  تابعی با دو آرگومان که مختصات نقطه کلیک‌شده روی بوم به آن ارجاع داده می‌شود.
btn  تعداد دکمه‌های کلیک‌شده روی ماوس؛ به‌طور پیش‌فرض یک است (دکمه سمت چپ ماوس)
add 
“True” یا “False”. اگر True باشد، یک مسیر جدید به صفحه اضافه خواهد شد. در غیر این صورت از مسیر قبلی استفاده می‌شود.
  1. ()turtle.onclick

در صورت کلیک کاربر روی نشانه‌گر یا صفحه، لاک‌پشت تغییر جهت می‌دهد.

سینتکس این متد به شکل زیر نوشته می‌شود:

 

turtle.onclick(fun, btn=1, add=None)

 

حال کد زیر را می‌نویسیم تا به‌محض کلیک کاربر روی لاک‌پشت، آن را ۹۰ درجه به‌سمت پایین بیاوریم.

 

# method to action 
def fxn(x,y): 
    # some motion 
    turtle.right(90) 
    turtle.forward(100) 
# turtle speed to slowest 
turtle.speed(1) 
# motion 
turtle.fd(100) 
# allow user to click 
# for some action 
turtle.onclick(fxn)

 

خروجی:

 

خروجی کد بالا

 

  1. ()turtle.ondrag

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

 

turtle.ondrag(fun, btn, add)

 

حال برای پیاده‌سازی این تابع، باید کدهای زیر را بنویسیم:

 

# method to call on drag 
def fxn(x, y): 
    # stop backtracking 
    turtle.ondrag(None) 
    # move the turtle's angle and direction 
    # towards x and y 
    turtle.setheading(turtle.towards(x, y)) 
    # go to x, y 
    turtle.goto(x, y) 
    # call again 
    turtle.ondrag(fxn) 
# set turtle speed 
turtle.speed(10) 
# make turtle screen object 
sc = turtle.Screen() 
# set screen size 
sc.setup(400, 300) 
# call fxn on drag 
turtle.ondrag(fxn) 
# take screen in mainloop 
sc.mainloop() 

 

خروجی:

 

خروجی کد بالا

 

  1. ()turtle.onrelease

با رویداد “onrelease”، اگر کاربر ماوس را رها کرد، عمل مدنظر رخ می‌دهد.

سینتکس این متد به شکل زیر است:

 

turtle.onrelease(fun, btn=1, add=None)

 

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

 

# methods to action 
def fxn1(x,y): 
turtle.fillcolor("blue") 
def fxn2(x,y): 
turtle.fillcolor("white") 
# set screen and turtle 
sc=turtle.Screen() 
sc.setup(400,300) 
turtle.shape("turtle") 
turtle.turtlesize(2) 
turtle.speed(1) 
# allow user to click for some action 
turtle.onclick(fxn1) 
# allow user to release for some action 
turtle.onrelease(fxn2)

 

خروجی:

 

خروجی کد بالا

 

۷ روش مدیریت خطاها و رفع اشکال کتابخانه Turtle در پایتون

در ادامه هفت روش‌ رفع انواع خطاهای متداول در کتابخانه Turtle پایتون را توضیح خواهیم داد.

  1. بررسی پیغام خطا

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

مثلا نوشتن turtle.foward(100)شما را با پیغام خطا روبه‌رو می‌کند؛ زیرا سینتکس صحیح به شکل turtle.forward(100)نوشته می‌شود.

 

  1. چک کردن آرگومان‌های ورودی

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

مثلا با نوشتن سینتکس زیر، پیغام خطا دریافت خواهید کرد:

turtle.forward(“100”)

علت خطا در این سینتکس این است که قرار دادن عدد ۱۰۰ در علامت نقل‌قول، آن را به رشته تبدیل می‌کند؛ درحالی‌که “forward” نوع داده‌ای “integer” یا “float” می‌خواهد. پس کد صحیح چنین چیزی خواهد بود:

turtle.forward(100)

  1. به‌ روزرسانی صفحه

اگر به‌دلایلی مانند افزایش سرعت عملکرد برنامه، با استفاده از turtle.tracer(0) به‌روزرسانی خودکار صفحه را غیرفعال کردید، باید به‌صورت دستی صفحه را با تابع turtle.update() به‌روزرسانی کنید تا تغییرات جدید را ببینید.

  1. استفاده از دستور Print

افزودن دستور print() به کد نوشته‌شده باعث می‌شود که مقادیر متغیرها را ببینید؛ چراکه اغلب اوقات، بروز خطاهای منطقی به‌دلیل مقدار نادرست تابع رخ می‌دهد.

سینتکس زیر مثالی از به‌کار بردن این دستور است:

 

for i in range(4):
    print(f"Loop iteration: {i}")
    turtle.forward(100)
    turtle.left(90)

 

  1. کاهش سرعت اجرا

سرعت لاک‌پشت را به‌طور موقت کاهش دهید تا بتوانید حرکات آن را ببینید و محل خطا را تشخیص دهید.

سینتکس زیر برای این راه‌حل مناسب است:

 

turtle.speed(1)  # Set the speed to the slowest

 

  1. کامنت کردن کد

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

  1. استفاده از دیباگر

برخی از محیط‌های IDE اشکال‌زدایی داخلی دارند که به شما امکان می‌دهند کدها را به‌صورت خط‌به‌خط مرور و صحت متغیرها را بررسی کنید.

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

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

پاسخ این سوال‌ها را در بخش نظرها بنویسید تا با یکدیگر به بررسی آن‌ها بپردازیم. اگر نیاز به کمی مرور دارید، می‌توانید به بخش‌های مربوطه بازگشته و محتوای آن‌ها را بخوانید. 

چه رتبه ای می‌دهید؟

میانگین ۰ / ۵. از مجموع ۰

اولین نفر باش

title sign
دانلود مقاله
عملکرد کتابخانه Turtle در پایتون و کاربرد های آن
فرمت PDF
صفحه
حجم مگابایت
دانلود مقاله
title sign
معرفی نویسنده
title sign
معرفی محصول
title sign
دیدگاه کاربران