ผลต่างระหว่างรุ่นของ "ภาษาไพทอน"

จากวิกิพีเดีย สารานุกรมเสรี
เนื้อหาที่ลบ เนื้อหาที่เพิ่ม
Sirakorn (คุย | ส่วนร่วม)
Removed invalid English article tag.
ป้ายระบุ: เครื่องมือแก้ไขต้นฉบับปี 2560
Sirakorn (คุย | ส่วนร่วม)
Translated design philosophy
ป้ายระบุ: เครื่องมือแก้ไขต้นฉบับปี 2560
บรรทัด 43: บรรทัด 43:


ไพทอนรุ่น 2.0 ซึ่งออกเมื่อปีค.ศ. 2000 มาพร้อมกับเครื่องมือภายในจำนวนมาก เช่นเครื่องมือการสร้างลิสต์ ([[:en:List comprehension|list comprehension]]) และ[[:en:Garbage collection (computer science)|ตัวเก็บขยะ]] (garbage collector) และไพทอนรุ่น 3.0 เป็นไพทอนรุ่นที่ได้รับการปรับปรุงและแก้ไขจำนวนมาก ทว่าความเปลี่ยนแปลงไนไพทอน 3 นั้นเป็นการเปลี่ยนแปลงที่[[:en:Backward compatibility|ไม่เข้ากันแบบย้อนหลัง]] กล่าวคือชุดคำสั่งที่เขียนสำหรับไพทอน 2 อาจไม่ทำงานตามปกติเมื่อสั่งให้ทำงานบนตัวแปลภาษาของไพทอน 3
ไพทอนรุ่น 2.0 ซึ่งออกเมื่อปีค.ศ. 2000 มาพร้อมกับเครื่องมือภายในจำนวนมาก เช่นเครื่องมือการสร้างลิสต์ ([[:en:List comprehension|list comprehension]]) และ[[:en:Garbage collection (computer science)|ตัวเก็บขยะ]] (garbage collector) และไพทอนรุ่น 3.0 เป็นไพทอนรุ่นที่ได้รับการปรับปรุงและแก้ไขจำนวนมาก ทว่าความเปลี่ยนแปลงไนไพทอน 3 นั้นเป็นการเปลี่ยนแปลงที่[[:en:Backward compatibility|ไม่เข้ากันแบบย้อนหลัง]] กล่าวคือชุดคำสั่งที่เขียนสำหรับไพทอน 2 อาจไม่ทำงานตามปกติเมื่อสั่งให้ทำงานบนตัวแปลภาษาของไพทอน 3

== คุณสมบัติและปรัชญาการออกแบบ ==

ผู้ใช้ภาษาไพทอนสามารถเลือก[[กระบวนทัศน์การเขียนโปรแกรม]]ตามที่ตนเองถนัดได้ โดยรองรับการเขียนโปรแกรมเชิงโครงสร้างและ[[การเขียนโปรแกรมเชิงวัตถุ]]อย่างเต็มรูปแบบ รวมถึงรองรับ[[การเขียนโปรแกรมเชิงฟังก์ชัน]] (ทั้งในรูปแบบของ[[การเขียนโปรแกรมเชิงลักษณะ]] และการเขียนโปรแกรมเชิงเมตาออบเจกต์) ส่วนขยายของไพทอนทำให้สามารถเขียนโปรแกรมด้วยกระบวนทัศน์อื่น เช่น[[การเขียนโปรแกรมเชิงตรรกะ]]

ไพทอนเก็บข้อมูลแบบไดนามิก (dynamic type) และใช้ขั้นตอนวิธี[[:en:Reference counting|การนับการอ้างอิง]] (Reference counting) ประกอบรวมกับ[[:en:Garbage collection (computer science)|ตัวเก็บขยะ]] (garbage collector) เพื่อจัดการหน่วยความจำ

ไพทอนมาพร้อมเครื่องมือสำหรับการเขียนโปรแกรมเชิงฟังก์ชั่นแบบที่พบใน[[ภาษาลิสป์]] นอกจากนี้ไพทอนมีเครื่องมืออย่างเช่นฟังก์ชัน `filter` `map` และ `reduce`, [[:en:List comprehension|เครื่องมือการสร้างลิสต์]] (list comprehension), [[แถวลำดับแบบจับคู่]] (ในชื่อของ Dictionary), [[เซต]] และ[[:en:Generator_(computer_programming)|เครื่องมือสร้างการวนซ้ำ]] (generator)

แนวคิดและหลักการของไพทอนถูกสรุปในเอกสารชื่อว่า [[:en:Zen of Python]] ซึ่งระบุหลักการของภาษาไว้เช่น

* สวยงามดีกว่าน่าเกลียด (Beautiful is better than ugly.)
* ชัดแจ้งดีกว่าซ่อนเร้น (Explicit is better than implicit.)
* เรียบง่ายดีกว่าซับซ้อน (Simple is better than complex.)
* ซับซ้อนดีกว่ายุ่งเหยิง(Complex is better than complicated.)
* ต้องใส่ใจการอ่านออกได้ง่าย(Readability counts.)


== จุดเด่นของภาษาไพทอน ==
== จุดเด่นของภาษาไพทอน ==

รุ่นแก้ไขเมื่อ 15:06, 21 กรกฎาคม 2563

เริ่มในปี พ.ศ. 2533
ออกแบบโดย คีโด ฟัน โรสซึม
พัฒนาโดย มูลนิธิซอฟต์แวร์ไพทอน
รุ่นล่าสุด 3.8.1
18 ธันวาคม ค.ศ. 2019 (2019-12-18)[1]
2.7.17
19 ตุลาคม ค.ศ. 2019 (2019-10-19)[2]
เป็นพื้นฐานของ Jython, IronPython
มีอิทธิพลจาก ABC, Perl, Lisp, Smalltalk, Tcl
มีอิทธิพลต่อ Ruby, Boo
ระบบปฏิบัติการ หลายระบบปฏิบัติการ
ลิขสิทธิ์: ลิขสิทธิ์มูลนิธิซอฟต์แวร์ไพทอน
เว็บไซต์ www.python.org

ภาษาไพทอน (Python programming language) หรืออีกชื่อที่คนไทยนิยมเรียกว่า ภาษาไพทอน เป็นภาษาระดับสูงซึ่งสร้างโดยคีโด ฟัน โรสซึม โดยเริ่มในปีพ.ศ. 2553 การออกแบบของภาษาไพทอนมุ่งเน้นให้ผู้โปรแกรมสามารถอ่านชุดคำสั่งได้โดยง่ายผ่านการใช้งานอักขระเว้นว่าง (whitespaces) จำนวนมาก นอกจากนั้นการออกแบบภาษาไพทอนและการประยุกต์ใช้แนวคิดการเขียนโปรแกรมเชิงวัตถุในตัวภาษายังช่วยให้นักเขียนโปรแกรมสามารถเขียนโปรแกรมที่เป็นระเบียบ อ่านง่าย มีขนาดเล็ก และง่ายต่อการบำรุง[3]

ไพทอนเป็นภาษาแบบไดนามิกซึ่งรองรับกระบวนทัศน์การเขียนโปรแกรมหลายรูปแบบ ซึ่งรวมถึงแต่ไม่จำกัดเพียงการเขียนโปรแกรมตามลำดับขั้น, การเขียนโปรแกรมเชิงวัตถุ, หรือการเขียนโปรแกรมเชิงฟังก์ชัน นอกจากนี้ไพทอนเป็นภาษาที่มักถูกอธิบายว่าเป็นภาษาโปรแกรมแบบ "มาพร้อมถ่าน" (batteries included) กล่าวคือไพทอนมาพร้อมกับไลบรารีมาตรฐานจำนวนมาก เช่นโครงสร้างข้อมูลแบบซับซ้อน และไลบรารีสำหรับคณิตศาสตร์

ไพทอนรุ่น 2.0 ซึ่งออกเมื่อปีค.ศ. 2000 มาพร้อมกับเครื่องมือภายในจำนวนมาก เช่นเครื่องมือการสร้างลิสต์ (list comprehension) และตัวเก็บขยะ (garbage collector) และไพทอนรุ่น 3.0 เป็นไพทอนรุ่นที่ได้รับการปรับปรุงและแก้ไขจำนวนมาก ทว่าความเปลี่ยนแปลงไนไพทอน 3 นั้นเป็นการเปลี่ยนแปลงที่ไม่เข้ากันแบบย้อนหลัง กล่าวคือชุดคำสั่งที่เขียนสำหรับไพทอน 2 อาจไม่ทำงานตามปกติเมื่อสั่งให้ทำงานบนตัวแปลภาษาของไพทอน 3

คุณสมบัติและปรัชญาการออกแบบ

ผู้ใช้ภาษาไพทอนสามารถเลือกกระบวนทัศน์การเขียนโปรแกรมตามที่ตนเองถนัดได้ โดยรองรับการเขียนโปรแกรมเชิงโครงสร้างและการเขียนโปรแกรมเชิงวัตถุอย่างเต็มรูปแบบ รวมถึงรองรับการเขียนโปรแกรมเชิงฟังก์ชัน (ทั้งในรูปแบบของการเขียนโปรแกรมเชิงลักษณะ และการเขียนโปรแกรมเชิงเมตาออบเจกต์) ส่วนขยายของไพทอนทำให้สามารถเขียนโปรแกรมด้วยกระบวนทัศน์อื่น เช่นการเขียนโปรแกรมเชิงตรรกะ

ไพทอนเก็บข้อมูลแบบไดนามิก (dynamic type) และใช้ขั้นตอนวิธีการนับการอ้างอิง (Reference counting) ประกอบรวมกับตัวเก็บขยะ (garbage collector) เพื่อจัดการหน่วยความจำ

ไพทอนมาพร้อมเครื่องมือสำหรับการเขียนโปรแกรมเชิงฟังก์ชั่นแบบที่พบในภาษาลิสป์ นอกจากนี้ไพทอนมีเครื่องมืออย่างเช่นฟังก์ชัน `filter` `map` และ `reduce`, เครื่องมือการสร้างลิสต์ (list comprehension), แถวลำดับแบบจับคู่ (ในชื่อของ Dictionary), เซต และเครื่องมือสร้างการวนซ้ำ (generator)

แนวคิดและหลักการของไพทอนถูกสรุปในเอกสารชื่อว่า en:Zen of Python ซึ่งระบุหลักการของภาษาไว้เช่น

  • สวยงามดีกว่าน่าเกลียด (Beautiful is better than ugly.)
  • ชัดแจ้งดีกว่าซ่อนเร้น (Explicit is better than implicit.)
  • เรียบง่ายดีกว่าซับซ้อน (Simple is better than complex.)
  • ซับซ้อนดีกว่ายุ่งเหยิง(Complex is better than complicated.)
  • ต้องใส่ใจการอ่านออกได้ง่าย(Readability counts.)

จุดเด่นของภาษาไพทอน

ความเป็นภาษาสคริปต์

เนื่องจากไพทอนเป็นภาษาสคริปต์ ทำให้ใช้เวลาในการเขียนและคอมไพล์ไม่มาก ทำให้เหมาะกับงานด้านการดูแลระบบ (System administration) เป็นอย่างยิ่ง มีการสนับสนุนภาษาไพทอนโดยเป็นส่วนหนึ่งของระบบปฏิบัติการยูนิกซ์, ลินุกซ์ และสามารถติดตั้งให้ทำงานเป็นภาษาสคริปต์ของวินโดวส์ ผ่านระบบ Windows Script Host ได้อีกด้วย

ไวยากรณ์ที่อ่านง่าย

ไวยากรณ์ของไพทอนได้กำจัดการใช้สัญลักษณ์ที่ใช้ในการแบ่งบล็อกของโปรแกรม และใช้การย่อหน้าแทน ทำให้สามารถอ่านโปรแกรมที่เขียนได้ง่าย นอกจากนั้นยังมีการสนับสนุนการเขียน docstring ซึ่งเป็นข้อความสั้น ๆ ที่ใช้อธิบายการทำงานของฟังก์ชัน, คลาส และโมดูลอีกด้วย

ความเป็นภาษากาว

ไพทอนเป็นภาษากาว (Glue Language) ได้อย่างดีเนื่องจากสามารถเรียกใช้ภาษาโปรแกรมอื่น ๆ ได้หลายภาษา ทำให้เหมาะที่จะใช้เขียนเพื่อประสานงานโปรแกรมที่เขียนในภาษาต่างกันได้

ตัวอย่างภาษาโปรแกรมไพทอน

ตัวอย่างด้านล่างเป็นตัวอย่างสำหรับโปรแกรมซึ่งเขียนด้วยภาษาไพทอน 3 ซึ่งมีโครงสร้างทางวากยสัมพันธ์ต่างจากไพทอน 2

โปรแกรมสวัสดีชาวโลก

print('Hello, world!')

โปรแกรมสำหรับการคำนวณเลขแฟกทอเรียลของจำนวนเต็มบวกใดๆ

# คำสั่งในบรรทัดด้านล่างรับเข้าตัวเลข ก่อนแปลงเป็นจำนวนเต็มบวก
# ชุดคำสั่ง `int()` ในไพทอนจะตัดทศนิยมทิ้งโดยอัตโนมัติ
n = int(input('กรุณาป้อนข้อมูลรับเข้าตัวเลขใดๆ เพื่อคำนวณค่าแฟกทอเรียล: '))

# หากตัวเลขมีค่าน้อยกว่า 0 ให้ทำการยกแสดงข้อผิดพลาด (error raising)
# โดยให้แสดงข้อผิดพลาดแบบ `ValueError` ขึ้นมา
if n < 0:
    raise ValueError('คุณจำเป็นต้องป้อนจำนวนเต็มบวก')

# ประกาศค่าตั้งต้นของแฟกทอเรียล
fact = 1

# วนซ้ำสำหรับค่า i ตั้งแต่ 2 ถึง (n+1)
for i in range(2, n + 1):
    # เทียบเท่ากับ fact = fact * i
    fact *= i

# แสดงผลคำตอบ
print(fact)

ไพทอนในแพลตฟอร์มต่าง ๆ

ผู้เขียนโปรแกรมภาษาไพทอนสามารถเลือกใช้แพลตฟอร์ม

ซีไพทอน

ซีไพทอน (CPython) คือแพลตฟอร์มภาษาไพทอนดั้งเดิม โปรแกรมอินเทอร์พรีเตอร์ถูกเขียนโดยภาษาซี ซึ่งคอมไพล์ใช้ได้บนหลายระบบปฏิบัติการ เช่น วินโดวส์, ยูนิกซ์, ลินุกซ์ การใช้งานสามารถทำได้โดยการติดตั้งโปรแกรมอินเทอร์พรีเตอร์และแพ็คเกจที่จำเป็นต่าง ๆ

ไจธอน

ไจธอน (Jython) เป็นแพลตฟอร์มภาษาไพทอนที่ถูกพัฒนาบนแพลตฟอร์มจาวา เพื่อเพิ่มอำนวยความสะดวกในการใช้ความสามารถภาษาสคริปต์ของไพทอนลงในซอฟต์แวร์จาวาอื่น ๆ การใช้งานสามารถทำได้โดยการติดตั้งจาวาและเรียกไลบรารีของไจธอนซึ่งมาในรูปไบนารีเพื่อใช้งาน

ไพทอนดอตเน็ต

Python.NET เป็นการพัฒนาภาษาไพทอนให้สามารถทำงานบนดอตเน็ตเฟรมเวิร์กของไมโครซอฟท์ได้ โดยโปรแกรมที่ถูกเขียนจะถูกแปลงเป็น CLR ปัจจุบันมีโครงการที่นำภาษาไพทอนมาใช้บน .NET Framework ของไมโครซอฟท์แล้วคือโครงการ IronPython

ไลบรารีในไพทอน

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

ไพทอนมีชุดไลบรารีมาตรฐานมาให้ตั้งแต่ติดตั้งอินเตอร์พรีเตอร์ นอกจากนั้นยังมีผู้พัฒนาจากทั่วโลกดำเนินการพัฒนาไลบรารีซึ่งช่วยอำนวยความสะดวกในด้านต่าง ๆ โดยจะเผยแพร่ในรูปแบบของแพ็คเกจต่าง ๆ ซึ่งสามารถติดตั้งเพิ่มเติมได้อีกด้วย

แพ็คเกจเพิ่มเติมที่น่าสนใจ

การนำไปใช้งาน

ด้วยความยืดหยุ่นของภาษาไพทอน และความเป็น ภาษาสคริปต์ทำให้มีการใช้งานไพทอนอย่างกว้างขวาง

ตัวแก้ไขสำหรับไพทอน

ผู้ใช้สามารถใช้ตัวแก้ไขข้อความทั่วไปในการแก้ไขโปรแกรมภาษาไพทอน นอกจากนั้นยังมี Integrated Development Environmentอื่น ๆ ให้เลือกใช้อีก อาทิ

  • PyScripter: เป็นชุดเครื่องมือสำหรับพัฒนาภาษาไพทอน บนระบบปฏิบัติการวินโดวน์ ที่ให้ผู้ใช้สามารถนำไปใช้ฟรี (open source)
  • Python IDLE: มีอยู่ในชุดอินเตอร์พรีเตอร์อยู่แล้ว สามารถเลือกติดตั้งได้
  • PythonWin: เป็นตัวแก้ไขในชุดของ PyWin32
  • ActivePython: จาก ActiveState (ล่าสุด รุ่น 2.5.1 )
  • SPE (Stani's Python Editor) : เป็นตัวแก้ไขที่มาพร้อมกับตัวออกแบบยูสเซอร์อินเทอร์เฟส wxGlade และเครื่องมือสำหรับ Regular Expression มีระบบ Syntax Highlight และการจัดย่อหน้าตามวากยสัมพันธ์ของไพทอนให้อัตโนมัติพัฒนาขึ้นจากภาษาไพทอนดาวน์โหลดใช้งานได้ฟรีที่ http://spe.pycs.net
  • WingIDE: ตัวแก้ไขที่มีระบบ Syntax Highlight และการจัดย่อหน้าตามไวยกรณ์ของไพทอนให้อัตโนมัติ แต่ไม่ใช่ฟรีแวร์
  • Komodo: ตัวแก้ไขที่มีระบบ Syntax Highlight, การจัดย่อหน้าตามไวยกรณ์ของไพทอนให้อัตโนมัติและเติมคำอัตโนมัติ เป็นตัวแก้ไขจาก ActiveState อีกตัวหนึ่ง ไม่ใช่ฟรีแวร์
  • Pydev: เป็น Python IDE สำหรับ Eclipse สามารถใช้พัฒนา Python, Jython และ Ironpython
  • PyCharm: เป็น Python IDE ที่สร้างขึ้นโดยบริษัท JetBrains แบ่งออกเป็น 2 เวอร์ชัน ได้แก่ Community Edition (ใช้งานฟรี) และ Professional Edition (เสียเงินสามารถทดลองใช้ได้ 30 วัน) โดย Professional Edition จะเพิ่มความสามารถในการตรวจ syntax ของเฟรมเวิร์กที่ได้รับความนิยมที่ใช้งานร่วมกับภาษาไพทอน เช่น Django, Flask, Google App Engine เป็นต้น

องค์กรสำคัญที่ใช้ไพทอน

ซอฟต์แวร์ที่เขียนด้วยไพทอน

  • บิตทอร์เรนต์ (BitTorrent)
  • Chandler โปรแกรมจัดการข้อมูลส่วนบุคคล
  • บางส่วนของ GNOME
  • บางส่วนของ Blender
  • Mailman โปรแกรมจัดการจดหมายกลุ่ม (เมลลิ่งลิสต์)
  • MoinMoin โปรแกรมวิกิ
  • Portage ส่วนจัดการแพกเกจของ Gentoo Linux
  • Zope แอปพลิเคชันเซิร์ฟเวอร์
  • เทอร์โบเกียร์ กรอบงานขนาดใหญ่สำหรับพัฒนาโปรแกรมประยุกต์บนเว็บ
  • Django กรอบงานขนาดใหญ่สำหรับพัฒนาโปรแกรมประยุกต์บนเว็บ

อ้างอิง

  1. "Python 3.5.0 Release". Python Software Foundation. สืบค้นเมื่อ 13 Sep 2015.
  2. "Python 2.7.10 Release". Python Software Foundation. {{cite web}}: |access-date= ต้องการ |url= (help); |url= ไม่มีหรือว่างเปล่า (help); ข้อความ "https://www.python.org/downloads/release/python-2710/" ถูกละเว้น (help)
  3. https://web.archive.org/web/20120623165941/http://cutter.rexx.com/~dkuhlman/python_book_01.html

แหล่งข้อมูลอื่น