۲ : آموزش پایتون دیباگ کردن و لاکپشت turtle

آموزش پایتون دیباگ کردن و لاکپشت turtle

۲ : آموزش پایتون دیباگ کردن و لاکپشت turtle

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

برای اینکه در برنامه نویسی موفق بشیم بایستی قدم های کوچک برداریم چون برنامه ها می تونن خیلی پیچیده و سخت و درهم برهم بشن و وقتی وارد این جور برنامه ها بشیم ممکنه سرخورده و ناامید بشیم.

ولی وقتی برنامه را به قسمت های کوچک میشکنیم و تا جایی که میشه اونو به برنامه های کوچک تر تقسیم میکنیم، میتونیم خیلی راحت تر اونها رو دیباگ کنیم و مشکل حل کنیم و در واقع یه موفقیت کوچیک بدست میاریم .

این موفقیت های کوچیک در مغز ما باعث ترشح مواد شیمیایی میشن که باعث میشن ما حس خوبی پیدا کنیم و خوشحال بشیم و همین باعث میشه که برای حل مشکلات بعدی انگیزه داشته باشیم .

پس همیشه قدم های کوچ بردارین و مشکل های کوچک رو حل کنین.

 

نصب ویژوال استدیو کد vs code

برای نصب وی اس کد باید اول فایل نصبی رو از سایت ماکروسافت دانلود کنید از این لینک

بعد از نصب افزونه پایتون رو به vs code  اضافه کنید :

برای این کار vs code را باز کنید کلید های Ctrl+shift+x را بزنید تا پنجره marcketplace  باز بشه و بعد در قسمت سرچ تایپ کنید python ، وقتی افزونه پایتون ،Python for VSCode  پیدا شد روی گزینه نصب کلیک کنید تا به vs code اضافه بشه.

 

یک پوشه جدید برای پروژه پایتون در هر جایی از سیستمتون ایجاد کنید و در vs code  از منو فایل گزینه open folder  بزنید و پوشه ای که ساختید را انتخاب کنید .

بعد کلید های ctrl+shift+p  را بزنید و در منوی باز شده مفسر پایتون رو انتخاب کنید

حالا میتونید شروع کنید به کد نویسی پایتون در vs code

نکات دیباگ کردن

  • مثل یک کاراگا ماهر باشین ، یک کاراگاه ماهر به همه شک میکنه ، شما هم بایستی به همه چیز شک داشته باشین که ممکنه غلط باشه .
  • سرنخ هارو دنبال کنین ، همیشه دنبال پیغام های برنامه و خروپی پرینت روی صفحه نمایش باشین و ببینید دارند به چی و کجا اشاره می کنند.

 

انواع رایج ارور ها

  • ParseError

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

در مثال زیر یک پارس ارور وجود داره :

current_time_str = input("What is the current time (in hours 0-23)?")

wait_time_str = input("How many hours do you want to wait"

current_time_int = int(current_time_str)

wait_time_int = int(wait_time_str)

final_time_int = current_time_int + wait_time_int

print(final_time_int)
  • TypeError

تایپ ارور یا خطای نوع زمانی اتفاق می افته که شما سعی کنین دو تا شی که از یک نوع نیستند رو باهم ترکیب کنین

a = input('wpisz godzine')

x = input('wpisz liczbe godzin')

int(x)

int(a)

h = x // 24

s = x % 24

print (h, s)

a = a + s

print ('godzina teraz', a)
  • NameError

نیم ارور یا خطای نامگذاری زمانی اتفاق می افته که قبل از اینکه به متغیری مقدار دهی کنین از اون متغیر استفاده کنین .

str_time = input("What time is it now?")

str_wait_time = input("What is the number of nours to wait?")

time = int(str_time)

wai_time = int(str_wait_time)


time_when_alarm_go_off = time + wait_time

print(time_when_alarm_go_off)
  • ValueError

ولیو ارور یا خطای مقداری هم زمانی اتفاق می افته که ما نوع مقداری رو به تابعی بفرستیم که اون تابع نوع دیگری رو انتظار داشته و قبول داشته

مثلا برای تابع int   مقدار حروف بفرستیم

current_time_str = input("What is the current time (in hours 0-23)?")

current_time_int = int(current_time_str)

wait_time_str = input("How many hours do you want to wait")

wait_time_int = int(wait_time_str)


final_time_int = current_time_int + wait_time_int

print(final_time_int)

ماژول لاکپشت turtle :

در پایتون ماژول های بسیار زیادی وجود دارند که ما میتونیم از اونها استفاده کنیم و برنامه های برنامه های پیچیده بنویسیم مثلا برنامه برای ارسال به ایمیل انبوه یا برنامه برای محاسبات ریاضی سنگین و …

در این قسمت می خواهیم با یه ماژول آشنا بشیم به اسم ماژول لاکپشت (turtle) ، این ماژول یه تصویر تو صفحه نمایش ایجاد میکنه و در اون یه لاکپشت میسازه و این لاکپشت اینطوری در نظر بگیرین که حرف میفهمه و ما هر دستوری بهش بدیم اجرا میکنه ، مثلا برو ،جلو بیا عقب ، بچرخ و … .

ما ازین به بعد ازین ماژول استفاده میکنیم که خیلی از مفاهیم برنامه نویسی پایتون با اون یاد بگیریم چون که به صورت ویژوال قابل دیدنه و فهم یه سری از مسائل خیلی راحت تر میکنه.

خب برای اینکه از ماژول در پایتون استفاده کنیم از دستور import  و بعد نام ماژولی که می خوایم استفاده می کنیم . که در اینجا به این صورت میشه :

import turtle# allows us to use the turtles library

wn = turtle.Screen()# creates a graphics window

ali = turtle.Turtle()# create a turtle named ali

ali.forward(150)# tell ali to move forward by 150 units

ali.left(90)# turn by 90 degrees

ali.forward(75)# complete the second side of a rectangle

ما الان در خط اول ماژول لاکپشت ایمپورت کردیم به برنامه مون

در خط دوم یه پنجره جدید ایجاد کردیم

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

در خط چهارم بهش گفتیم که ۱۵۰ واحد به جلو حرکت کنه

در خط پنجم گفتیم که ۹۰ درجه بچرخه

و در خط چهارم گفتیم ۷۵ واحد به جلو حرکت کنه

 

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

import turtle


wn = turtle.Screen()

wn.bgcolor("lightgreen")# set the window background color



taghi = turtle.Turtle()

taghi.color("blue")# make taghi blue

taghi.pensize(3)# set the width of her pen


taghi.forward(50)

taghi.left(120)

taghi.forward(50)




wn.exitonclick()#wait for a user click on the canvas

گله لاک پشت ها :

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

import turtle

wn = turtle.Screen()# Set up the window and its attributes
wn.bgcolor("lightgreen")

taghi = turtle.Turtle()# create taghi and set some attributes
taghi.color("hotpink")
taghi.pensize(5)

ali = turtle.Turtle()# create ali

taghi.forward(80)# Let taghi draw an equilateral triangle
taghi.left(120)
taghi.forward(80)
taghi.left(120)
taghi.forward(80)
taghi.left(120)# complete the triangle
taghi.right(180)# turn taghi around
taghi.forward(80)# move her away from the origin


ali.forward(50)# make ali draw a square
ali.left(90)
ali.forward(50)
ali.left(90)
ali.forward(50)
ali.left(90)
ali.forward(50)
ali.left(90)

wn.exitonclick()

حلقه تکرار for  :

وقتی سعی میکنبم یه شکل هندسی با لاکپشتمون بکشیم داریم یه کار تکراری رو انجام میدیم مثلا وقتی میخوایم مربع بکشیم در واقع داریم ۴ بار یه کار خط کشیدن ساده رو تکرار کینیم ، حلقه های تکرار برای این هستن که این کار های تکراری رو برای ما انجام بدن . پرکار برد ترین حلقه تکرار با کلمه کلیدی for  هستش و به صورت زیر نوشته میشه

fruits = ["apple", "banana", "cherry"]
for x in fruits:
    print(x)

الان توی این حلقه ما یک متغیر x تعریف کردیم که در لیست Fruits میچرخه و تک تک مقدارهاشونو پرینت میکنه

توجه داشته باشین که بعد از اینکه دستور for نوشتین حتما باید آخر خط علاکت : بزارین و تمامی دستوراتی که میخواین در حلقه باشن با یک tab جلو تر تایپ کنین

یک مثال دیگه

Names=["Joe", "Amy", "Brad", "Angelina", "Zuki", "Thandi", "Paris"]
for name in    names:
    print("Hi", name, "Please come to my party on Saturday!")

نحوه عملکرد  حلقه for در فلوچارت

 

 

 

 

حلقه for و لاکپشت :

حالا که با حلقه For اشنا شدیم میتونیم خیلی از کارهایی که با لاکپشت انجام میدیم رو ساده تر و کم حجم تر بکنیم

برای مثال با لاکپشتمون و حلقه for  یه مربع میکشیم

import turtle# set up ali
wn = turtle.Screen()
ali = turtle.Turtle()

for i in [0, 1, 2, 3]:# repeat four times
    ali.forward(50)
    ali.left(90)

wn.exitonclick()

یک مثال دیگه : اینبار یک مربع رنگی میکشیم

import turtle# set up ali
wn = turtle.Screen()

ali = turtle.Turtle()

for aColor in ["yellow", "red", "purple", "blue"]:
    ali.color(aColor)
    ali.forward(50)
    ali.left(90)

wn.exitonclick()

تابع range :

این یکی از توابع داخلی پایتونه که یه رنج عددی که ما نقطه شروع و پایانشو مشخص میکنیم بهمون میده مثلا :

Range(0,10)  یا    range(10)

یعنی یک رنج از ۰ تا ۱۰ برای من ایجاد کن ۰و۱و۲و۳و۴و۵و۶و۷و۸و۹

 

print(list(range(4)))

خروجی [۰, ۱, ۲, ۳]

print(list(range(1, 5)))

خروجی [۱, ۲, ۳, ۴]

ما میتونیم از تابع range در حلقه for استفاده کنیم که بهش بفهمونیم که میخوایم چند بار تکرار بشه . مثال زیر :

for i in range(4):
    alex.forward(50)
    alex.left(90)

یک مربع برامون میکشه با طول ۵۰ واحد

 

تابع range به صورت پیش فرض یک واحد یک واحد جلو میره ،ما میتونیم به دستور رنج بگیم که چند تا چندتا حرکت کنه  به این صورت :

range(شروع, پایان, قدم)

print(list(range(0, 19, 2)))

خروجی [۰, ۲, ۴, ۶, ۸, ۱۰, ۱۲, ۱۴, ۱۶, ۱۸]

print(list(range(0, 20, 2)))

خروجی [۰, ۲, ۴, ۶, ۸, ۱۰, ۱۲, ۱۴, ۱۶, ۱۸[

 

ما میتونیم range برعکس هم داشته باشیم

print(list(range(10, 0, -1)))

خروجی [۱۰, ۹, ۸, ۷, ۶, ۵, ۴, ۳, ۲, ۱]

 

ویژگی های دیگر لاکپشت turtle

ما میتونیم لاکپشتمونو حرکت بدیم ولی خطی نکشیم برای اینکار از ویژگی up  استفاده میکنیم

ali.up()

ali.forward(100)     # this moves ali, but no line is drawn

ali.down()

میتونیم شکل لاکپشتمون هم عوض کنیم ، برای لاکپشت ین اشکال وجود دارند

: arrow, blank, circle, classic, square, triangle, turtle.

 

و به اینصورت شکلشو عوض میکنیم :

ali.shape(“circle “)

 

یا سرعتشو تغییر بدیم

alex.speed(10)

 

یک مثال دیگه از لاکپشت:

import turtle

wn = turtle.Screen()
wn.bgcolor("lightgreen")

tess = turtle.Turtle()
tess.color("blue")
tess.shape("turtle")

print(list(range(5, 60, 2)))

tess.up()# this is new

for size in range(5, 60, 2):# start with size = 5 and grow by 2
    tess.stamp()                # leave an impression on the canvas
    tess.forward(size)          # move tess along
    tess.right(24)              # and turn her

wn.exitonclick()

جدول ویژگی های لاکپشت

Method Parameters Description
Turtle None Creates and returns a new turtle object
forward distance Moves the turtle forward
backward distance Moves the turle backward
right angle Turns the turtle clockwise
left angle Turns the turtle counter clockwise
up None Picks up the turtles tail
down None Puts down the turtles tail
color color name Changes the color of the turtle’s tail
fillcolor color name Changes the color of the turtle will use to fill a polygon
heading None Returns the current heading
position None Returns the current position
goto x,y Move the turtle to position x,y
begin_fill None Remember the starting point for a filled polygon
end_fill None Close the polygon and fill with the current fill color
dot None Leave a dot at the current position
stamp None Leaves an impression of a turtle shape at the current location
shape shape name Should be ‘arrow’, ‘classic’, ‘turtle’, ‘circle’ or ‘square’

 

قسمت ۱ آموزش پایتون به زبان ساده 

قسمت ۲ آموزش پایتون به زبان ساده 

قسمت ۳ آموزش پایتون به زبان ساده 

Share this post

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *