ข้ามไปเนื้อหา

ภาษาไพทอน

จากวิกิพีเดีย สารานุกรมเสรี
(เปลี่ยนทางจาก Python (programming language))
ภาษาไพทอน
Image
กระบวนทัศน์พหุกระบวนทัศน์: เชิงวัตถุ,[1] เชิงกระบวนความ (เชิงคำสั่ง), เชิงฟังก์ชัน, เชิงโครงสร้าง, เชิงสะท้อนลักษณ์
ออกแบบโดยคีโด ฟัน รอสซึม
ผู้พัฒนาPython Software Foundation
ปรากฏครั้งแรก20 กุมภาพันธ์ 1991; 35 ปีก่อน (1991-02-20)[2]
รุ่นเสถียร
3.14.4[3] แก้ไขบนวิกิสนเทศ / 7 เมษายน 2026; 29 วันก่อน (7 เมษายน 2026)
รุ่นทดสอบ
3.15.0a1 / 18 สิงหาคม 2025; 8 เดือนก่อน (2025-08-18)
การกำหนดชนิดตัวแปรเป็ด, พลวัต, เข้มข้น;[4] การระบุชนิดข้อมูลทางเลือก[a]
การจัดการหน่วยความจำเก็บขยะอัตโนมัติ
โอเอสข้ามแพลตฟอร์ม[b]
สัญญาอนุญาตPython Software Foundation License
นามสกุลไฟล์.py,[11] .pyc,[12] .pyd,[13] .pyi,[14] .pyw,[15] .pyz[16]
เว็บไซต์python.org
ตัวแปลภาษาหลัก
CPython, PyPy, MicroPython, CircuitPython, IronPython, Jython, Stackless Python
ภาษาถิ่น
Cython, RPython, Starlark[17]
ได้รับอิทธิพลจาก
ABC,[18] Ada,[19] ALGOL 68,[20] APL,[21] C,[22] C++,[23] CLU,[24] Dylan,[25] Haskell,[26][21] Icon,[27] Lisp,[28] Modula-3,[20][23] Perl,[29] Standard ML[21]
มีอิทธิพลต่อ
Apache Groovy, Boo, Cobra, CoffeeScript,[30] D, F#, GDScript, Go, JavaScript,[31][32] Julia,[33] Mojo,[34] Nim, Ruby,[35] Swift,[36] V[37]

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

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

ไพทอนมักถูกมองว่าเป็นภาษาที่สร้างต่อจากภาษา ABC โดยไพทอน 2.0 ซึ่งออกเผยแพร่เมื่อ ค.ศ. 2000 มาพร้อมกับเครื่องมือสำหรับการเขียนโปรแกรมจำนวนหนึ่ง อย่างเช่น ตัวสร้างแถวรายการ (list comprehension)

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

ไพทอนรุ่น 2.0 หมดการสนับสนุนอย่างเป็นทางการใน ค.ศ. 2020 โดยการหมดการสนับสนุนนี้ถูกวางแผนตั้งแต่ ค.ศ. 2015 และไพทอนรุ่น 2.7.18 เป็นไพทอนรุ่น 2.7 และรุ่นตระกูล 2.0 ตัวสุดท้ายที่ออกเผยแพร่[39] โดยหลังจากนี้จะไม่มีการสนับสนุนความปลอดภัยหรือการปรับปรุงอื่นใดเพิ่มเติมสำหรับภาษาไพทอนรุ่น 2.0 อีก[40][41]

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

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

[แก้]


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

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

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

แนวคิดและหลักการของไพทอนถูกสรุปในเอกสารชื่อว่า 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.)

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

โครงสร้างทางวากยสัมพันธ์ (syntax) ของภาษาไพทอนมุ่งเน้นความเรียบง่ายและไม่ยุ่งเหยิง ในขณะเดียวกันยังคงให้อิสระกับนักพัฒนาโปรแกรมในการเลือกวิธีการเขียนโปรแกรมได้เอง ปรัชญาการออกแบบนี้ของไพทอนอยู่บนความเชื่อที่ว่า "ควรจะมีทางเดียว—และทางเดียวเท่านั้น—ในการทำอะไรสักอย่าง" ("there should be one—and preferably only one—obvious way to do it") ซึ่งตรงกันข้ามกับแนวคิดการออกแบบของภาษาเพิร์ลที่เชื่อว่า "เราควรทำอะไรได้มากกว่าหนึ่งวิธี" ("There's more than one way to do it") หากจะกล่าวให้ละเอียด อะเล็กซ์ มาร์เตลลี ผู้เขียนตำราภาษาไพทอน และสมาชิกของมูลนิธิซอฟต์แวร์ไพทอน กล่าวว่า "ในวัฒนธรรมของไพทอน การอธิบายว่า[วิธีการเขียนโปรแกรม]บางอย่างนั้นฉลาดมากไม่ถือเป็นคำชม"

นักพัฒนาโปรแกรมที่ใช้ภาษาไพทอนมักพยายามหลีกเลี่ยงการปรับปรุงประสิทธิภาพก่อนถึงเวลาอันควร (premature optimisation) และมักปฏิเสธการรวมโค้ดของโครงการ CPython ที่ต้องแลกประสิทธิภาพที่เพิ่มขึ้นมาเล็กน้อยกับความอ่านยากของโค้ด โดยเมื่อต้องเขียนชุดคำสั่งที่เวลาประมวลผลเป็นเรื่องสำคัญ นักพัฒนาโปรแกรมไพทอนจะนิยมเขียนส่วยขยายของโปรแกรมนั้นด้วยภาษา C แยกออกมา หรือใช้ PyPy ซึ่งเป็นตัวแปลภาษาแบบในเวลา (Just-in-time compiler) สำหรับภาษาไพทอน นอกจากนี้นักพัฒนายังมีตัวเลือกอื่นเช่นการใช้ไซทอนซึ่งเป็นตัวแปลรหัสคำสั่งจากภาษาไพทอนไปเป็นภาษาซี

หนึ่งในเป้าหมายสำคัญของภาษาไพทอนคือความสนุกในการใช้งาน ชื่อของภาษาโปรแกรมมิงไพทอนนั้นมาจากชื่อของกลุ่มนักแสดงตลก Monty Python จากประเทศอังกฤษ ความมุ่งมั่นในการทำให้ภาษาไพทอนนั้นสนุกต่อการใช้นั้นพบเห็นได้เพิ่มเติมจากตัวอย่างของชุดคำสั่งในภาษาไพทอนบนเว็บไซต์ของโครงการไพทอนเอง ซึ่งเลือกใช้คำอย่างเช่น "spam and eggs" (เพื่อล้อกับตอนหนึ่งของรายการตลกจาก Monty Python) แทนที่จะเลือกใช้คำทั่วไปอย่าง foo และ bar ตามตัวอย่างภาษาโปรแกรมมิงอื่น

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

ผู้ใช้ ผู้หลงใหล หรือผู้สันทัดภาษาไพทอนมักได้รับการขนานนามว่าเป็น "ไพธอนิสตา" (Pythonista)

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

[แก้]

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

[แก้]

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

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

[แก้]

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

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

[แก้]

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

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

[แก้]

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

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

[แก้]
print("Hello World!")
#หรือ
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 *= i
    # เทียบเท่ากับ fact = fact * i

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

ผลที่ได้คือจะให้ป้อนจำนวนเต็มบวกในโปรแกรม ซึ่งจะนำไปใช้ในการคำนวณค่าแฟกทอเรียลที่ต้องการทราบ เช่น

กรุณาป้อนข้อมูลรับเข้าตัวเลขใด ๆ เพื่อคำนวณค่าแฟกทอเรียล: 3
6

แต่ถ้าป้อนอะไรก็ตามที่ไม่ใช่จำนวนเต็มบวก จะเกิดเป็นข้อผิดพลาดแบบ ValueError ดังตัวอย่างนี้

กรุณาป้อนข้อมูลรับเข้าตัวเลขใด ๆ เพื่อคำนวณค่าแฟกทอเรียล: -1
Traceback (most recent call last):
.
.
.
ValueError: คุณต้องป้อนจำนวนเต็มบวก

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

[แก้]

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

ซีไพทอน

[แก้]

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

ไจธอน

[แก้]

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

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

[แก้]

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

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

[แก้]

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

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

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

[แก้]

หมายเหตุ

[แก้]
  1. ตั้งแต่เวอร์ชัน 3.5 เป็นต้นไป แต่คำแนะนำเหล่านี้จะถูกละเลย ยกเว้นเมื่อใช้เครื่องมือภายนอก[5]

อ้างอิง

[แก้]
  1. "General Python FAQ – Python 3 documentation". docs.python.org. สืบค้นเมื่อ 7 July 2024.
  2. "Python 0.9.1 part 01/21". alt.sources archives. เก็บจากแหล่งเดิมเมื่อ 11 August 2021. สืบค้นเมื่อ 11 August 2021.
  3. "Python 3.15.0a8, 3.14.4 and 3.13.13 are out!" (in ภาษาอังกฤษ). 7 เมษายน 2026. Retrieved 8 เมษายน 2026.{{cite web}}: CS1 maint: unrecognized language (link)
  4. "Why is Python a dynamic language and also a strongly typed language". Python Wiki. เก็บจากแหล่งเดิมเมื่อ 14 March 2021. สืบค้นเมื่อ 27 January 2021.
  5. อ้างอิงผิดพลาด: ป้ายระบุ <ref> ไม่ถูกต้อง ไม่มีการกำหนดข้อความสำหรับอ้างอิงชื่อ type_hint-PEP
  6. von Löwis, Martin; Cannon, Brett. "PEP 11 – CPython platform support". Python Enhancement Proposals (PEPs) (ภาษาอังกฤษ). สืบค้นเมื่อ 22 April 2024.
  7. "PEP 738 – Adding Android as a supported platform | peps.python.org". Python Enhancement Proposals (PEPs) (ภาษาอังกฤษ). สืบค้นเมื่อ 19 May 2024.
  8. อ้างอิงผิดพลาด: ป้ายระบุ <ref> ไม่ถูกต้อง ไม่มีการกำหนดข้อความสำหรับอ้างอิงชื่อ DownloadOther
  9. "test – Regression tests package for Python". Python 3.7.17 documentation. เก็บจากแหล่งเดิมเมื่อ 17 May 2022. สืบค้นเมื่อ 17 May 2022.
  10. "platform – Access to underlying platform's identifying data". Python 3.10.4 documentation. เก็บจากแหล่งเดิมเมื่อ 17 May 2022. สืบค้นเมื่อ 17 May 2022.
  11. อ้างอิงผิดพลาด: ป้ายระบุ <ref> ไม่ถูกต้อง ไม่มีการกำหนดข้อความสำหรับอ้างอิงชื่อ venners-interview-pt-1
  12. Cannon, Brett (20 February 2015). "PEP 488 – Elimination of PYO files". Python Enhancement Proposals (PEPs) (ภาษาอังกฤษ). เก็บจากแหล่งเดิมเมื่อ 16 January 2026. สืบค้นเมื่อ 28 February 2026.
  13. Ahlstrom, James C. (11 October 2001). "PEP 273 – Import Modules from Zip Archives". Python Enhancement Proposals (PEPs) (ภาษาอังกฤษ). เก็บจากแหล่งเดิมเมื่อ 25 Feb 2026. สืบค้นเมื่อ 28 February 2026.
  14. Harper Smith, Emma (9 September 2017). "PEP 561 – Distributing and Packaging Type Information". Python Enhancement Proposals (PEPs) (ภาษาอังกฤษ). เก็บจากแหล่งเดิมเมื่อ 7 December 2025. สืบค้นเมื่อ 28 February 2026.
  15. Hammond, Mark; von Löwis, Martin (15 March 2011). "PEP 397 – Python launcher for Windows". Python Enhancement Proposals (PEPs) (ภาษาอังกฤษ). เก็บจากแหล่งเดิมเมื่อ 4 February 2026. สืบค้นเมื่อ 28 February 2026.
  16. Holth, Daniel; Moore, Paul (30 March 2013). "PEP 0441 – Improving Python ZIP Application Support". Python Enhancement Proposals (PEPs). เก็บจากแหล่งเดิมเมื่อ 16 November 2015. สืบค้นเมื่อ 12 November 2015.
  17. "Starlark Language". bazel.build. เก็บจากแหล่งเดิมเมื่อ 15 June 2020. สืบค้นเมื่อ 25 May 2019.
  18. อ้างอิงผิดพลาด: ป้ายระบุ <ref> ไม่ถูกต้อง ไม่มีการกำหนดข้อความสำหรับอ้างอิงชื่อ faq-created
  19. "Ada 83 Reference Manual (raise statement)". archive.adaic.com. เก็บจากแหล่งเดิมเมื่อ 22 October 2019. สืบค้นเมื่อ 7 January 2020.
  20. 1 2 อ้างอิงผิดพลาด: ป้ายระบุ <ref> ไม่ถูกต้อง ไม่มีการกำหนดข้อความสำหรับอ้างอิงชื่อ 98-interview
  21. 1 2 3 "itertools – Functions creating iterators for efficient looping". Python 3.7.17 documentation. เก็บจากแหล่งเดิมเมื่อ 14 June 2020. สืบค้นเมื่อ 22 November 2016.
  22. อ้างอิงผิดพลาด: ป้ายระบุ <ref> ไม่ถูกต้อง ไม่มีการกำหนดข้อความสำหรับอ้างอิงชื่อ AutoNT-1
  23. 1 2 อ้างอิงผิดพลาด: ป้ายระบุ <ref> ไม่ถูกต้อง ไม่มีการกำหนดข้อความสำหรับอ้างอิงชื่อ classmix
  24. อ้างอิงผิดพลาด: ป้ายระบุ <ref> ไม่ถูกต้อง ไม่มีการกำหนดข้อความสำหรับอ้างอิงชื่อ effbot-call-by-object
  25. อ้างอิงผิดพลาด: ป้ายระบุ <ref> ไม่ถูกต้อง ไม่มีการกำหนดข้อความสำหรับอ้างอิงชื่อ AutoNT-2
  26. อ้างอิงผิดพลาด: ป้ายระบุ <ref> ไม่ถูกต้อง ไม่มีการกำหนดข้อความสำหรับอ้างอิงชื่อ AutoNT-3
  27. อ้างอิงผิดพลาด: ป้ายระบุ <ref> ไม่ถูกต้อง ไม่มีการกำหนดข้อความสำหรับอ้างอิงชื่อ AutoNT-4
  28. อ้างอิงผิดพลาด: ป้ายระบุ <ref> ไม่ถูกต้อง ไม่มีการกำหนดข้อความสำหรับอ้างอิงชื่อ AutoNT-6
  29. "re – Regular expression operations". Python 3.10.6 documentation. เก็บจากแหล่งเดิมเมื่อ 18 July 2018. สืบค้นเมื่อ 6 September 2022.
  30. "CoffeeScript". coffeescript.org. เก็บจากแหล่งเดิมเมื่อ 12 June 2020. สืบค้นเมื่อ 3 July 2018.
  31. Rauschmayer, Axel (24 February 2013). "Perl and Python influences in JavaScript". 2ality.com. เก็บจากแหล่งเดิมเมื่อ 26 December 2018. สืบค้นเมื่อ 15 May 2015.
  32. Rauschmayer, Axel. "Chapter 3: The Nature of JavaScript; Influences". Speaking JavaScript. O'Reilly. เก็บจากแหล่งเดิมเมื่อ 26 December 2018. สืบค้นเมื่อ 15 May 2015.
  33. Bezanson, Jeff; Karpinski, Stefan; Shah, Viral B.; Edelman, Alan (February 2012). "Why We Created Julia". Julia website. เก็บจากแหล่งเดิมเมื่อ 2 May 2020. สืบค้นเมื่อ 5 June 2014.
  34. อ้างอิงผิดพลาด: ป้ายระบุ <ref> ไม่ถูกต้อง ไม่มีการกำหนดข้อความสำหรับอ้างอิงชื่อ Mojo
  35. อ้างอิงผิดพลาด: ป้ายระบุ <ref> ไม่ถูกต้อง ไม่มีการกำหนดข้อความสำหรับอ้างอิงชื่อ bini
  36. อ้างอิงผิดพลาด: ป้ายระบุ <ref> ไม่ถูกต้อง ไม่มีการกำหนดข้อความสำหรับอ้างอิงชื่อ lattner2014
  37. อ้างอิงผิดพลาด: ป้ายระบุ <ref> ไม่ถูกต้อง ไม่มีการกำหนดข้อความสำหรับอ้างอิงชื่อ vpeople
  38. https://web.archive.org/web/20120623165941/http://cutter.rexx.com/~dkuhlman/python_book_01.html
  39. Peterson, Benjamin (2020-04-20). "Python Insider: Python 2.7.18, the last release of Python 2". Python Insider. สืบค้นเมื่อ 2020-04-27.
  40. "Sunsetting Python 2". Python.org (ภาษาอังกฤษ). สืบค้นเมื่อ 2019-09-22.
  41. "PEP 373 -- Python 2.7 Release Schedule". Python.org (ภาษาอังกฤษ). สืบค้นเมื่อ 2019-09-22.

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

[แก้]