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

پیش از اجرای قطعهکدها باید مطمئن شوید که پایتون روی سیستم شما نصب است. نسخههای اخیر پایتون بهطور پیشفرض شامل ماژول ترتل هستند و نیاز به نصب جداگانه وجود ندارد. در صورتی که پایتون را تازه نصب کردهاید، کافیست محیط توسعهتان را باز کرده و مطمئن شوید دسترسی به ترتل فراهم است.
برای اجرا کافی است یک فایل متنی با پسوند .py بسازید و در ابتدای آن بنویسید:
import turtle
سپس با اجرای فایل در محیط خط فرمان یا محیط توسعه، پنجره ترسیمی باز میشود.
ویدیو نحوه نصب کتابخانه ترتل در پایتون:
فصل سوم: بهترین ۲۲ قطعهکد ترتل
در این بخش، ۲۲ قطعهکد منتخب را همراه توضیح کارکرد و خروجی آنها میخوانید. این قطعهکدها از سادهترین به پیشرفتهترین مرتب شدهاند.
بخش اول: ترسیم خطوط پایه
۱. خط مستقیم ساده
import turtle
t = turtle.Turtle()
t.forward(100)
این کد یک خط مستقیم به طول ۱۰۰ واحد میکشد.
۲. عقبگرد خط
import turtle
t = turtle.Turtle()
t.backward(50)
حرکتی در جهت منفی محور افقی ایجاد میکند.
۳. چرخش ساده
import turtle
t = turtle.Turtle()
t.right(90)
t.forward(50)
چرخش به راست و سپس حرکت رو به جلو.
بخش دوم: شکلهای هندسی ساده
۴. مربع
import turtle
t = turtle.Turtle()
for i in range(4):
t.forward(100)
t.right(90)
مربع با ضلع صد واحد.
۵. مثلث متساویالساقین
import turtle
t = turtle.Turtle()
for i in range(3):
t.forward(100)
t.left(120)
مثلث با زاویههای مساوی.
۶. چندضلعی پنجضلعی
import turtle
t = turtle.Turtle()
for i in range(5):
t.forward(80)
t.right(72)
۷. ششضلعی منتظم
import turtle
t = turtle.Turtle()
for i in range(6):
t.forward(60)
t.right(60)
بخش سوم: الگوهای تکراری
۸. الگوی خورشیدی ساده
import turtle
t = turtle.Turtle()
for i in range(36):
t.forward(100)
t.right(170)
این کد یک الگوی پراکنده شبیه ستاره ایجاد میکند.
۹. حلقههای متحدالمرکز
import turtle
t = turtle.Turtle()
for j in range(1,6):
t.circle(20*j)
پنج دایره با شعاعهای افزایشی.
۱۰. شبکه مربعی
import turtle
t = turtle.Turtle()
for i in range(5):
for j in range(5):
t.forward(40)
t.right(90)
t.up()
t.goto(0, i*50)
t.down()
بخش چهارم: رنگها و پرکردن
۱۱. مربع رنگی
import turtle
t = turtle.Turtle()
t.color(“red”)
t.begin_fill()
for i in range(4):
t.forward(80)
t.right(90)
t.end_fill()
۱۲. دایره رنگی
import turtle
t = turtle.Turtle()
t.color(“blue”)
t.begin_fill()
t.circle(50)
t.end_fill()
چند قدم جلوتر از بقیه باش: چطور ویژوال استودیو کد را برای برنامه نویسی پایتون آماده کنیم؟
۱۳. شکل قلب ساده
import turtle
t = turtle.Turtle()
t.color(“pink”)
t.begin_fill()
t.left(140)
t.forward(111)
t.circle(-50, 200)
t.left(120)
t.circle(-50, 200)
t.forward(111)
t.end_fill()
بخش پنجم: کاربرد توابع

۱۴. تابع ترسیم مربع با اندازه دلخواه
import turtle
def draw_square(side):
t = turtle.Turtle()
for _ in range(4):
t.forward(side)
t.right(90)
draw_square(70)
۱۵. رسم چندضلعی با تابع
import turtle
def polygon(sides, length):
t = turtle.Turtle()
angle = 360 / sides
for _ in range(sides):
t.forward(length)
t.right(angle)
polygon(7, 50)
بخش ششم: انیمیشن ساده
۱۶. حرکت رو به جلو تا برخورد با مرز
import turtle
t = turtle.Turtle()
while True:
t.forward(2)
if abs(t.xcor())>200 or abs(t.ycor())>200:
t.right(90)
۱۷. توپ بندسازی
import turtle
t = turtle.Turtle()
t.shape(“circle”)
for _ in range(100):
t.forward(10)
t.right(10)
بخش هفتم: ترکیب اشکال پیچیده
۱۸. گل پیچیده
import turtle
t = turtle.Turtle()
for _ in range(36):
t.circle(50)
t.right(10)
۱۹. تور هندسی
import turtle
t = turtle.Turtle()
length = 5
for i in range(30):
t.forward(length)
t.right(30)
length += 2
بخش هشتم: ورودی کاربر
۲۰. ترسیم از ورودی
import turtle
n = int(input(“تعداد ضلع: “))
l = int(input(“طول ضلع: “))
t = turtle.Turtle()
for _ in range(n):
t.forward(l)
t.right(360/n)
۲۱. رنگ و سرعت از کاربر
import turtle
clr = input(“رنگ: “)
spd = int(input(“سرعت: “))
t = turtle.Turtle()
t.color(clr)
t.speed(spd)
for _ in range(36):
t.forward(100)
t.right(170)
بخش پایانی: ذخیره تصویر گرافیکی
۲۲. ذخیره تصویر
import turtle
ts = turtle.getscreen()
t = turtle.Turtle()
t.circle(100)
ts.getcanvas().postscript(file=”output.ps”)
این قطعهکد ترسیم را ذخیرهسازی قابلاستفاده میکند.
فصل چهارم: جدول مرجع قطعهکدها

در جدول زیر خلاصه مختصر کاربرد هر قطعهکد را میبینید:
| شماره | عنوان کاربرد | نتیجه |
|---|---|---|
| ۱ | خط مستقیم ساده | خط افقی |
| ۲ | عقبگرد | حرکت عقب |
| ۳ | چرخش ساده | زاویه ۹۰ |
| ۴ | مربع | شکل چهارضلعی |
| ۵ | مثلث | شکل سهضلعی |
| ۶ | پنجضلعی | شکل پنجضلعی |
| ۷ | ششضلعی | شکل ششضلعی |
| ۸ | طرح خورشیدی | الگو |
| ۹ | حلقههایی با شعاع زیاد | چند دایره |
| ۱۰ | شبکه | چند مربع کنار هم |
| ۱۱ | مربع رنگی | مربع پرشده |
| ۱۲ | دایره رنگی | دایره پررنگ |
| ۱۳ | قلب | شکل قلب |
| ۱۴ | تابع مربع | تابعی برای مربع |
| ۱۵ | چندضلعی تابعی | تابعی برای چندضلعی |
| ۱۶ | انیمیشن مرز | حرکت تا مرز |
| ۱۷ | توپ | شکل دایره متحرک |
| ۱۸ | گل | الگوی گل |
| ۱۹ | تور هندسی | ساختار پیچیده |
| ۲۰ | ورودی کاربر | چندضلعی از ورودی |
| ۲۱ | رنگ و سرعت | تغییر رنگ و سرعت |
| ۲۲ | ذخیره تصویر | خروجی گرافیک |
ویدیو آموزشی آموزش ترتل در پایتون:
راهنمای انتخاب بهترین روشها
اجرای برنامههای گرافیکی در پایتون نیازمند مدیریت صحیح پنجره، کنترل حلقههای باز و تنظیم سرعت قلم ترسیم است. توابع speed، penup و pendown به شما امکان میدهند قلم را فعال یا غیرفعال کنید، و تنظیم tracer میتواند خروجی را سریعتر کند. ترکیب توابع ریاضی با ترسیم گرافیکی، درک هندسه و الگوریتم را بهصورت همزمان ارتقاء میدهد
10 نکته کاربردی:
- تکنیک استفاده از رنگهای متغیر و گرادینت: میتوان با تغییر رنگ قلم در هر مرحله از حلقهها، الگوهای گرافیکی زیباتری ایجاد کرد. ترکیب colormode(255) با توابع RGB امکان ترسیم رنگی پیچیده فراهم میکند.
- ترکیب ترتل با توابع ریاضی: استفاده از توابع سینوس و کسینوس برای ترسیم منحنیها و مسیرهای موجی باعث میشود ترسیمات پیچیدهتر و خلاقانهتر شوند. مثال: رسم دایرههای موجی یا مارپیچهای چندلایه.
- ساخت انیمیشنهای تعاملی: افزودن رویدادهای صفحهکلید یا موس با onkey و onclick امکان ساخت بازیها و تجربههای تعاملی را فراهم میکند.
- ذخیرهسازی در فرمتهای دیگر: بهجز فایل PostScript، میتوان خروجی را با تبدیل به PNG یا JPG ذخیره کرد و از آن در پروژههای وب یا ارائهها استفاده نمود.
- بهینهسازی سرعت رسم: استفاده از tracer(0,0) و update() برای رسم همزمان چندین شکل، اجرای برنامه را سریعتر و روانتر میکند و برای الگوریتمهای پیچیده ضروری است.
- ترکیب چند تابع: ایجاد تابعهای پارامتریک که بتوانند چند شکل را با یک دستور تولید کنند، باعث خوانایی بهتر کد و قابلیت استفاده مجدد میشود.
- استفاده از حلقههای تو در تو برای ایجاد بافت: میتوان با حلقههای تو در تو، الگوهای پیچیده مانند تورهای هندسی یا گلهای بزرگ تولید کرد که آموزش الگوریتمهای بازگشتی و حلقهای را بهبود میبخشد.
- ایجاد تصاویر سهبعدی با توهم عمق: با تغییر اندازه و زاویه دایرهها یا چندضلعیها در هر حلقه، میتوان احساس سهبعدی بودن به تصویر داد بدون نیاز به ماژولهای اضافی.
- افزودن متن و حروف به ترسیمات: با write() میتوان متن یا عدد را روی گرافیک درج کرد و الگوها را با اطلاعات متنی ترکیب نمود، مثلاً ساخت نمودارهای تعاملی یا نمایش زمان در پروژههای آموزشی.
- ترکیب با ماژولهای دیگر پایتون: مثلاً ترکیب ترتل با ماژول random برای ایجاد رنگها و موقعیتهای تصادفی یا با math برای الگوریتمهای پیچیده هندسی.
پرسش و پاسخ متداول

۱. آیا برای استفاده از ترتل نیاز به نصب کتابخانه اضافی است؟
خیر، ترتل بخشی از کتابخانه استاندارد پایتون است و در نسخههای رسمی موجود است.
۲. آیا میتوان ترسیمات ترتل را ذخیره کرد؟
بله، با استفاده از getcanvas().postscript() و تبدیل به فرمتهای تصویری قابل ذخیره و استفاده است.
۳. آیا ترتل فقط برای آموزش مناسب است یا کاربرد حرفهای دارد؟
در ابتدا برای آموزش و درک مفاهیم برنامهنویسی مناسب است، اما میتوان برای تولید گرافیک ساده، نمودار و انیمیشن تعاملی نیز استفاده کرد.
۴. چگونه میتوان سرعت ترسیم را افزایش داد؟
با استفاده از speed() برای قلم و tracer(0,0) همراه با update() میتوان سرعت رسم را بهبود داد.
۵. آیا امکان ترسیم اشکال پیچیده مانند گل یا تور هندسی وجود دارد؟
بله، با حلقههای تو در تو و استفاده از توابع ریاضی میتوان اشکال پیچیده طراحی کرد.
۶. میتوان ترسیم را تعاملی کرد؟
بله، با استفاده از onkey و onclick میتوان رویدادهای صفحهکلید یا موس را به ترسیمات اضافه کرد.
۷. آیا میتوان رنگها را در هر مرحله تغییر داد؟
بله، با توابع رنگی و استفاده از RGB یا رنگهای آماده، میتوان رنگها را در هر مرحله تغییر داد.
۸. آیا ترتل محدود به دو بعد است؟
بله، ترتل دو بعدی است اما با تکنیکهای تغییر اندازه و زاویه میتوان حس عمق سهبعدی ایجاد کرد.
۹. آیا میتوان کدهای نوشته شده توسط کاربر را در برنامهها ادغام کرد؟
بله، توابع پارامتریک و حلقههای ورودی میتوانند امکان استفاده از ورودی کاربر و ادغام با الگوریتمها را فراهم کنند.
۱۰. آیا اجرای ۲۲ قطعهکد معرفی شده محدود به یک محیط است؟
خیر، تمام قطعهکدها در محیطهای استاندارد پایتون (IDLE، PyCharm، VS Code) قابل اجرا هستند.
نتیجهگیری
آموزش ترتل در پایتون نه فقط به شما مهارت ترسیم اشکال بدهد بلکه به درک مفاهیم بنیادی برنامهنویسی کمک میکند. اجرای ۲۲ قطعهکد منتخب، طیف وسیعی از کاربردها را از خطوط ساده تا الگوهای پیچیده، توابع پارامتری، انیمیشن و ذخیرهسازی تصویر پوشش میدهد.
با تمرین این الگوها، قادر خواهید بود برنامههای گرافیکی قدرتمندتری بسازید، مهارتهای الگوریتمی خود را تقویت کنید و از گرافیک بهعنوان پلی برای درک بهتر برنامهنویسی بهرهمند شوید. اکنون نوبت شماست تا با الهام از این قطعهکدها، ایدههای خلاقانه خود را طراحی و اجرا کنید و مسیر یادگیریتان را به سطح بالاتری ببرید.













