การย้ายจากภาษาไพทอนมาภาษาปิยะธอน

คู่มือนี้จะช่วยให้นักพัฒนาภาษาไพทอนสามารถย้ายมาใช้งานภาษาปิยะธอนได้อย่างราบรื่น

ความแตกต่างหลัก

  1. นามสกุลไฟล์: ใช้ .pi แทน .py

  2. คำสำคัญภาษาไทย: ใช้คำสั่งภาษาไทยแทนภาษาอังกฤษ

  3. การตั้งชื่อ: สนับสนุนการใช้ภาษาไทยในการตั้งชื่อตัวแปรและฟังก์ชัน

ตารางเทียบคำสำคัญ

คำสั่งควบคุม

ภาษาไพทอน (Python)

ภาษาปิยะธอน (Piyathon)

if

ถ้า

elif

อื่นถ้า

else

อื่น

for

สำหรับ

while

ขณะที่

break

หยุด

continue

ทำต่อ

return

คืนค่า

yield

ให้

pass

ผ่าน

async

ไม่ประสาน

await

รอประสาน

case

เมื่อ

match

เทียบ

global

ทั่วไป

nonlocal

นอกเขต

lambda

แลมบ์ดา

with

ด้วย

การจัดการข้อผิดพลาด

ภาษาไพทอน (Python)

ภาษาปิยะธอน (Piyathon)

try

ลอง

except

ยกเว้น

finally

สุดท้าย

raise

ยก

assert

ยืนยัน

การนิยามและการนำเข้า

ภาษาไพทอน (Python)

ภาษาปิยะธอน (Piyathon)

def

นิยาม

class

ชั้น

import

นำเข้า

from

จาก

as

เป็น

del

ลบ

ตัวดำเนินการตรรกะ

ภาษาไพทอน (Python)

ภาษาปิยะธอน (Piyathon)

and

และ

or

หรือ

not

ไม่

is

คือ

in

ใน

ค่าคงที่

ภาษาไพทอน (Python)

ภาษาปิยะธอน (Piyathon)

True

จริง

False

เท็จ

None

ไม่มีค่า

ตัวอย่างการแปลง

ตัวอย่างที่ 1: ฟังก์ชันพื้นฐาน

# Python
def calculate_area(width, height):
    if width <= 0 or height <= 0:
        return 0
    return width * height
# Piyathon
นิยาม คำนวณพื้นที่(ความกว้าง, ความสูง):
    ถ้า ความกว้าง <= 0 หรือ ความสูง <= 0:
        คืนค่า 0
    คืนค่า ความกว้าง * ความสูง

ตัวอย่างที่ 2: การวนซ้ำและรายการ

# Python
numbers = [1, 2, 3, 4, 5]
sum = 0
for num in numbers:
    if num % 2 == 0:
        sum += num
# Piyathon
ตัวเลข = [1, 2, 3, 4, 5]
ผลรวม = 0
สำหรับ เลข ใน ตัวเลข:
    ถ้า เลข % 2 == 0:
        ผลรวม += เลข

ตัวอย่างที่ 3: คลาสและออบเจ็กต์

# Python
class Student:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def introduce(self):
        return f"My name is {self.name}"
# Piyathon
ชั้น นักเรียน:
    นิยาม __เริ่มต้น__(ตัว, ชื่อ, อายุ):
        ตัว.ชื่อ = ชื่อ
        ตัว.อายุ = อายุ

    นิยาม แนะนำตัว(ตัว):
        คืนค่า f"ฉันชื่อ {ตัว.ชื่อ}"

เครื่องมือช่วยแปลง

ภาษาปิยะธอนมาพร้อมกับเครื่องมือ p2p (Python to Piyathon) ที่ช่วยในการแปลงโค้ด:

# แปลงจากภาษาไพทอนเป็นภาษาปิยะธอน
p2p mycode.py mycode.pi

# แปลงจากภาษาปิยะธอนเป็นภาษาไพทอน
p2p mycode.pi mycode.py

Note

p2p จะแปลงเฉพาะคำสำคัญและโครงสร้างพื้นฐาน ควรตรวจสอบผลลัพธ์หลังการแปลงทุกครั้ง

แนวทางการย้าย

  1. เริ่มจากไฟล์เล็กๆ

    • แปลงไฟล์ทีละไฟล์

    • ทดสอบการทำงานหลังแปลง

    • แก้ไขข้อผิดพลาดที่พบ

  2. ทดสอบอย่างละเอียด

    • รันชุดทดสอบทั้งหมด

    • ตรวจสอบผลลัพธ์

    • เปรียบเทียบกับเวอร์ชันภาษาไพทอน

  3. ปรับปรุงเอกสาร

    • อัปเดตคำอธิบายในโค้ด

    • แก้ไขเอกสารประกอบ

    • ปรับปรุงตัวอย่างโค้ด

ข้อควรระวัง

Warning

  1. ชื่อฟังก์ชันในไลบรารี: บางไลบรารีอาจยังใช้ชื่อภาษาอังกฤษ

  2. การตั้งชื่อ: ระวังการใช้อักขระพิเศษในชื่อภาษาไทย

  3. การผสมภาษา: พยายามใช้ภาษาเดียวในการตั้งชื่อ

คำถามที่พบบ่อย

  1. Q: ต้องแปลงโค้ดทั้งหมดหรือไม่? A: ไม่จำเป็น สามารถใช้โค้ดภาษาไพทอนร่วมกับภาษาปิยะธอนได้

  2. Q: ประสิทธิภาพต่างกันหรือไม่? A: ไม่ต่างกัน เพราะภาษาปิยะธอนแปลงกลับเป็นภาษาไพทอนก่อนรัน

  3. Q: ใช้ไลบรารีภาษาไพทอนได้หรือไม่? A: ได้ สามารถใช้ไลบรารีภาษาไพทอนทั้งหมดได้