มือใหม่สนุกกับพื้นฐาน Python ด้วยการวาดรูปจาก Python Turtle

python turtle tutorial background
bottomsheet using turtle presentation
ดูตัวอย่าง code animation bottomsheet ได้ที่ github

บทความนี้เป็นการสอน python สำหรับ level พื้นฐานสุดๆ โดยผมจะยังไม่ได้ลงรายละเอียดลึกมาก เน้นสนุกไว้ก่อน 😁 อยากให้ดูละทำตามไปด้วยจะดีมากเลย จะช่วยให้เข้าใจมากขึ้น

สมัยหัดเขียนแรกๆผมก็ใช้อันนี้แหละฝึกวิชา ด้วยคำแนะนำจาก ลุงวิศวกรสอนคำนวณ 🙏

Why Python

ตอนนี้เทรนภาษา python น่าจะเป็นภาษาอันดับ 1 แล้วเรียบร้อย จากการมาของ Data, AI

ใครที่อยากเรียนรู้การเขียนโปรแกรมเริ่มต้น แบบไม่รู้จะไปทางไหนเป็นพิเศษ ผมจะแนะนำไปทาง python เสมอ เพราะตัวภาษามันง่าย อ่านง่าย เขียนง่าย ทำให้เข้าใจ concept ได้เร็วเอาไปต่อยอดอย่างอื่นได้

สามารถเอาไปทำอะไรได้เยอะ เช่น AI, Machine Learning, Web, Data อื่นๆอีกเพียบ และ community python คนเยอะ ถามอะไรไป ก็มีคนตอบไว้ให้หมดแล้ว 55+

Library

หนึ่งในคำที่ได้ยินบ่อยมากๆใน programming เลยคือ library อธิบายสั้นๆคือมันเหมือนห้องสมุดที่เราไปยืมหนังสือ ใน programming ก็คือเราไปยืมโค้ดที่คนอื่นเคยเขียนไว้แล้ว ไม่ต้องเสียเวลาเขียนเอง ทำให้ประหยัดเวลาสร้างไปเยอะมากๆ

ส่วนตัวแล้วนี่คือหนึ่งในสิ่งที่ผมชอบมากๆในโลกของ programming เพราะเรายืมโค้ดกันเป็นว่าเล่นเลยเป็นเรื่องปกติ และส่วนใหญ่ก็ฟรีด้วย (open-source) ต้องขอบคุณกลุ่มคนที่ใช้เวลาพัฒนาอะไรยากๆมาให้เราใช้ต่อง่ายๆ

Turtle

Turtle ก็เป็นก็ library นึงในภาษา python ที่ดังมากในการเอามาสอนเด็ก หรือ คนที่เพิ่งฝึกเขียนโปรแกรม
เพราะมันทำให้เราจำลองการสร้างและควบคุมคอมพิวเตอร์แบบเห็นภาพ เวลาเขียนจะสนุกมากกว่าเรียนพวก print(“Hello World”) เหมาะกับการเริ่มเรียน python สุดๆ

Trick: ระหว่างตอนทำ ลองเปลี่ยนตัวเลขเปลี่ยนตัวแปรของตัวอย่าง ลองเล่นของตัวเองดูจะทำให้เราเห็นภาพละเข้าใจมากขึ้นเยอะเลย

Sandbox

สำหรับมือใหม่แนะนำให้เล่นในเว็ป https://pythonsandbox.com/turtle กันเพราะไม่ต้องลงโปรแกรมอะไรเลย run code ผ่าน browser ชิวๆ

ส่วนคนที่มี python หรือ IDE ในคอมก็ตามสะดวกเลยครับ

4 concepts in programming

เราจะมาเริ่มจาก 4 หัวข้อใหญ่ๆใน programming โดยใช้เต่าจำลองทั้ง 4 อัน

  1. for loop
  2. function
  3. variable
  4. if-else statement

เริ่มต้นจากการสร้างเต่า ที่เราเอาไว้วาดรูปก่อน

  • import turtle คือ เอา library turtle มาใช้
  • t = turtle.Turtle() คือการสร้างตัวแปรเต่า และ กระดานขึ้นมา
  • t.shape(“turtle”) ทำให้ลูกศรกลายเป็นเต่าเท่ๆ
import turtle
t = turtle.Turtle()
t.shape("turtle")

คำสั่งพื้นฐาน เอาไว้คุมเต่าเดิน

  • forward() รับ parameter เป็น ระยะทาง
  • backward() รับ parameter เป็น ระยะทาง
  • right() รับ parameter เป็น มุม
  • left() รับ parameter เป็น มุม
ผลลัพธ์จากเต่า forward(100)

ลองสั่งให้เต่าเดินหน้าเล่นดูกับ forward ตามด้วยระยะทางที่อยากให้มันเดินไปข้างหน้า forward(100)

Square

ผลลัพธ์จากการวาดสี่เหลี่ยมจตุรัส

Triangle

ผลลัพธ์จากการวาดสามเหลี่ยม

Variable

การสร้างตัวแปรเป็นพื้นฐานที่สุดใน programming

จากเราใส่ 100 ตรงๆก็เปลี่ยนมาเป็น medium_distance

t.forward(100)
medium_distance = 100 # สร้างตัวแปร type int
t.forward(medium_distance) # ใช้งาน

สามารถเอาไปใช้ต่อได้ และ ดูอ่านง่ายขึ้นมาทันที

Variable Type

type แต่ละชนิดจะไม่เหมือนกันและมีรายละเอียดในตัวมันเองค่อนข้างเยอะ อาจจะไม่ได้ลงลึกในบทความนี้นะครับ

TypeUsage
intten = 10
stringname = “foo”
booleanis_raining = false
listnumbers = [1, 2, 3, 4]
tuplecoordinates = (10, 20)
setunique_numbers = {1, 2, 3}
dictionaryperson = {“name”: “john”}

For-loop

concept ของ forloop คือการสั่งให้ computer ทำอะไรซ้ำๆหลายๆที ส่วนใหญ่จะใช้คู่กับ list, tuple, set, dictionary

สังเกตุอะไรมั้ยว่า โค้ดที่เขียนยาวๆมันมีอะไรซ้ำๆกันเต็มเลย
จริงๆแล้วมันคือการใช้ 2 บรรทัดนี้ซ้ำกัน 3 รอบ

t.forward(100)
t.lett(90)

for loop เลยเกิดมาเพื่อสิ่งนี้ เอาไปทำคำสั่งข้างในไปเรื่อยๆจนกว่าจะถึงจำนวนที่เราตั้งไว้
ในภาษา python จะเขียนแบบนี้ for i in range():

  • i คือเลขที่เปลี่ยนไปเรื่อยๆ เริ่มตั้งแต่ 0 จนถึง เช่นเราตั้งไว้ range(4)
  • ค่าของ i จะเป็น 0, 1, 2, 3 (ใน programming การ loop จะเริ่มต้นจาก 0 เสมอจนกว่าเราจะไปเปลี่ยน)
  • range คือจำนวนรอบทั้งหมด range(4) ก็คือทำซ้ำ 4 รอบ

จาก code ข้างบนที่พิมซ้ำๆกัน จะลดเหลือแค่นี้เอง

for i in range(4):
    t.forward(100)
    t.left(90)

Triangle

Star

ผลลัพธ์จากการวาดดาว

หรือมาลองวาดรูปดาวกัน ยิ่งงานที่ต้องใช้อะไรซ้ำๆเยอะๆ forloop จะมีประโยชน์มากๆ เช่นถ้าเราจะวาดรูปดาว 200 แฉกจะให้เขียนเองเป็น 100 บรรทัดไม่ดีแน่ 55

Practice

ถ้าทำเองได้แล้ว ลองวาดรูปอื่นๆดู เพื่อความเข้าใจ จะใช้หรือไม่ใช้ for loop ก็ได้

  • สามเหลี่ยม
  • สี่เหลี่ยมคางหมู
  • หกเหลี่ยม

Function

จำง่ายๆ concept ของฟังชั่น คือที่เก็บโค้ด แล้วเอาไปใช้ต่อ

Parameters

function สามารถรับตัวแปรเข้ามาใช้ได้ เรียกว่า parameter ทำให้เราไม่ต้องใส่ค่าตรงๆ
จาก t.forward(100) ก็เปลี่ยนมาใช้ t.forward(parameter) ได้เลย
ซึ่ง function จะมี parameter กี่ตัวก็ได้หรือไม่มีเลยก็ได้ แต่สำคัญก็คือ type ที่ตั้งไว้กับ type ที่ส่งเข้ามาต้องตรงกัน

ในภาษา python ฟังชั่นจะใช้คำว่า def นำหน้า ตามด้วยชื่อ function กับ parameter และอย่าลืม colon
def function_name(params):

วิธีเรียกใช้

  1. ใช้ชื่อ function
  2. วงเล็บ
  3. ตามด้วย parameter ได้เลย ถ้ามี

💡 Trick

  • จำว่า function คือการสร้างเก็บไว้ เพื่อรอเอาไปใช้
  • ภาษา python ส่วนใหญ่จะตั้งชื่อ function เป็น snake_case

จาก code วาดสี่เหลี่ยมข้างบน เราลองเอาโค้ดเก่ามาใส่ไว้ใน function แล้ววาดกัน

Square

If-else Statement

concept if-else คือการสั่งให้ computer ทำบางอย่าง ถ้าตรงกับเงื่อนไขที่เราตั้งไว้

  • condition จะต้องเป็น type boolean เสมอ (true, false)
  • มักใช้กับ operator เช่น 1 == 1 เป็นการเช็คว่าค่าเท่ากันมั้ยใน type เดียวกัน ถ้าใช่จะได้ true ถ้าไม่จะได้ false
event = "arrive"
if event == "arrive": # จะได้ true จึง print Hello
    print("Hello")
else:
    print("Good Bye")

ลองมาดูตัวอย่างในนี้กัน ผมได้เพิ่ม library random เข้ามาเพื่อความสนุกมากขึ้น เอามาสุ่มว่าตัวแปรจะได้อะไร เหมาะกับการทำความเข้าใจ if else มากเพราะ if else จะเป็นตัวกรองให้เราทำตามที่ต้องการ ตามเงื่อนไขที่เราตั้งไว้อยู่แล้ว

งานนี้จะ random มายังไง ก็วาดให้ได้แน่นอน (เพราะมีอยู่แค่ 4 รูป 55)

Random shape

Final

ผลลัพธ์จากคำสั่ง play_presentation(10)

สุดท้ายแล้วลองเอาทุกอย่าง variable, for loop, function, if-else มาใช้รวมกัน

สิ่งที่เพิ่มเข้าไป

  • ย้าย random game เข้าไปใน function
  • เพิ่มเปลี่ยน ลูกศร ทุกครั้งที่วาดเส้นใหม่
  • import time ให้มีดีเลย์ตอนเล่นเสร็จ
  • reset() รีเซทกลับไปจุดเริ่มต้น

😇 ถ้าทำได้แล้วลองลบโค้ดตัวเองทั้งหมดแล้วลอง ฝึกทำใหม่ด้วยตัวเองนะ


สรุปสิ่งที่เรียนไป

พื้นฐาน programming

  • for loop ลูป
  • function ฟังชั่น
  • variable ตัวแปร
  • if-else statement

พื้นฐานการใช้งานเต่า

  • การ import library เต่า
  • forward() เดินหน้า
  • backward() ถอยหลัง
  • right(), left() เลี้ยวซ้าย ขวา
  • fillcolor(), begin_fill(), end_fill ระบายสี

จบแล้วครับ สนุกรึเปล่าไม่รู้แต่คนสอนสนุกมากก 😂 ใครอยากสนใจเล่นต่อไปอ่านได้ที่ document ของ python turtle ได้เลย

สู้ๆนะครับสำหรับคนที่เพิ่งเริ่มต้น สำหรับ python เป็นภาษาที่ทรงพลังและมีอะไรให้เราเล่นอีกเยอะมากไว้วันหลังบีมจะพาไปรู้จักกับภาษานี้ให้มากขึ้นนะครับ

ผมเขียนเรื่องแบบนี้เรื่อยๆ ถ้าเพื่อนๆชอบบทความที่อ่านช้าๆและมีสาระแบบนี้ ฝากกดติดตาม 🍌

Leave a Reply

Discover more from Journey of beamtan

Subscribe now to keep reading and get access to the full archive.

Continue reading