กลับไปหน้าบทความ

อ่าน 51 นาที

ไพธอน (ภาษาโปรแกรม)

Pythonเป็น ภาษาโปรแกรม ระดับสูงอเนกประสงค์ที่เน้นความสามารถในการอ่านโค้ด ความเรียบง่าย และความง่ายในการเขียน โค้ดโดยใช้การเยื้องที่สำคัญ ไลบรารีมาตรฐานที่ครอบคลุม ("รวมทุกอย่าง")..

ไพธอน (ภาษาโปรแกรม)

ไพธอน
กระบวนทัศน์หลายกระบวนทัศน์ : เชิงวัตถุ [ 1 ] เชิงกระบวนการ ( เชิงบังคับ ) เชิงฟังก์ชันมีโครงสร้างสะท้อน
ออกแบบ โดยกุยโด ฟาน รอสซัม
นักพัฒนามูลนิธิซอฟต์แวร์ Python
 ปรากฏครั้งแรก20  กุมภาพันธ์ พ.ศ. 2534  ( 1991-02-20 ) [ 2 ]
เวอร์ชันเสถียร
3.14.6 [ 3 ] / 10 มิถุนายน 2026 ( 10 มิถุนายน 2026 ) แก้ไขข้อมูลนี้บนวิกิดาต้า 
วินัยในการพิมพ์เป็ดไดนามิกแข็งแกร่ง ; [ 4 ] คำอธิบายประเภทเสริม[ a ]
การจัดการหน่วยความจำเก็บขยะ
โอเอสข้ามแพลตฟอร์ม[ b ]
ใบอนุญาตใบอนุญาต Python Software Foundation
นามสกุลไฟล์.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เป็น ภาษาโปรแกรม ระดับสูงอเนกประสงค์ที่เน้นความสามารถในการอ่านโค้ด ความเรียบง่าย และความง่ายในการเขียน โค้ดโดยใช้การเยื้องที่สำคัญ [ 38 ]ไลบรารีมาตรฐานที่ครอบคลุม ("รวมทุกอย่าง") และการเก็บขยะ Python รองรับกระบวนทัศน์การเขียนโปรแกรม หลายแบบ แต่เน้นที่การเขียนโปรแกรมเชิงวัตถุและ การกำหนดประเภท แบบไดนามิก

Guido van Rossumเริ่มพัฒนา Python ในช่วงปลายทศวรรษ 1980 โดยมีเป้าหมายเพื่อพัฒนาต่อยอดจาก ภาษาโปรแกรม ABC Python  3.0 ซึ่งเปิดตัวในปี 2008 เป็นการปรับปรุงครั้งใหญ่และไม่สามารถใช้งานร่วมกับเวอร์ชันก่อนหน้าได้อย่างสมบูรณ์ เริ่มต้นด้วย Python 3.5 [ 39 ]ได้มีการเพิ่มความสามารถและคำหลักสำหรับการกำหนดประเภทข้อมูลลงในภาษา ทำให้สามารถใช้การกำหนดประเภทข้อมูลแบบคงที่ได้[ 40 ]ปี 2026มูลนิธิซอฟต์แวร์ Pythonสนับสนุน Python 3.10, 3.11, 3.12, 3.13 และ 3.14 ตามรอบการเผยแพร่ประจำปีของโครงการและนโยบายการสนับสนุนห้าปี ปัจจุบัน Python 3.15 อยู่ในขั้นตอนการพัฒนาเบต้า และคาดว่าจะเปิดตัวเวอร์ชันเสถียรในเดือนตุลาคม 2026 [ 41 ]เวอร์ชันก่อนหน้าในซีรี่ส์ 3.x หมดอายุการใช้งานแล้วและจะไม่ได้รับการอัปเดตด้านความปลอดภัยอีกต่อไป

Python ได้รับการใช้งานอย่างแพร่หลายในชุมชนการเรียนรู้ของเครื่อง[ 42 ] [ 43 ] [ 44 ] [ 45 ]มีการสอนกันอย่างแพร่หลายในฐานะภาษาโปรแกรมเบื้องต้น[ 46 ]ตั้งแต่ปี 2003 Python ได้รับการจัดอันดับให้อยู่ใน 10 อันดับแรกของภาษาโปรแกรมยอดนิยมอย่างต่อเนื่องใน ดัชนีชุมชนการเขียนโปรแกรม TIOBEซึ่งจัดอันดับภาษาโปรแกรมตามการค้นหาใน 24 แพลตฟอร์ม[ 47 ]

ประวัติศาสตร์

Guido van Rossumผู้ก่อตั้งภาษา Python กล่าวสุนทรพจน์ในงาน PyCon US 2024

ภาษา Python ถูกคิดค้นขึ้นในช่วงปลายทศวรรษ 1980 [ 11 ]โดยGuido van Rossumที่Centrum Wiskunde & Informatica (CWI) ในประเทศเนเธอร์แลนด์[ 48 ] มันถูกออกแบบมาให้เป็นภาษาโปรแกรมที่สืบทอดมาจากภาษาABCซึ่งได้รับแรงบันดาลใจจากSETL [ 49 ]ที่สามารถจัดการกับข้อยกเว้นและเชื่อมต่อกับระบบปฏิบัติการAmoeba ได้[ 18 ]การใช้งาน Python เริ่มขึ้นในเดือนธันวาคม1989 [ 48 ] Van Rossum เปิดตัวครั้งแรกในปี 1991 ในชื่อ Python 0.9.0 [ 48 ] Van Rossum รับผิดชอบโครงการนี้แต่เพียงผู้เดียวในฐานะนักพัฒนาหลัก จนกระทั่งวันที่ 12 กรกฎาคม 2018 เมื่อเขาประกาศ "ลาพักร้อนถาวร" จากความรับผิดชอบในฐานะ " เผด็จการใจดีตลอดชีวิต " (BDFL) ของ Python; ชื่อนี้มอบให้เขาโดยชุมชน Python เพื่อสะท้อนถึงความมุ่งมั่นระยะยาวของเขาในฐานะผู้มีอำนาจตัดสินใจหลักของโครงการ[ 50 ] [ c ]ในเดือนมกราคม2019 นักพัฒนาหลักของ Python ที่กระตือรือร้นได้เลือกคณะกรรมการบริหารจำนวน 5 คนเพื่อนำโครงการ[ 51 ] [ 52 ]   

ชื่อPythonมาจากซีรีส์ตลกของอังกฤษเรื่องMonty Python's Flying Circus [ 53 ] (ดู§  การตั้งชื่อ )

Python 2.0 เปิดตัวเมื่อวันที่ 16 ตุลาคม พ.ศ. 2543 โดยมีคุณสมบัติใหม่มากมาย เช่นlist comprehensions , การเก็บขยะแบบตรวจจับวงจร , การนับการอ้างอิงและการรองรับUnicode [ 54 ] เดิมที Python 2.7 มีกำหนด สิ้นสุดการสนับสนุนในปี พ.ศ. 2558 แต่ต่อมาได้เลื่อนออกไปเป็นปี พ.ศ. 2563 เนื่องจากกังวลว่าโค้ดที่มีอยู่จำนวนมากจะไม่สามารถพอร์ตไปยัง Python  3 ได้ง่าย [ 55 ] [ 56 ]ปัจจุบันไม่มีการแก้ไขช่องโหว่ด้านความปลอดภัยหรือการอัปเดตอีกต่อไป[ 57 ] [ 58 ] แม้ว่า Python 2.7 และเวอร์ชันเก่ากว่าจะไม่ได้รับการสนับสนุนอย่างเป็นทางการ แต่ PyPyซึ่งเป็นการใช้งาน Python อย่างไม่เป็นทางการอีกแบบหนึ่งยังคงสนับสนุน Python 2 เช่น "2.7.18+" (บวก 3.11 ) โดยเครื่องหมายบวกหมายถึง (อย่างน้อยบางส่วน) " การอัปเดตความปลอดภัย ที่พอร์ตกลับมา " [ 59 ]

Python  3.0 เปิดตัวเมื่อวันที่ 3 ธันวาคม พ.ศ. 2551 และเป็นการปรับปรุงครั้งใหญ่และไม่สามารถใช้งานร่วมกับเวอร์ชันก่อนหน้าได้อย่างสมบูรณ์ โดยมีการเปลี่ยนแปลงความหมายและไวยากรณ์บางส่วน Python  2.7.18 ซึ่งเปิดตัวในปี พ.ศ. 2563 เป็นเวอร์ชันสุดท้ายของ Python  2 [ 60 ]การเปิดตัวหลายครั้งในซีรีส์ Python 3.x ได้เพิ่มไวยากรณ์ใหม่ให้กับภาษา และทำการเปลี่ยนแปลงเล็กน้อย (ซึ่งถือว่าเล็กน้อยมาก) ที่ไม่สามารถใช้งานร่วมกับเวอร์ชันก่อนหน้าได้

ข้อมูล ณ เดือนพฤษภาคม 2569Python 3.14.6เป็นเวอร์ชันเสถียรล่าสุด เวอร์ชัน 3.x เก่าทั้งหมดได้รับการอัปเดตความปลอดภัยจนถึง Python 3.9.24 จากนั้นอีกครั้งด้วย 3.9.25 ซึ่งเป็นเวอร์ชันสุดท้ายในซีรี่ส์ 3.9 Python 3.10 เป็นสาขาที่เก่าที่สุดที่ได้รับการสนับสนุนตั้งแต่เดือนพฤศจิกายน 2025 [ 61 ] Python 3.15 มีเวอร์ชันอัลฟ่าออกมาแล้ว และ Android มีไฟล์ปฏิบัติการที่ดาวน์โหลดได้อย่างเป็นทางการสำหรับ Python 3.14 การเผยแพร่จะได้รับการสนับสนุนเต็มรูปแบบเป็นเวลาสองปี ตามด้วยการสนับสนุนด้านความปลอดภัยเป็นเวลาสามปี

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

Python เป็นภาษาโปรแกรมแบบหลายพาราดิกม์ รองรับการเขียนโปรแกรมเชิงวัตถุและการเขียนโปรแกรมเชิงโครงสร้างอย่างเต็มที่ และคุณสมบัติหลายอย่างยังรองรับการเขียนโปรแกรมเชิงฟังก์ชันและการเขียนโปรแกรมเชิงแง่มุมรวมถึงเมตาโปรแกรมมิง[ 62 ]และเมตาออบเจ็กต์ [ 63 ] พาราดิกม์อื่นๆ อีกมากมายได้รับการสนับสนุนผ่านส่วนขยาย รวมถึงการออกแบบโดยสัญญา[ 64 ] [ 65 ]และ การ เขียนโปรแกรมเชิงตรรกะ[ 66 ] Python มักถูกเรียกว่า'ภาษาเชื่อมต่อ' [ 67 ]เนื่องจากได้รับการออกแบบมาโดยเฉพาะเพื่อให้สามารถรวมส่วนประกอบที่เขียนด้วยภาษาอื่นๆ ได้

Python ใช้การกำหนดประเภทแบบไดนามิกและการผสมผสานระหว่างการนับการอ้างอิงและตัวเก็บขยะที่ตรวจจับวงจรสำหรับ การจัดการหน่วย ความจำ[ 68 ]มันใช้การแก้ไขชื่อ แบบไดนามิก ( การผูกแบบล่าช้า ) ซึ่งผูกชื่อเมธอดและตัวแปรในระหว่างการดำเนินการโปรแกรม

การออกแบบของ Python ให้การสนับสนุนบางส่วนสำหรับการเขียนโปรแกรมเชิงฟังก์ชันใน " ประเพณี Lisp " โดยมีฟังก์ชันfilter, map, และ ; การ สร้างลิส ต์แบบเข้าใจง่ายพจนานุกรมเซตและนิพจน์ตัวสร้าง[ 69 ]ไลบรารีมาตรฐานมีโมดูลสองโมดูล ( และ) ที่ใช้เครื่องมือเชิงฟังก์ชันที่ยืมมาจากHaskellและStandard ML [ 70 ]reduceitertoolsfunctools

ปรัชญาหลักของ Python สรุปไว้ในZen of Python (PEP 20) ที่เขียนโดยTim Petersซึ่งรวมถึงสุภาษิตต่างๆ เช่นนี้: [ 71 ]

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

อย่างไรก็ตาม Python ได้รับการวิพากษ์วิจารณ์ว่าละเมิดหลักการเหล่านี้และเพิ่มส่วนเกินของภาษาที่ไม่จำเป็น[ 72 ]การตอบสนองต่อคำวิจารณ์เหล่านี้ระบุว่า Zen of Python เป็นแนวทางมากกว่ากฎ[ 73 ]การเพิ่มคุณสมบัติใหม่บางอย่างเป็นที่ถกเถียงกัน: Guido van Rossum ลาออกจากตำแหน่งBenevolent Dictator for Lifeหลังจากเกิดความขัดแย้งเกี่ยวกับการเพิ่มตัวดำเนินการนิพจน์การกำหนดค่าในPython 3.8 [ 74 ] [ 75 ]

อย่างไรก็ตาม แทนที่จะสร้างฟังก์ชันการทำงานทั้งหมดไว้ในแกนหลัก Python ถูกออกแบบมาให้สามารถขยายได้ สูง ผ่านโมดูล ความเป็นโมดูลที่กะทัดรัดนี้ทำให้เป็นที่นิยมอย่างมากในฐานะวิธีการเพิ่มอินเทอร์เฟซที่ตั้งโปรแกรมได้ให้กับแอปพลิเคชันที่มีอยู่ วิสัยทัศน์ของ Van Rossum เกี่ยวกับภาษาหลักขนาดเล็กที่มีไลบรารีมาตรฐานขนาดใหญ่และตัวแปลที่ขยายได้ง่ายนั้นเกิดจากความไม่พอใจของเขากับ ABC ซึ่งแสดงถึงแนวทางตรงกันข้าม[ 11 ]

Python อ้างว่ามุ่งมั่นที่จะใช้ไวยากรณ์และ โครงสร้าง ไวยากรณ์ ที่เรียบง่ายและไม่ซับซ้อนในขณะเดียวกันก็ให้นักพัฒนาสามารถเลือกวิธีการเขียนโค้ดได้ Python ไม่มีdo .. whileลูปซึ่งRossumมองว่าเป็นอันตราย[ 76 ]ตรงกันข้ามกับคติพจน์ของPerl ที่ว่า " มีมากกว่าหนึ่งวิธีที่จะทำ " Python สนับสนุนแนวทางที่ว่า "ควรมีหนึ่งวิธี – และควรมีเพียงวิธีเดียว – ที่ชัดเจนในการทำ" [ 71 ]อย่างไรก็ตาม ในทางปฏิบัติ Python มีหลายวิธีในการบรรลุเป้าหมายที่กำหนด มีอย่างน้อยสามวิธีในการจัดรูปแบบสตริงลิเทอรัล โดยไม่มีความแน่นอนว่าโปรแกรมเมอร์ควรใช้วิธีใด[ 77 ] Alex Martelliเป็นสมาชิกของPython Software Foundationและเป็นผู้เขียนหนังสือเกี่ยวกับ Python เขาเขียนว่า "การอธิบายบางสิ่งว่าเป็น 'ฉลาด' ไม่ถือว่าเป็นคำชมในวัฒนธรรม Python" [ 78 ]

โดยทั่วไปนักพัฒนา Python มักให้ความสำคัญกับความอ่านง่ายมากกว่าประสิทธิภาพ ตัวอย่างเช่น พวกเขาปฏิเสธแพตช์สำหรับส่วนที่ไม่สำคัญของCPython reference implementation ที่จะเพิ่มความเร็วที่ไม่คุ้มค่ากับต้นทุนด้านความชัดเจนและความอ่านง่าย[ 79 ]ความเร็วในการทำงานสามารถปรับปรุงได้โดยการย้ายฟังก์ชันที่สำคัญต่อความเร็วไปยังโมดูลส่วนขยายที่เขียนด้วยภาษาต่างๆ เช่นCหรือโดยการใช้คอมไพเลอร์แบบ just-in-timeเช่นPyPyนอกจากนี้ยังสามารถแปลงเป็นภาษาอื่นๆ ได้ อย่างไรก็ตาม วิธีการนี้ล้มเหลวในการบรรลุความเร็วที่เพิ่มขึ้นตามที่คาดหวัง เนื่องจาก Python เป็นภาษาแบบไดนามิก มาก หรือมีการคอมไพล์เฉพาะส่วนย่อยที่จำกัดของ Python เท่านั้น (โดยอาจมีการเปลี่ยนแปลงความหมายเล็กน้อย) [ 80 ]

Python ถูกออกแบบมาให้เป็นภาษาที่สนุกสนานในการใช้งาน[ 81 ] : 3เป้าหมายนี้สะท้อนให้เห็นในชื่อ ซึ่งเป็นการยกย่องกลุ่มตลกชาวอังกฤษMonty Python [ 82 ]และในแนวทางที่สนุกสนานในการสอนและเอกสารอ้างอิงบางส่วน ตัวอย่างเช่น ตัวอย่างโค้ดบางส่วนใช้คำว่า "spam" และ "eggs" (อ้างอิงถึงสเก็ตช์ของ Monty Python ) แทนที่จะใช้คำทั่วไปอย่าง"foo" และ "bar " [ 81 ] [ 83 ]

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

ข้อเสนอการปรับปรุง

ข้อเสนอการปรับปรุง Python [หมายเหตุ 1 ]เป็นเอกสารการออกแบบสำหรับการให้ข้อมูลแก่ ชุมชน Pythonหรือข้อเสนอสำหรับคุณสมบัติใหม่ใน Python [ 85 ] PEP มีจุดประสงค์เพื่ออธิบายกระบวนการใหม่ใน Python ให้ข้อกำหนดการตั้งชื่อหรือจัดทำเอกสารกระบวนการในภาษา[ 86 ] PEP อยู่ภายใต้การดูแลของสภาอำนวยการ Python [ 86 ]

PEP มี 3 ประเภท ได้แก่PEP ที่เกี่ยวข้องกับมาตรฐาน[หมายเหตุ 2 ] PEP ที่เกี่ยวข้องกับข้อมูล[หมายเหตุ 3 ]และPEP ที่เกี่ยวข้อง กับกระบวนการ[หมายเหตุ 4 ]ซึ่งแต่ละประเภทมีความหมายเฉพาะตัว[ 85 ] [ 87 ] PEP เหล่านี้ได้รับการแนะนำครั้งแรกในปี 2000 โดยได้รับแรงบันดาลใจจาก RfC (คำขอความคิดเห็น) และข้อเสนอการปรับปรุงการออกแบบอื่นๆ[ 87 ] PEP ที่เป็นที่รู้จักมากที่สุด ได้แก่ PEP 1, PEP 8, PEP 20 , PEP 257 และอื่นๆ[ 87 ]    

ไวยากรณ์และความหมาย

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

รอยบุ๋ม

Python ใช้ การเยื้อง ด้วยช่องว่างแทนที่จะใช้วงเล็บปีกกาหรือคำหลัก เพื่อกำหนดขอบเขตของบล็อกการเพิ่มการเยื้องจะเกิดขึ้นหลังจากคำสั่งบางอย่าง การลดระดับการเยื้องหมายถึงจุดสิ้นสุดของบล็อกปัจจุบัน[ 89 ]ดังนั้น โครงสร้างภาพของโปรแกรมจึงแสดงถึงโครงสร้างเชิงความหมายได้อย่างถูกต้อง[ 90 ]คุณลักษณะนี้บางครั้งเรียกว่ากฎนอกด้านภาษาอื่นๆ บางภาษาใช้การเยื้องในลักษณะนี้ แต่ในภาษาส่วนใหญ่ การเยื้องไม่มีความหมายเชิงความหมาย ขนาดการเยื้องที่แนะนำคือสี่ช่องว่าง[ 91 ]

คำสั่งและการควบคุมการไหลของโปรแกรม

คำสั่งต่างๆในภาษา Python ประกอบด้วยสิ่งต่อไปนี้:

  • คำสั่งกำหนดค่าโดยใช้เครื่องหมายเท่ากับตัวเดียว=
  • คำifสั่งที่เรียกใช้บล็อกโค้ดแบบมีเงื่อนไข พร้อมด้วยคำว่า " elseและ" elif(ซึ่งเป็นคำย่อของelse if")"
  • คำสั่ง นี้forจะวนซ้ำไปเรื่อยๆ ใน อ็อบเจ็กต์ ที่สามารถวนซ้ำได้โดยจะเก็บแต่ละองค์ประกอบไว้ในตัวแปรเพื่อใช้ในบล็อกที่แนบมา ตัวแปรนี้จะไม่ถูกลบเมื่อลูปสิ้นสุดลง
  • คำสั่ง นี้whileจะเรียกใช้บล็อกโค้ดตราบใดที่เงื่อนไขบูลีนเป็นจริง
  • คำtryสั่งดังกล่าวอนุญาตให้จับและจัดการข้อยกเว้นที่เกิดขึ้นในบล็อกโค้ดที่แนบมาโดยใช้exceptข้อความ (หรือไวยากรณ์ใหม่except*ใน Python 3.11 สำหรับกลุ่มข้อยกเว้น) [ 92 ] คำสั่ง นี้tryยังรับประกันว่าโค้ดทำความสะอาดในfinallyบล็อกจะทำงานเสมอโดยไม่คำนึงถึงวิธีการสิ้นสุดของบล็อก
  • คำสั่ง นี้raiseใช้เพื่อแจ้งข้อผิดพลาดที่ระบุไว้ หรือแจ้งข้อผิดพลาดที่ตรวจพบซ้ำอีกครั้ง
  • คำสั่ง นี้classซึ่งทำหน้าที่เรียกใช้บล็อกโค้ดและเชื่อมโยงเนมสเปซเฉพาะที่เข้ากับคลาสใช้สำหรับการเขียนโปรแกรมเชิงวัตถุ
  • คำdefสั่งที่กำหนดฟังก์ชันหรือวิธีการ
  • คำwithสั่งซึ่งล้อมรอบบล็อกโค้ดไว้ภายในตัวจัดการบริบท ทำให้เกิด พฤติกรรมคล้ายการได้ มาซึ่งทรัพยากรคือการเริ่มต้น (RAII) และแทนที่สำนวน try/finally ทั่วไป[ 93 ]ตัวอย่างของบริบท ได้แก่ การได้มาซึ่งล็อกก่อนที่จะรันโค้ดบางส่วน แล้วจึงปล่อยล็อก หรือการเปิดและปิดไฟล์
  • คำbreakสั่งที่ออกจากลูป
  • คำcontinueสั่งดังกล่าวจะข้ามส่วนที่เหลือของการวนซ้ำในปัจจุบันและดำเนินการต่อในขั้นตอนถัดไป
  • คำdelสั่งที่ลบตัวแปร—โดยลบการอ้างอิงจากชื่อไปยังค่า และทำให้เกิดข้อผิดพลาดหากมีการอ้างอิงถึงตัวแปรก่อนที่จะมีการกำหนดค่าใหม่[ d ]
  • คำสั่ง นี้passทำหน้าที่เป็นNOP (กล่าวคือ ไม่มีการดำเนินการใดๆ) ซึ่งเป็นคำสั่งที่จำเป็นทางไวยากรณ์สำหรับการสร้างบล็อกโค้ดว่างเปล่า
  • คำสั่ง นี้assertใช้ในการดีบั๊กเพื่อตรวจสอบเงื่อนไขที่ควรนำมาใช้
  • คำyieldสั่งที่ส่งคืนค่าจาก ฟังก์ชัน ตัวสร้าง (และตัวดำเนินการ) ใช้ในการสร้างโครูทีน
  • คำสั่ง นี้returnใช้สำหรับส่งค่ากลับจากฟังก์ชัน
  • คำ สั่ง import`and` fromใช้สำหรับนำเข้าโมดูลที่มีฟังก์ชันหรือตัวแปรที่สามารถใช้ในโปรแกรมปัจจุบันได้ Python 3.15 เพิ่มฟังก์ชันใหม่ในการนำเข้าแบบเลซี่ด้วยคีย์เวิร์ดใหม่: " lazyคีย์เวิร์ดนี้ใช้ได้กับทั้ง คำสั่ง ` importand` และ ` from ... importor`" [ 94 ]
  • คำ สั่ง match`and` caseคล้ายกับ โครงสร้าง คำสั่ง `switch`ซึ่งใช้เปรียบเทียบนิพจน์กับกรณีต่างๆ ตั้งแต่หนึ่งกรณีขึ้นไป เพื่อควบคุมการไหลของโปรแกรม

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

Python ไม่รองรับ การเพิ่มประสิทธิภาพ การเรียกแบบ tail callหรือcontinuations ระดับแรกตามที่ Van Rossum กล่าว ภาษา Python จะไม่มีวันรองรับสิ่งเหล่านี้[ 95 ] [ 96 ]อย่างไรก็ตามการขยาย generator ของ Python ช่วยให้รองรับฟังก์ชันการทำงานแบบcoroutine ได้ดียิ่งขึ้น [ 97 ]ก่อนเวอร์ชัน 2.5 generator เป็นตัววนซ้ำ แบบ lazy โดยข้อมูลจะถูกส่งออกไปจาก generator ในทิศทางเดียว ตั้งแต่ Python 2.5 เป็นต้นไป สามารถส่งข้อมูลกลับเข้าไปในฟังก์ชัน generator ได้ และตั้งแต่เวอร์ชัน 3.3 เป็นต้นไป สามารถส่งข้อมูลผ่าน stack หลายระดับได้[ 98 ] 

การแสดงออก

นิพจน์ในภาษา Python ประกอบด้วยสิ่งต่อไปนี้:

  • ตัว ดำเนินการ +, -, และ*สำหรับการบวก การลบ และการคูณทางคณิตศาสตร์นั้นคล้ายกับภาษาอื่นๆ แต่พฤติกรรมของการหารจะแตกต่างกัน มีการหารสองประเภทใน Python ได้แก่การหารแบบปัดเศษลง (หรือการหารจำนวนเต็ม) //และการหารแบบจุดลอยตัว/[ 99 ] Pythonใช้**ตัวดำเนินการ สำหรับการยกกำลัง
  • +ภาษาPython ใช้ ตัวดำเนินการ `concatenation` สำหรับการเชื่อมต่อสตริง และใช้ *ตัวดำเนินการ `reproduce` สำหรับการทำซ้ำสตริงตามจำนวนครั้งที่กำหนด
  • ตัว@ดำเนินการอินฟิกซ์มีจุดประสงค์เพื่อใช้โดยไลบรารีต่างๆ เช่นNumPyสำหรับการคูณเมทริกซ์[ 100 ] [ 101 ]
  • ไวยากรณ์:=ที่เรียกว่า "ตัวดำเนินการ walrus " ถูกนำมาใช้ใน Python 3.8 ตัวดำเนินการนี้กำหนดค่าให้กับตัวแปรเป็นส่วนหนึ่งของนิพจน์ที่ใหญ่กว่า [ 102 ]
  • ใน Python จะ ใช้ ==การเปรียบเทียบค่าของอ็อบเจ็กต์สองตัว ตัวดำเนินการ `value` ของ Python isสามารถใช้เพื่อเปรียบเทียบเอกลักษณ์ของอ็อบเจ็กต์ (เช่น การเปรียบเทียบโดยอ้างอิง) และสามารถเชื่อมโยงการเปรียบเทียบได้ เช่น ` value`a<=b<=c
  • Python ใช้and, or, และnotเป็นตัวดำเนินการบูลีน
  • Python มีนิพจน์ประเภทหนึ่งที่เรียกว่าlist comprehensionและนิพจน์ทั่วไปที่เรียกว่าgenerator expression [ 69 ]
  • ฟังก์ชันนิรนามถูกนำไปใช้โดยใช้แลมบ์ดาเอ็กซ์เพรสชันอย่างไรก็ตาม ในแต่ละส่วนจะมีได้เพียงหนึ่งเอ็กซ์เพรสชันเท่านั้น
  • นิพจน์เงื่อนไขเขียนเป็น. [ 103 ] (ซึ่งแตกต่างจากลำดับตัวดำเนินการทั่วไปในภาษาอื่นๆ อีกมากมาย)xifcelseyc ? x : y
  • Python แยกความแตกต่างระหว่างลิสต์และทูเพิลลิสต์เขียนเป็น `list` สามารถเปลี่ยนแปลงได้ และไม่สามารถใช้เป็นคีย์ของพจนานุกรมได้ (เนื่องจากคีย์ของพจนานุกรมใน Python ต้องเปลี่ยนแปลงไม่ได้ ) ทูเพิลเขียนเป็น `tuple` ไม่สามารถเปลี่ยนแปลงได้ ดังนั้นจึงสามารถใช้เป็นคีย์ของพจนานุกรมได้ โดยมีเงื่อนไขว่าองค์ประกอบทั้งหมดของทูเพิลนั้นต้องเปลี่ยนแปลงไม่ได้ ตัวดำเนินการ `concatenate` สามารถใช้เพื่อเชื่อมต่อทูเพิลสองตัว ซึ่งจะไม่แก้ไขเนื้อหาโดยตรง แต่จะสร้างทูเพิลใหม่ที่มีองค์ประกอบของทั้งสอง ตัวอย่างเช่น เมื่อตัวแปร `null` มีค่าเริ่มต้นเท่ากับ `null` การดำเนินการ `concatenate` จะ ประเมิน `null` ก่อนซึ่งจะได้ผลลัพธ์เป็น `null` จากนั้นผลลัพธ์นี้จะถูกกำหนดกลับไปยัง`null` ซึ่งเป็นการ "แก้ไขเนื้อหา" ของ `null` อย่างมีประสิทธิภาพในขณะที่ยังคงสอดคล้องกับลักษณะที่เปลี่ยนแปลงไม่ได้ของออบเจ็กต์ทูเพิล วงเล็บเป็นตัวเลือกสำหรับทูเพิลในบริบทที่ไม่กำกวม[ 104 ][1,2,3](1,2,3)+t(1,2,3)t=t+(4,5)t+(4,5)(1,2,3,4,5)tt
  • Python มีคุณสมบัติการแยกส่วนลำดับ (sequence unpacking)โดยที่นิพจน์หลายรายการ ซึ่งแต่ละรายการจะประเมินค่าเป็นค่าที่กำหนดได้ (เช่น ตัวแปรหรือคุณสมบัติที่เขียนได้) จะถูกเชื่อมโยงเข้าด้วยกันเช่นเดียวกับการสร้างตัวอักษรทูเปิล โดยรวมแล้ว ผลลัพธ์จะถูกวางไว้ทางด้านซ้ายของเครื่องหมายเท่ากับในคำสั่งกำหนดค่า คำสั่งนี้คาดหวังว่า ออบเจ็กต์ที่วน ซ้ำได้ทางด้านขวาของเครื่องหมายเท่ากับจะสร้างค่าจำนวนเท่ากับนิพจน์ที่เขียนได้ทางด้านซ้าย ในระหว่างการวนซ้ำ คำสั่งจะกำหนดค่าแต่ละค่าที่สร้างขึ้นทางด้านขวาให้กับนิพจน์ที่สอดคล้องกันทางด้านซ้าย[ 105 ]
  • Python มีตัวดำเนินการ "จัดรูปแบบสตริง" %ที่ทำงานคล้ายกับprintfการจัดรูปแบบสตริงในภาษา C เช่นประเมินค่าเป็นใน Python 2.6+ และ 3+ ตัวดำเนินการนี้ได้รับการเสริมด้วยเมธอดของคลาส เช่นPython 3.6 เพิ่ม "f-strings" : [ 106 ]"spam=%s eggs=%d"%("blah",2)"spam=blah eggs=2" format()str"spam={0} eggs={1}".format("blah",2) spam="blah";eggs=2;f'spam={spam} eggs={eggs}'
  • ใน Python สามารถต่อ สตริงได้ โดยการ "บวก" สตริงเหล่านั้น (โดยใช้ตัวดำเนินการเดียวกับการบวกจำนวนเต็มและจำนวนทศนิยม) เช่นจะคืนค่าถ้าสตริงมีตัวเลข ตัวเลขเหล่านั้นจะถูกต่อกันเป็นสตริงแทนที่จะเป็นจำนวนเต็ม เช่นจะคืนค่า."spam"+"eggs""spameggs""2"+"2""22"
  • Python รองรับสตริงลิเทอรัลได้หลายวิธี:
    • คั่นด้วยเครื่องหมายอัญประกาศเดี่ยวหรือคู่ เครื่องหมายอัญประกาศเดี่ยวและคู่มีฟังก์ชันการทำงานที่เทียบเท่ากัน (ต่างจากในเชลล์ Unix , Perlและภาษาที่ได้รับอิทธิพลจาก Perl) เครื่องหมายทั้งสองใช้เครื่องหมายแบ็กสแลช ( \) เป็นอักขระหลีกการแทรกสตริงมีให้ใช้งานใน Python  3.6 ในรูปแบบ "สตริงลิเทอรัลที่จัดรูปแบบ" [ 106 ]
    • เครื่องหมายอัญประกาศสามตัว หมายถึง การเริ่มต้นและสิ้นสุดด้วยเครื่องหมายอัญประกาศเดี่ยวหรือคู่สามตัว ซึ่งอาจครอบคลุมหลายบรรทัดและทำงานเหมือนเอกสาร hereในเชลล์ ภาษา Perl และภาษาRuby
    • สตริง แบบดิบ (Raw string ) ระบุโดยการใส่เครื่องหมายแบ็กสแลช (\) ไว้ข้าง หน้าสตริง ลำดับการหลีกเลี่ยง ( rEscape sequence) จะไม่ถูกตีความ ดังนั้นสตริงแบบดิบจึงมีประโยชน์ในกรณีที่ใช้เครื่องหมายแบ็กสแลชทั่วไป เช่น ในนิพจน์ปกติ (Regular expression ) และ เส้นทางแบบ Windows (เปรียบเทียบกับการใช้ " @quoting" ในC# )
  • Python มี การกำหนด ดัชนีอาร์เรย์และ การ แบ่งส่วนอาร์เรย์ในลิสต์ ซึ่งเขียนในรูปแบบa[key]ลิ สต์ โดยดัชนีจะเริ่มต้นที่ศูนย์และดัชนีติดลบจะสัมพันธ์กับจุดสิ้นสุด การแบ่งส่วนจะเลือกองค์ประกอบตั้งแต่ ดัชนี เริ่มต้นจนถึงดัชนีสิ้นสุด แต่ไม่รวม ดัชนี สิ้นสุดพารามิเตอร์การแบ่งส่วนที่สาม (ซึ่งเป็นตัวเลือก) เรียกว่าstepหรือstrideจะช่วยให้สามารถข้ามหรือกลับลำดับขององค์ประกอบได้ สามารถละเว้นดัชนีการแบ่งส่วนได้ เช่น `foreach` จะคืนค่าสำเนาของลิสต์ทั้งหมด องค์ประกอบแต่ละตัวในการแบ่งส่วนเป็นสำเนาแบบตื้นa[start:stop]a[start:stop:step]a[:]

ในภาษา Python มีการบังคับใช้ความแตกต่างระหว่างนิพจน์และคำสั่งอย่างเคร่งครัด ซึ่งแตกต่างจากภาษาอื่นๆ เช่นCommon Lisp , SchemeหรือRubyความแตกต่างนี้ทำให้เกิดการทำงานซ้ำซ้อนในบางเรื่อง ตัวอย่างเช่น:

  • List comprehensionsกับfor-loops
  • นิพจน์เงื่อนไขif เทียบกับ บล็อก
  • ฟังก์ชันeval()แบบแรกexec()ใช้สำหรับนิพจน์ ในขณะที่ฟังก์ชันแบบหลังใช้สำหรับคำสั่ง exec

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

กำลังพิมพ์

ลำดับชั้นของประเภทมาตรฐานใน Python  3

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

Python อนุญาตให้นักเขียนโปรแกรมกำหนดประเภทข้อมูลของตนเองโดยใช้คลาสซึ่งส่วนใหญ่ใช้สำหรับการเขียนโปรแกรมเชิงวัตถุ การสร้างอิน สแตนซ์ใหม่ของคลาสทำได้โดยการเรียกใช้คลาส เช่นหรือ); คลาสเหล่านี้เป็นอินสแตนซ์ของเมตาคลาส (ซึ่งเป็นอินสแตนซ์ของตัวมันเอง) จึงทำให้สามารถเขียนโปรแกรมแบบเมตาและสะท้อนกลับได้SpamClass()EggsClass()type

ก่อนเวอร์ชัน 3.0 Python มีคลาสสองประเภท โดยทั้งสองประเภทใช้ไวยากรณ์เดียวกัน คือแบบเก่าและแบบใหม่[ 107 ] Python เวอร์ชันปัจจุบันรองรับความหมายของแบบใหม่เท่านั้น

Python รองรับ การ ระบุประเภทแบบเลือกได้[ 5 ] [ 108 ]ภาษาไม่ได้บังคับใช้การระบุประเภทเหล่านี้ แต่เครื่องมือภายนอก เช่นmypy อาจใช้ เพื่อตรวจจับข้อผิดพลาด Python มีโมดูลtypingที่ประกอบด้วยชื่อประเภทหลายชื่อสำหรับการระบุประเภท[ 109 ] [ 110 ]นอกจากนี้ mypy ยังรองรับคอมไพเลอร์ Python ที่เรียกว่า mypyc ซึ่งใช้การระบุประเภทเพื่อเพิ่มประสิทธิภาพ[ 111 ]

สรุปประเภทข้อมูลพื้นฐานใน Python 3
พิมพ์ความเปลี่ยนแปลงคำอธิบายตัวอย่างไวยากรณ์
boolไม่เปลี่ยนแปลงค่าบูลีนTrueFalse
bytearrayเปลี่ยนแปลงได้ลำดับของไบต์bytearray(b'Some ASCII')bytearray(b"Some ASCII")bytearray([119,105,107,105])
bytesไม่เปลี่ยนแปลงลำดับของไบต์b'Some ASCII'b"Some ASCII"bytes([119,105,107,105])
complexไม่เปลี่ยนแปลงจำนวนเชิงซ้อนที่มีส่วนจริงและส่วนจินตนาการ3+2.7j3+2.7j5j
dictเปลี่ยนแปลงได้อาร์เรย์แบบเชื่อมโยง (หรือพจนานุกรม) ของคู่คีย์และค่า สามารถมีชนิดข้อมูลผสม (คีย์และค่า) ได้ โดยคีย์ต้องเป็นชนิดข้อมูลที่สามารถแฮชได้{'key1':1.0,3:False}{}
types.EllipsisTypeไม่เปลี่ยนแปลงสัญลักษณ์ จุด ไข่ปลา (ellipsis)ใช้เป็นดัชนีในอาร์เรย์NumPy...Ellipsis
floatไม่เปลี่ยนแปลงเลขทศนิยมแบบdouble-precision 64 บิต( เลข IEEE 754 ที่มี ความแม่นยำ53 บิต ในทุกเวอร์ชันที่รองรับตั้งแต่ CPython 3.11; [ 112 ]ในทางปฏิบัติยังรองรับในเวอร์ชัน 3.10 และเก่ากว่าแม้ว่าในทางเทคนิคแล้วความแม่นยำจะขึ้นอยู่กับเครื่อง[ 113 ] ) อย่างไรก็ตาม ประเภทข้อมูลในตัวของ Python รองรับทั้งเลข double 64 บิตและเลข float 32 บิต และโมดูลไลบรารีมาตรฐานของ Python ยังรองรับเลข half-float 16 บิตเพิ่มเติม แพ็กเกจ Python เช่น NumPy และ Pandas อาจรองรับเลข float 32 บิตหรือมากกว่านั้น เช่น; แม้ว่าการสนับสนุนเลข half-float มักจะไม่สมบูรณ์หรือไม่ปรากฏอยู่ในแพ็กเกจส่วนใหญ่[ 114 ]เลข bfloat 16 บิตได้รับการสนับสนุนในบางแพ็กเกจ[ 115 ] memoryviewstructnumpy.half

โดยทั่วไปแล้ว การใช้งาน Python ส่วนใหญ่จะรองรับชนิดข้อมูล double แต่การใช้งานบางอย่างที่ไม่ธรรมดา (เช่นMicroPythonสำหรับการเขียนโปรแกรมฝังตัว ) จะรองรับ float 32 บิต IEEE เป็นค่าเริ่มต้น ผู้ใช้สามารถเลือกใช้ 64 บิตได้โดยการตั้งค่า MICROPY_FLOAT_IMPL เป็น MICROPY_FLOAT_IMPL_DOUBLE

1.33333

frozensetไม่เปลี่ยนแปลงเซตที่ไม่มีลำดับไม่มีข้อมูลซ้ำกัน สามารถมีข้อมูลหลายประเภทผสมกันได้ หากสามารถสร้างแฮชได้frozenset({4.0,'string',True})

frozenset()

intไม่เปลี่ยนแปลงจำนวนเต็มที่มีขนาดไม่จำกัด[ 116 ] (เช่น ไม่ใช้จำนวนเต็มของเครื่อง เช่น แพ็กเกจ NumPy ของ Python ใช้จำนวนเต็มที่มีขนาดคงที่เพื่อเพิ่มความเร็ว (และอนุญาตให้มีขนาดต่างกัน) เช่น ประเภทnumpy.byteและnumpy.ulonglongประเภทดังกล่าวทั้งหมดมีความเป็นไปได้ที่จะเกิดการวนรอบ แม้ว่าจะมีโอกาสน้อยลงเมื่อมีขนาดใหญ่ขึ้น)42
listเปลี่ยนแปลงได้รายการสามารถประกอบด้วยประเภทข้อมูลที่หลากหลาย[4.0,'string',True][]
types.NoneTypeไม่เปลี่ยนแปลงอ็อบเจ็กต์ที่แสดงถึงการไม่มีค่า ซึ่งมักเรียกว่าnullในภาษาโปรแกรมอื่นๆNone
types.NotImplementedTypeไม่เปลี่ยนแปลงตัวแทนที่สามารถส่งคืนจากตัวดำเนินการที่มีการโอเวอร์โหลดเพื่อระบุประเภทตัวถูกดำเนินการที่ไม่รองรับNotImplemented
rangeไม่เปลี่ยนแปลงลำดับ ตัวเลข ที่ไม่เปลี่ยนแปลงซึ่งมักใช้สำหรับการวนซ้ำจำนวนครั้งที่กำหนดในforลูป[ 117 ]range(1,10)range(10,5,2)
setเปลี่ยนแปลงได้เซตที่ไม่มีลำดับไม่มีข้อมูลซ้ำกัน สามารถมีข้อมูลหลายประเภทผสมกันได้ หากสามารถสร้างแฮชได้{4.0,'string',True}set()
strไม่เปลี่ยนแปลงสตริงอักขระ : ลำดับของรหัสยูนิโค้ด'Wikipedia'"Wikipedia"
"""ครอบคลุมหลายบรรทัด"""
tupleไม่เปลี่ยนแปลงทูเพิล (Tuple ) สามารถมีชนิดข้อมูลผสมกันได้(4.0,'string',True)('single element',)()

การดำเนินการทางคณิตศาสตร์

Python มีสัญลักษณ์ทั่วไปสำหรับตัวดำเนินการทางคณิตศาสตร์ ( +, -, *, /) ตัวดำเนินการหารพื้น//และตัวดำเนินการโมดูลัส% (ด้วยตัวดำเนินการโมดูลัส เศษเหลือสามารถเป็นลบได้เช่น) Python ยังมีสัญลักษณ์สำหรับการยกกำลังเช่นและรวมถึงตัวดำเนินการคูณเมทริกซ์[ 118 ] ตัว ดำเนินการเหล่านี้ทำงานเหมือนในคณิตศาสตร์แบบดั้งเดิม ด้วย กฎลำดับความสำคัญเดียวกันตัวดำเนินการอินฟิกซ์และยังสามารถเป็นตัว ดำเนินการเอกภาค เพื่อแสดงจำนวนบวกและลบตามลำดับ4 % -3 == -2**5**3 == 1259**0.5 == 3.0@+-

การหารระหว่างจำนวนเต็มจะให้ผลลัพธ์เป็นจำนวนทศนิยม พฤติกรรมของการหารมีการเปลี่ยนแปลงอย่างมากเมื่อเวลาผ่านไป: [ 119 ]

  • Python เวอร์ชันปัจจุบัน (เช่น ตั้งแต่เวอร์ชัน 3.0 เป็นต้นไป) ได้เปลี่ยนตัว/ดำเนินการให้แทนการหารเลขทศนิยมเสมอ เช่น.5/2==2.5
  • //มีการแนะนำตัวดำเนินการหารพื้น ซึ่งหมายความว่า 7//3 == 2, -7//3 == -3, 7.5//3 == 2.0, และ-7.5//3 == -3.0สำหรับ Python 2.7 การเพิ่มคำสั่ง จะทำให้โมดูลใน Python 2.7 สามารถใช้กฎการหารของ Python 3.x ได้ (ดูด้านบน)from__future__importdivision

ในแง่ของ Python /ตัวดำเนินการ แทนการหารจริง (หรือเรียกง่ายๆ ว่าการหาร ) ในขณะที่//ตัวดำเนินการ แทนการหารแบบปัดเศษลงก่อนเวอร์ชัน 3.0 /ตัวดำเนินการ แทนการหารแบบคลาสสิ[ 119 ]

การปัดเศษเข้าหาค่าลบอนันต์ แม้จะเป็นวิธีการที่แตกต่างจากภาษาโปรแกรมส่วนใหญ่ แต่ก็ช่วยเพิ่มความสอดคล้องให้กับ Python ตัวอย่างเช่น การปัดเศษนี้หมายความว่าสมการจะเป็นจริงเสมอ นอกจากนี้ การปัดเศษยังหมายความว่าสมการจะใช้ได้สำหรับทั้งค่าบวกและค่าลบของตามที่คาดไว้ ผลลัพธ์ของจะอยู่ในช่วงครึ่งเปิด [0, b ) โดยที่เป็นจำนวนเต็มบวก อย่างไรก็ตาม การรักษาความถูกต้องของสมการจำเป็นต้องให้ผลลัพธ์อยู่ในช่วง ( b , 0] เมื่อเป็นค่าลบ[ 120 ](a+b)//b==a//b+1b*(a//b)+a%b==aaa%bbb

Python มีroundฟังก์ชันสำหรับปัดเศษทศนิยมให้เป็นจำนวนเต็มที่ใกล้ที่สุด สำหรับการแก้ปัญหาการเสมอกัน Python  3 ใช้เมธอด round to even : round(1.5)และround(2.5)ทั้งสองแบบให้ผลลัพธ์เป็น2. [ 121 ] Python เวอร์ชันก่อน 3 ใช้ เมธอด round-away-from-zero : round(0.5)คือ1.0และround(-0.5)คือ−1.0. [ 122 ]

Python อนุญาตให้ใช้นิพจน์บูลีนที่มีความสัมพันธ์ความเท่าเทียมกันหลายรายการเพื่อให้สอดคล้องกับการใช้งานทั่วไปในคณิตศาสตร์ ตัวอย่างเช่น นิพจน์a < b < cจะทดสอบว่าaน้อยกว่าbและbน้อยกว่า หรือไม่c[ 123 ] ภาษาที่พัฒนามาจาก C จะตีความนิพจน์นี้แตกต่างกัน ใน C นิพจน์จะประเมินค่า ก่อน ซึ่งจะได้ผลลัพธ์เป็น 0 หรือ 1 จาก นั้นa < bผลลัพธ์นั้นจะถูกเปรียบเทียบกับc[ 124 ]

Python ใช้เลขคณิตที่มีความแม่นยำตามอำเภอใจสำหรับการดำเนินการจำนวนเต็มทั้งหมดDecimalประเภท/คลาสในdecimalโมดูลนี้ให้ตัวเลขทศลอยที่มีความแม่นยำตามอำเภอใจที่กำหนดไว้ล่วงหน้าพร้อมโหมดการปัดเศษหลายแบบ[ 125 ]คลาสFractionในfractionsโมดูลนี้ให้ความแม่นยำตามอำเภอใจสำหรับจำนวนตรรกยะ[ 126 ]

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

ไวยากรณ์ฟังก์ชัน

ฟังก์ชันใน Python สร้างขึ้นโดยใช้defคีย์เวิร์ด `function` การกำหนดฟังก์ชันนั้นคล้ายกับการเรียกใช้ฟังก์ชัน โดยต้องระบุชื่อฟังก์ชันก่อน แล้วจึงระบุพารามิเตอร์ที่จำเป็น นี่คือตัวอย่างของฟังก์ชันที่พิมพ์ค่าที่ป้อนเข้ามา:

def printer ( input1 , input2 = "already there" ): print ( input1 ) print ( input2 )เครื่องพิมพ์( "สวัสดี" )# ตัวอย่างผลลัพธ์: # สวัสดี# อยู่ที่นั่นแล้ว

หากต้องการกำหนดค่าเริ่มต้นให้กับพารามิเตอร์ของฟังก์ชัน ในกรณีที่ไม่มีการระบุค่าจริงในระหว่างการทำงาน สามารถใช้ไวยากรณ์การกำหนดค่าตัวแปรภายในส่วนหัวของฟังก์ชันได้

ตัวอย่างโค้ด

โปรแกรม "สวัสดีโลก!" :

พิมพ์( 'สวัสดีโลก!' )

โปรแกรมสำหรับคำนวณแฟกทอเรียลของจำนวนเต็มที่ไม่เป็นลบ:

text = input ( 'พิมพ์ตัวเลข แล้วค่าแฟกทอเรียลของตัวเลขนั้นจะถูกพิมพ์ออกมา: ' )n = int ( ข้อความ)ถ้าn < 0 :raise ValueError ( 'คุณต้องป้อนจำนวนเต็มที่ไม่ติดลบ' )แฟกทอเรียล= 1สำหรับi ในช่วง( 2 , n + 1 ):แฟกทอเรียล*= iพิมพ์( แฟกทอเรียล)

ห้องสมุด

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

บางส่วนของไลบรารีมาตรฐานนั้นครอบคลุมโดยข้อกำหนด—ตัวอย่างเช่น การใช้งาน Web Server Gateway Interface (WSGI) wsgirefเป็นไปตาม PEP 333 [ 130 ] —แต่ส่วนใหญ่ระบุโดยโค้ด เอกสารภายใน และชุดทดสอบอย่างไรก็ตาม เนื่องจากไลบรารีมาตรฐานส่วนใหญ่เป็นโค้ด Python ข้ามแพลตฟอร์ม จึงต้องแก้ไขหรือเขียนโมดูลใหม่เพียงไม่กี่โมดูลสำหรับการใช้งานที่แตกต่างกัน

ณ วันที่ 13 มีนาคม2568  ,ดัชนีแพ็กเกจ Python (PyPI) ซึ่งเป็นที่เก็บอย่างเป็นทางการสำหรับซอฟต์แวร์ Python ของบุคคลที่สาม มีแพ็กเกจ มากกว่า 614,339 [ 131 ]

สภาพแวดล้อมการพัฒนา

การใช้งาน Python ส่วนใหญ่(รวมถึง CPython) มีลูปอ่าน-ประเมิน-พิมพ์ (REPL) ซึ่งช่วยให้สภาพแวดล้อมทำงานเป็นตัวแปลคำสั่งบรรทัดคำสั่งโดยผู้ใช้สามารถป้อนคำสั่งตามลำดับและรับผลลัพธ์ได้ทันที[ 132 ]

นอกจากนี้ CPython ยังมาพร้อมกับสภาพแวดล้อมการพัฒนาแบบบูรณาการ (IDE)ที่เรียกว่าIDLE [ 133 ] ซึ่งมุ่งเน้นไปที่ผู้เริ่มต้น

เชลล์อื่นๆ รวมถึงIDLEและIPythonเพิ่มความสามารถเพิ่มเติม เช่น การเติมคำอัตโนมัติที่ดีขึ้น การเก็บรักษาสถานะเซสชัน และการเน้นไวยากรณ์[ 133 ] [ 134 ]

IDE บนเดสก์ท็อปมาตรฐาน ได้แก่PyCharm , SpyderและVisual Studio Code ; [ 135 ]นอกจากนี้ยังมี IDE บน เว็บเบราว์เซอร์เช่น สภาพแวดล้อมต่อไปนี้:

การนำไปใช้

การใช้งานอ้างอิง

CPythonเป็นการใช้งานอ้างอิงของ Python การใช้งานนี้เขียนด้วยภาษา C ซึ่งตรงตามมาตรฐานC11 [ 139 ]ตั้งแต่เวอร์ชัน 3.11 เวอร์ชันเก่ากว่าใช้ มาตรฐาน C89 พร้อมคุณสมบัติ C99บางส่วนแต่ส่วนขยายของบุคคลที่สามไม่ได้จำกัดเฉพาะเวอร์ชัน C เก่ากว่า เช่น สามารถนำไปใช้โดยใช้ C11 หรือ C++ ได้[ 140 ] [ 141 ] CPython คอมไพล์โปรแกรม Python เป็นไบต์โค้ดระดับกลาง [ 142 ] ซึ่งจะถูกเรียกใช้งานโดยเครื่องเสมือน[ 143 ] CPython แจกจ่ายพร้อมกับไลบรารีมาตรฐานขนาดใหญ่ที่เขียนด้วยภาษา C และ Python ดั้งเดิม

CPython สามารถใช้งานได้บนหลายแพลตฟอร์ม รวมถึง Windows และระบบที่คล้าย Unix สมัยใหม่ส่วนใหญ่ รวมถึง macOS (และ Apple M1 Mac ตั้งแต่ Python  3.9.1 โดยใช้ตัวติดตั้งแบบทดลอง) ตั้งแต่ Python  3.9 เป็นต้นไป ตัวติดตั้ง Python จงใจไม่ติดตั้งบนWindows 7และ 8 [ 144 ] [ 145 ] Windows XPได้รับการสนับสนุนจนถึง Python 3.5 เวอร์ชัน Python เก่าๆ รองรับVMS อย่างไม่เป็น ทางการ (ส่วนใหญ่รองรับ[ 146 ] ) และOpenVMS x86-64 รองรับ Python 3.10 [ 147 ] [ 148 ]ความสามารถในการพกพาแพลตฟอร์มเป็นหนึ่งในลำดับความสำคัญแรกๆ ของ Python [ 149 ]ในระหว่างการพัฒนา Python 1 และ 2 แม้แต่OS/2และSolarisก็ได้รับการสนับสนุน[ 8 ]ตั้งแต่นั้นมา การสนับสนุนสำหรับหลายแพลตฟอร์มก็ถูกยกเลิก  

Python เวอร์ชันปัจจุบันทั้งหมด (ตั้งแต่เวอร์ชัน 3.7 เป็นต้นไป) รองรับเฉพาะระบบปฏิบัติการที่มีคุณสมบัติการทำงานแบบมัลติเธรดเท่านั้นซึ่งปัจจุบันรองรับระบบปฏิบัติการน้อยกว่าในอดีตมาก (โดยได้ตัดระบบปฏิบัติการที่ล้าสมัยออกไปหลายระบบ)

ข้อจำกัดของการใช้งานอ้างอิง

  • การใช้พลังงานของ Python กับ CPython สำหรับโค้ดที่เขียนโดยทั่วไปนั้นแย่กว่า C ถึง 75.88 เท่า[ 150 ]
  • ประสิทธิภาพการประมวลผลของ Python ด้วย CPython สำหรับโค้ดที่เขียนโดยทั่วไปแย่กว่า C ถึง 71.9 เท่า[ 150 ]
  • การใช้หน่วยความจำโดยเฉลี่ยของ CPython สำหรับโค้ดที่เขียนโดยทั่วไปนั้นแย่กว่า C ถึง 2.4 เท่า[ 150 ]

การใช้งานอื่นๆ

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

การสร้างไฟล์ปฏิบัติการด้วย Python มักทำโดยการรวมตัวแปลภาษา Python ทั้งหมดเข้าไปในไฟล์ปฏิบัติการ ซึ่งทำให้ขนาดไบนารีมีขนาดใหญ่มากสำหรับโปรแกรมขนาดเล็ก[ 151 ]แต่ก็มีการใช้งานที่สามารถคอมไพล์ Python ได้อย่างแท้จริง การใช้งานทางเลือกอื่นๆ ได้แก่:

  • PyPyเป็นตัวแปลภาษา Python  2.7 และ3.11 ที่เร็วกว่าและสอดคล้องกัน [ 152 ] [ 153 ]คอมไพเลอร์แบบ just-in-timeของ PyPy มักจะปรับปรุงความเร็วได้อย่างมีนัยสำคัญเมื่อเทียบกับ CPython แต่ PyPy ไม่รองรับไลบรารีบางตัวที่เขียนด้วยภาษา C [ 154 ] PyPy ให้การสนับสนุนสถาปัตยกรรมชุดคำสั่งRISC-V
  • Codon เป็นการใช้งานคอมไพเลอร์แบบ AOT (Ahead-of-Time)ซึ่งคอมไพล์ภาษาที่คล้าย Python ที่มีประเภทคงที่ โดย "ไวยากรณ์และความหมายเกือบจะเหมือนกับ Python แต่ก็มีความแตกต่างที่เห็นได้ชัดอยู่บ้าง" [ 155 ]ตัวอย่างเช่น Codon ใช้จำนวนเต็มเครื่อง 64 บิตเพื่อความเร็ว ไม่ใช่โดยพลการเหมือนกับ Python นักพัฒนา Codon อ้างว่าความเร็วที่เพิ่มขึ้นเมื่อเทียบกับ CPython มักจะอยู่ในระดับสิบถึงร้อยเท่า Codon คอมไพล์เป็นรหัสเครื่อง (ผ่านLLVM ) และรองรับมัลติเธรดแบบเนทีฟ[ ​​156 ] Codon ยังสามารถคอมไพล์เป็นโมดูลส่วนขยาย Python ที่สามารถนำเข้าและใช้งานได้จาก Python
  • MicroPythonและCircuitPythonเป็น รูปแบบ Python 3 ที่ได้รับการปรับให้เหมาะสมสำหรับไมโครคอนโทรลเลอร์รวมถึงLego Mindstorms EV3 [ 157 ]
  • Pyston เป็นรูปแบบหนึ่งของรันไทม์ Python ที่ใช้การคอมไพล์แบบทันทีเพื่อเร่งความเร็วในการทำงานของโปรแกรม Python [ 158 ]
  • Cinder เป็น CPython 3.8 เวอร์ชันที่เน้นประสิทธิภาพ ซึ่งมีการปรับปรุงหลายอย่าง รวมถึงการแคชไบต์โค้ดแบบอินไลน์ การประเมินโครูทีนแบบทันทีJIT แบบทีละเมธอด และคอมไพเลอร์ไบต์โค้ดแบบทดลอง[ 159 ]
  • ภาษาประมวลผลแบบฝังตัว Snek [ 160 ] [ 161 ] [ 162 ] "ได้รับแรงบันดาลใจจาก Python แต่ไม่ใช่ Python เป็นไปได้ที่จะเขียนโปรแกรม Snek ที่ทำงานภายใต้ระบบ Python เต็มรูปแบบ แต่โปรแกรม Python ส่วนใหญ่จะไม่ทำงานภายใต้ Snek" [ 163 ] Snek เข้ากันได้กับ ไมโครคอนโทรลเลอร์ AVR 8 บิตเช่น Arduino ที่ใช้ ATmega 328Pรวมถึงไมโครคอนโทรลเลอร์ขนาดใหญ่กว่าที่เข้ากันได้กับMicroPython Snek เป็นภาษาเชิงคำสั่ง (ซึ่งแตกต่างจาก Python) ที่ละเว้นการเขียนโปรแกรมเชิงวัตถุ Snek รองรับเฉพาะชนิดข้อมูลตัวเลขเพียงชนิดเดียว ซึ่งมี ความแม่นยำเดี่ยว 32 บิต(คล้ายกับ ตัวเลข JavaScriptแต่เล็กกว่า)
  • RustPython เป็นการใช้งานที่เขียนด้วยRust (ภาษาโปรแกรม)โดยมีเป้าหมายเพื่อให้เข้ากันได้กับ CPython รวมถึง C-ABI [ 164 ]ปัจจุบันมีการใช้งานในGrepTimeDBและRuffรวมถึงโครงการอื่นๆ ด้วย

การใช้งานที่ไม่ได้รับการสนับสนุน

Stackless Pythonเป็นการแยกสาขาที่สำคัญของ CPython ที่ใช้ไมโครเธรดการใช้งานนี้ใช้สแต็กการเรียกที่แตกต่างออกไป ทำให้สามารถประมวลผลโปรแกรมพร้อมกันได้จำนวนมาก PyPy ยังมีเวอร์ชัน stackless อีกด้วย[ 165 ]

มีการพัฒนาคอมไพเลอร์ Python แบบ Just-in-time ขึ้นมาแล้ว แต่ปัจจุบันไม่ได้รับการสนับสนุนอีกต่อไป:

  • Google เริ่มโครงการชื่อUnladen Swallowในปี 2552 โดยโครงการนี้มีเป้าหมายเพื่อเพิ่มความเร็วของตัวแปลภาษา Python ขึ้นห้าเท่าโดยใช้LLVMและปรับปรุง ความสามารถในการทำงาน แบบมัลติเธรดเพื่อรองรับคอร์จำนวนหลายพันคอร์[ 166 ]ในขณะที่การใช้งานทั่วไปถูกจำกัดด้วย ตัวล็อกตัวแปลภาษา ทั่วโลก
  • Psycoเป็นคอมไพเลอร์แบบ just-in-time ที่เลิกใช้งานแล้วซึ่งทำงาน ร่วมกับ CPython และแปลงไบต์โค้ดเป็นโค้ดเครื่องจักรในขณะรันไทม์ โค้ดที่ได้จะถูกปรับแต่งสำหรับชนิดข้อมูล บางประเภท และเร็วกว่าโค้ด Python มาตรฐาน Psyco ไม่รองรับ Python เวอร์ชัน 2.7 หรือใหม่กว่า 
  • PyS60เป็น ตัวแปลภาษา Python 2 สำหรับ โทรศัพท์มือถือ Series 60 ซึ่ง Nokiaเปิดตัวในปี 2548 ตัวแปลภาษานี้ได้นำโมดูลจำนวนมากจากไลบรารีมาตรฐานของ Python มาใช้ รวมถึงโมดูลเพิ่มเติมสำหรับการรวมเข้ากับ ระบบปฏิบัติการ Symbian Nokia N900ยังรองรับ Python ผ่าน ไลบรารีวิดเจ็ต GTKทำให้สามารถเขียนและเรียกใช้โปรแกรมบนอุปกรณ์เป้าหมายได้[ 167 ]

ตัวแปลงรหัสเป็นภาษาอื่นๆ

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

  • Brython [ 168 ]และ Transcrypt [ 169 ] [ 170 ]คอมไพล์ Python เป็นJavaScript
  • Cythonคอมไพล์ส่วนขยายของ Python ไปเป็น C โค้ดที่ได้สามารถนำไปใช้กับ Python ผ่านการเรียกใช้ API ระดับ C โดยตรงไปยังตัวแปลภาษา Python
  • PyJL คอมไพล์/แปลงโค้ด Python บางส่วนเป็น "ซอร์สโค้ด Julia ที่อ่านง่าย บำรุงรักษาได้ และมีประสิทธิภาพสูง" [ 80 ]แม้ว่านักพัฒนาจะอ้างถึงประสิทธิภาพ แต่ก็เป็นไปไม่ได้สำหรับ โค้ด Python ทั่วไปกล่าวคือ การคอมไพล์เป็นภาษาที่เร็วกว่าหรือโค้ดเครื่องนั้นเป็นไปไม่ได้ในกรณีทั่วไป ความหมายของ Python อาจเปลี่ยนแปลงได้ แต่ในหลายกรณีสามารถเพิ่มความเร็วได้โดยมีการเปลี่ยนแปลงโค้ด Python เพียงเล็กน้อยหรือไม่เปลี่ยนแปลงเลย จากนั้นสามารถใช้ซอร์สโค้ด Julia ที่เร็วกว่าจาก Python หรือคอมไพล์เป็นโค้ดเครื่องได้
  • Nuitkaคอมไพล์ Python เป็น C [ 171 ] คอมไพเลอร์นี้ใช้งานได้กับ Python 3.4 ถึง 3.13 (และ 2.6 และ 2.7) สำหรับแพลตฟอร์มหลักที่รองรับของ Python (และ Windows 7 หรือแม้แต่ Windows XP) และสำหรับ Android นักพัฒนาคอมไพเลอร์อ้างว่ารองรับ Python 3.10 อย่างเต็มที่รองรับ Python 3.11 และ 3.12 บางส่วนและรองรับ Python 3.13 ในเชิงทดลอง Nuitka รองรับ macOS รวมถึงเวอร์ชันที่ใช้ Apple Silicon คอมไพเลอร์นี้ใช้งานได้ฟรี แต่มีส่วนเสริมเชิงพาณิชย์ (เช่น สำหรับการซ่อนซอร์สโค้ด)
  • Numbaเป็นคอมไพเลอร์แบบ JIT ที่ใช้ใน Python โดยคอมไพเลอร์นี้จะแปลงโค้ด Python และ NumPy บางส่วนให้เป็นโค้ดเครื่องจักรที่ทำงานได้อย่างรวดเร็ว เครื่องมือนี้เปิดใช้งานได้โดยการเพิ่ม decorator ลงในโค้ด Python ที่เกี่ยวข้อง
  • Pythran คอมไพล์ส่วนย่อยของ Python  3 เป็น C++ ( C++11 ) [ 172 ]
  • RPythonสามารถคอมไพล์เป็นภาษา C ได้ และใช้ในการสร้างตัวแปลภาษา PyPy สำหรับ Python
  • ตัวแปลง Python → 11l → C++ [ 173 ]คอมไพล์ชุดย่อยของ Python  3 เป็น C++ ( C++17 )

นอกจากนี้ยังมีคอมไพเลอร์เฉพาะทางอีกด้วย:

มีโปรเจกต์เก่าๆ บางโปรเจกต์อยู่ รวมถึงคอมไพเลอร์บางตัวที่ไม่ได้ออกแบบมาเพื่อใช้กับ Python 3.x และไวยากรณ์ที่เกี่ยวข้อง:

  • Grumpy ของ Google แปลง Python  2 เป็นGo [ 174 ] [ 175 ] [ 176 ] เวอร์ชันล่าสุดออกในปี 2017
  • IronPythonอนุญาตให้รันโปรแกรม Python 2.7 ด้วย .  NET Common Language Runtime [ 177 ]เวอร์ชันอัลฟ่า (เปิดตัวในปี 2021) พร้อมใช้งานสำหรับ "Python  3.4 แม้ว่าคุณสมบัติและพฤติกรรมจากเวอร์ชันที่ใหม่กว่าอาจจะรวมอยู่ด้วย" [ 178 ]
  • Jythonคอมไพล์ Python  2.7 เป็นไบต์โค้ด Java ทำให้สามารถใช้ไลบรารี Java จากโปรแกรม Python ได้[ 179 ]
  • Pyrex (รุ่นสุดท้ายที่วางจำหน่ายในปี 2010) และShed Skin (รุ่นสุดท้ายที่วางจำหน่ายในปี 2013) สามารถคอมไพล์เป็นภาษา C และ C++ ตามลำดับ

ผลงาน

การเปรียบเทียบประสิทธิภาพระหว่างการใช้งาน Python ต่างๆ โดยใช้ภาระงานที่ไม่ใช่เชิงตัวเลข (เชิงการจัดเรียง) ได้ถูกนำเสนอในงาน EuroSciPy '13 [ 180 ]นอกจากนี้ ประสิทธิภาพของ Python เมื่อเทียบกับภาษาโปรแกรมอื่นๆ ยังได้รับการวัดประสิทธิภาพโดยเกมการวัดประสิทธิภาพภาษาคอมพิวเตอร์[ 181 ]

มีหลายวิธีในการเพิ่มประสิทธิภาพการทำงานของ Python แม้ว่าโดยธรรมชาติแล้ว Python จะเป็นภาษาที่ใช้การตีความ (interpreted language ) ก็ตาม วิธีการเหล่านี้รวมถึงกลยุทธ์หรือเครื่องมือต่อไปนี้:

  • การคอมไพล์แบบทันเวลา (Just-in-time compilation ): การคอมไพล์ส่วนต่างๆ ของโปรแกรม Python แบบไดนามิกในระหว่างการทำงานของโปรแกรม เทคนิคนี้ใช้ในไลบรารีต่างๆเช่นNumbaและPyPy
  • การคอมไพล์แบบคงที่ : บางครั้งโค้ด Python สามารถคอมไพล์เป็นโค้ดเครื่องจักรได้ก่อนที่จะทำการประมวลผล ตัวอย่างของวิธีการนี้คือCythonซึ่งคอมไพล์ Python เป็นภาษา C
  • การทำงานพร้อมกันและการประมวลผลแบบขนาน : สามารถเรียกใช้งานหลายงานพร้อมกันได้ Python มีโมดูลต่างๆ เช่น `multiprocessing` เพื่อรองรับการประมวลผลแบบขนานนี้ นอกจากนี้ วิธีการนี้ยังช่วยเอาชนะข้อจำกัดของGlobal Interpreter Lock (GIL) ในงานที่ใช้ CPU ได้อีกด้วย
  • โครงสร้างข้อมูลที่มีประสิทธิภาพ: ประสิทธิภาพยังสามารถปรับปรุงได้โดยการใช้ชนิดข้อมูล เช่นSetสำหรับการทดสอบการเป็นสมาชิก หรือdequeสำหรับการดำเนินการcollectionsกับคิว
  • สามารถสังเกตเห็นการเพิ่มประสิทธิภาพได้โดยการใช้ไลบรารีเช่นNumPyไลบรารี Python ประสิทธิภาพสูงส่วนใหญ่ใช้CหรือFortranอยู่เบื้องหลังแทนที่จะใช้ตัวแปลภาษา Python [ 182 ]

การพัฒนาภาษา

การพัฒนา Python ส่วนใหญ่ดำเนินการผ่าน กระบวนการ Python Enhancement Proposal (PEP) กระบวนการนี้เป็นกลไกหลักในการเสนอคุณสมบัติใหม่ที่สำคัญ รวบรวมความคิดเห็นจากชุมชนเกี่ยวกับประเด็นต่างๆ และจัดทำเอกสารเกี่ยวกับการตัดสินใจด้านการออกแบบของ Python [ 183 ]รูปแบบการเขียนโค้ด Python ได้รับการกล่าวถึงใน PEP  8 [ 91 ] PEP ที่โดดเด่นจะได้รับการตรวจสอบและแสดงความคิดเห็นโดยชุมชน Python และสภากำกับดูแล[ 183 ]

การปรับปรุงภาษาสอดคล้องกับการพัฒนาการใช้งานอ้างอิง CPython รายชื่อผู้รับจดหมาย python-dev เป็นฟอรัมหลักสำหรับการพัฒนาภาษา ประเด็นเฉพาะต่างๆ ได้รับการพูดคุยกันครั้งแรกในระบบติดตามบั๊กRoundup ที่มูลนิธิเป็นผู้ดูแล[ 184 ]ในปี 2022 ประเด็นและการสนทนาทั้งหมดได้ถูกย้ายไปยังGitHub [ 185 ] การพัฒนาเริ่มต้นขึ้นบนที่เก็บซอร์สโค้ดที่โฮสต์เอง ซึ่งใช้ Mercurialจนกระทั่ง Python ย้ายไปที่ GitHub ในเดือนมกราคม 2017 [ 186 ]

การเผยแพร่เวอร์ชันสาธารณะของ CPython มีสามประเภท โดยแบ่งตามส่วนของหมายเลขเวอร์ชันที่เพิ่มขึ้น:

  • เวอร์ชันที่ไม่เข้ากันกับเวอร์ชันก่อนหน้าซึ่งคาดว่าโค้ดจะเสียหายและต้องย้าย ด้วยตนเอง ส่วนแรกของหมายเลขเวอร์ชันจะเพิ่มขึ้น การเผยแพร่เหล่านี้เกิดขึ้นไม่บ่อยนัก—เวอร์ชัน 3.0 ได้รับการเผยแพร่ 8 ปีหลังจากเวอร์ชัน 2.0 ตามที่ Guido van Rossum กล่าว เวอร์ชัน 4.0 อาจจะไม่มีเลย[ 187 ]
  • การเผยแพร่เวอร์ชันหลักหรือ "เวอร์ชันฟีเจอร์"ส่วนใหญ่เข้ากันได้กับเวอร์ชันก่อนหน้า แต่จะเพิ่มฟีเจอร์ใหม่ ๆ เข้ามา ส่วนที่สองของหมายเลขเวอร์ชันจะเพิ่มขึ้น เริ่มตั้งแต่ Python  3.9 การเผยแพร่เหล่านี้คาดว่าจะเกิดขึ้นทุกปี[ 188 ] [ 189 ]แต่ละเวอร์ชันหลักจะได้รับการสนับสนุนด้วยการแก้ไขข้อบกพร่องเป็นเวลาหลายปีหลังจากการเผยแพร่[ 190 ]
  • การออกเวอร์ชันแก้ไขข้อบกพร่อง[ 191 ]ซึ่งไม่มีการเพิ่มคุณสมบัติใหม่ จะเกิดขึ้นประมาณทุกสามเดือน การออกเวอร์ชันเหล่านี้จะเกิดขึ้นเมื่อมีการแก้ไขข้อบกพร่องจำนวนมากเพียงพอตั้งแต่การออกเวอร์ชันครั้งล่าสุด ช่องโหว่ด้านความปลอดภัยจะได้รับการแก้ไขในเวอร์ชันเหล่านี้ด้วย ส่วนที่สามและส่วนสุดท้ายของหมายเลขเวอร์ชันจะเพิ่มขึ้น[ 191 ]

มีการปล่อย เวอร์ชันอัลฟ่า เบต้า และเวอร์ชันทดสอบจำนวนมากออกมาเพื่อใช้เป็นตัวอย่างและทดสอบก่อนการวางจำหน่ายเวอร์ชันสุดท้าย แม้ว่าจะมีกำหนดการคร่าวๆ สำหรับการวางจำหน่าย แต่ก็มักจะล่าช้าออกไปหากโค้ดยังไม่พร้อม ทีมพัฒนาของ Python ตรวจสอบสถานะของโค้ดโดยการรัน ชุด ทดสอบหน่วย ขนาดใหญ่ ในระหว่างการพัฒนา[ 192 ]

การประชุมวิชาการที่สำคัญที่สุดเกี่ยวกับ Python คือPyCon นอกจากนี้ยังมีโครงการให้คำปรึกษา ด้านPython โดยเฉพาะ เช่นPyLadies

การตั้งชื่อ

ชื่อของ Python ได้รับแรงบันดาลใจจากกลุ่มตลกชาวอังกฤษMonty Pythonซึ่ง Guido van Rossum ผู้สร้าง Python ชื่นชอบในระหว่างการพัฒนาภาษา มีการอ้างอิงถึง Monty Python บ่อยครั้งในโค้ดและวัฒนธรรมของ Python [ 193 ]ตัวอย่างเช่นตัวแปร metasyntactic ที่มักใช้ในเอกสาร Python คือspamและeggsแทนที่จะเป็น foo และ bar แบบดั้งเดิม[ 193 ] [ 194 ] นอกจากนี้เอกสารอย่างเป็นทางการของ Python ยังมีการอ้างอิงถึงรูทีนของ Monty Python ต่างๆ อีกด้วย[ 195 ] [ 196 ]ผู้ใช้ Python บางครั้งเรียกว่า "Pythonistas" [ 197 ]

ภาษาโปรแกรมที่ได้รับอิทธิพลจาก Python

  • Cobraมี เอกสาร คำขอบคุณที่ระบุว่า Python เป็นภาษาที่มีอิทธิพลอันดับแรก[ 198 ]
  • ECMAScriptและJavaScriptยืมตัววนซ้ำและตัวสร้างจาก Python [ 199 ]
  • Goได้รับการออกแบบมาเพื่อ "ความเร็วในการทำงานในภาษาแบบไดนามิกเช่น Python" [ 200 ]
  • Juliaได้รับการออกแบบให้ "ใช้งานได้ง่ายสำหรับการเขียนโปรแกรมทั่วไปเช่นเดียวกับ Python" [ 201 ]
  • Mojoเกือบจะเป็น[ 34 ] [ 202 ]ซูเปอร์เซ็ตของ Python [ 203 ]
  • GDScriptได้รับอิทธิพลอย่างมากจาก Python [ 204 ]
  • Groovy , Boo , CoffeeScript , F# , Nim , Ruby , [ 35 ] Swift , [ 36 ]และV [ 37 ]ก็ได้รับอิทธิพลเช่นกัน

ดูเพิ่มเติม

หมายเหตุ

  1. ตั้งแต่เวอร์ชัน 3.5 แต่คำแนะนำเหล่านั้นจะถูกละเลย ยกเว้นในกรณีที่ใช้เครื่องมือที่ไม่เป็นทางการ [ 5 ]
  2. ตั้งแต่นั้นมา เขาได้กลับมาทำงานอีกครั้งหลังจากเกษียณ และเรียกตัวเองว่า "BDFL-emeritus"
  3. คำสั่ง ↑delใน Python ทำงานต่างจากdeleteในภาษาอื่นๆ เช่น C++ซึ่งคำสั่งดังกล่าวใช้เพื่อเรียกตัวทำลายและปลดปล่อยหน่วยความจำฮีป
  1. เรียกอีกอย่างว่า PEP [ 85 ]
  2. เพื่ออธิบายคุณสมบัติใหม่ใน Python
  3. เพื่ออธิบายประเด็นด้านการออกแบบหรือให้แนวทางทั่วไป
  4. เพื่ออธิบายกระบวนการโดยรอบในภาษา Python
  1. "คำถามที่พบบ่อยทั่วไปเกี่ยวกับ Python – เอกสารประกอบ Python 3" . docs.python.org . สืบค้นเมื่อ7 กรกฎาคม 2024 .
  2. "Python 0.9.1 ตอนที่ 01/21" . คลังข้อมูล alt.sources. เก็บถาวรจากต้นฉบับเมื่อวันที่ 11 สิงหาคม 2021 . เรียกดูเมื่อวันที่ 11 สิงหาคม 2021 .
  3. "Python 3.14.6 และ 3.13.14 พร้อมใช้งานแล้ว!" . 10 มิถุนายน 2026 . สืบค้นเมื่อ11 มิถุนายน 2026 .
  4. "ทำไม Python จึงเป็นทั้งภาษาแบบไดนามิกและภาษาที่มีการกำหนดประเภทอย่างเข้มงวด" Python Wikiเก็บถาวรจากต้นฉบับเมื่อวันที่ 14 มีนาคม 2021 เรียกดูเมื่อวันที่ 27 มกราคม 2021
  5. 1 2 van Rossum, Guido; Levkivskyi, Ivan. "PEP 483 – ทฤษฎีของ Type Hints" . ข้อเสนอการปรับปรุง Python (PEPs) . เก็บถาวรจากต้นฉบับเมื่อวันที่ 14 มิถุนายน 2020 . สืบค้นเมื่อ14 มิถุนายน 2018 .
  6. von Löwis, Martin; Cannon, Brett. "PEP 11 – การสนับสนุนแพลตฟอร์ม CPython"ข้อ เสนอการ ปรับปรุงPython (PEPs) สืบค้นเมื่อ22 เมษายน 2024
  7. "PEP 738 – การเพิ่ม Android เป็นแพลตฟอร์มที่รองรับ | peps.python.org"ข้อเสนอการปรับปรุง Python (PEPs) สืบค้นเมื่อ 19 พฤษภาคม 2024
  8. 1 2 "ดาวน์โหลด Python สำหรับแพลตฟอร์มอื่นๆ" . Python.org . เก็บถาวรจากต้นฉบับเมื่อวันที่ 27 พฤศจิกายน 2020 . เรียกดูเมื่อวันที่ 18 สิงหาคม 2023 .
  9. "test – แพ็กเก จการทดสอบการถดถอยสำหรับ Python"เอกสารประกอบPython 3.7.17 เก็บถาวรจากต้นฉบับเมื่อวันที่ 17 พฤษภาคม 2022 เรียกดูเมื่อวันที่ 17 พฤษภาคม 2022
  10. "แพลตฟอร์ม – การเข้าถึงข้อมูลระบุตัวตนของแพลตฟอร์มพื้นฐาน"เอกสารประกอบPython 3.10.4 เก็บถาวรจากต้นฉบับเมื่อวันที่ 17 พฤษภาคม 2022 เรียกดูเมื่อวันที่ 17 พฤษภาคม 2022
  11. 1 2 3 Venners, Bill (13 มกราคม 2546). "การสร้าง Python" . Artima Developer . Artima. เก็บถาวรจากต้นฉบับเมื่อ 1 กันยายน 2559 . สืบค้นเมื่อ22 มีนาคม 2550 .
  12. Cannon, Brett (20 กุมภาพันธ์ 2015). "PEP 488 – การกำจัดไฟล์ PYO"ข้อเสนอการปรับปรุง Python (PEPs)เก็บถาวรจากต้นฉบับเมื่อ 16 มกราคม 2026 เรียกดูเมื่อ 28 กุมภาพันธ์ 2026 ไฟล์ PYO คือไฟล์ไบต์โค้ดที่สร้างและอ่านเมื่อไม่ได้ระบุระดับการเพิ่มประสิทธิภาพในการเริ่มต้นตัวแปลภาษา [...].pyc
  13. Ahlstrom, James C. (11 ตุลาคม 2001). "PEP 273 – การนำเข้าโมดูลจากไฟล์ Zip"ข้อเสนอการปรับปรุง Python (PEPs)เก็บถาวรจากต้นฉบับเมื่อวันที่ 25 กุมภาพันธ์ 2026 เรียกดูเมื่อวันที่ 28 กุมภาพันธ์ 2026 โมดูลแบบไดนามิกมีส่วนขยายเช่น, , และ ..dll.pyd.so
  14. Harper Smith, Emma (9 กันยายน 2017). "PEP 561 – การแจกจ่ายและบรรจุข้อมูลประเภท"ข้อ เสนอการ ปรับปรุงPython (PEPs)เก็บถาวรจากต้นฉบับเมื่อ 7 ธันวาคม 2025 เรียกดูเมื่อ28 กุมภาพันธ์ 2026'stubs' - ไฟล์ที่มีเฉพาะข้อมูลประเภทเท่านั้น ไม่มีโค้ดสำหรับรันไทม์ (ชื่อไฟล์ลงท้ายด้วย.pyi.)
  15. Hammond, Mark; von Löwis, Martin (15 มีนาคม 2011). "PEP 397 – ตัวเรียกใช้งาน Python สำหรับ Windows"ข้อเสนอการปรับปรุง Python (PEPs)เก็บถาวรจากต้นฉบับเมื่อวันที่ 4 กุมภาพันธ์ 2026 เรียกดูเมื่อ วัน ที่28 กุมภาพันธ์ 2026 [...] เวอร์ชัน 'คอนโซล' ของตัวเรียกใช้งานจะเชื่อมโยงกับไฟล์ .py และเวอร์ชัน 'Windows' จะเชื่อมโยงกับไฟล์ .pyw
  16. Holth, Daniel; Moore, Paul (30 มีนาคม 2013). "PEP 0441 – การปรับปรุงการสนับสนุนแอปพลิเคชัน ZIP ของ Python"ข้อเสนอการปรับปรุง Python (PEPs)เก็บถาวรจากต้นฉบับเมื่อ 16 พฤศจิกายน 2015 เรียกดูเมื่อ 12 พฤศจิกายน 2015
  17. "ภาษา Starlark" . bazel.build . เก็บถาวรจากต้นฉบับเมื่อวันที่ 15 มิถุนายน 2020 . เรียกดูเมื่อวันที่ 25 พฤษภาคม 2019 .
  18. 1 2 " ทำไมถึงสร้าง Python ขึ้นมาตั้งแต่แรก?"คำถามที่พบบ่อยเกี่ยวกับ Pythonมูลนิธิซอฟต์แวร์ Python เก็บถาวรจากต้นฉบับเมื่อวันที่ 24 ตุลาคม 2012 เรียกดูเมื่อวันที่ 22 มีนาคม 2007 ฉันมีประสบการณ์มากมายในการใช้งานภาษาแบบตีความในกลุ่ม ABC ที่ CWI และจากการทำงานกับกลุ่มนี้ ฉันได้เรียนรู้มากมายเกี่ยวกับการออกแบบภาษา นี่คือที่มาของฟีเจอร์ต่างๆ ของ Python มากมาย รวมถึงการใช้การเยื้องเพื่อจัดกลุ่มคำสั่งและการรวมประเภทข้อมูลระดับสูงมาก (แม้ว่ารายละเอียดจะแตกต่างกันใน Python ก็ตาม)
  19. "คู่มืออ้างอิง Ada 83 (คำสั่ง raise)" . archive.adaic.com . เก็บถาวรจากต้นฉบับเมื่อวันที่ 22 ตุลาคม 2019 . เรียกดูเมื่อวันที่ 7 มกราคม 2020 .
  20. 1 2 Kuchling, Andrew M. (22 ธันวาคม 2006). "บทสัมภาษณ์กับ Guido van Rossum (กรกฎาคม 1998)" . amk.ca . เก็บถาวรจากต้นฉบับเมื่อ 1 พฤษภาคม 2007 . สืบค้นเมื่อ12 มีนาคม 2012 . ผมใช้เวลาช่วงฤดูร้อนที่ศูนย์วิจัยระบบของ DEC ซึ่งทำให้ผมได้รู้จักกับ Modula-2+; รายงานฉบับสุดท้ายของ Modula-3 กำลังถูกเขียนขึ้นที่นั่นในช่วงเวลาเดียวกัน สิ่งที่ผมเรียนรู้ที่นั่นในภายหลังได้ปรากฏให้เห็นในการจัดการข้อยกเว้น โมดูล และข้อเท็จจริงที่ว่าเมธอดต่างๆ มี 'self' อยู่ในรายการพารามิเตอร์อย่างชัดเจน การตัดแบ่งสตริงมาจาก Algol-68 และ Icon
  21. 1 2 3 "itertools – ฟังก์ชันสร้างตัววนซ้ำเพื่อการวนลูปที่มีประสิทธิภาพ"เอกสารประกอบPython 3.7.17 เก็บถาวรจากต้นฉบับเมื่อวันที่ 14 มิถุนายน 2020 เรียกดูเมื่อวันที่ 22 พฤศจิกายน 2016 โมดูลนี้ใช้ส่วนประกอบการสร้างตัววนซ้ำจำนวนหนึ่งที่ได้รับแรงบันดาลใจจากโครงสร้างจาก APL, Haskell และ SML
  22. van Rossum, Guido (1993). "An Introduction to Python for UNIX/C Programmers". Proceedings of the NLUUG Najaarsconferentie (Dutch UNIX Users Group) . CiteSeerX 10.1.1.38.2023 . แม้ว่าการออกแบบของภาษา C จะห่างไกลจากความสมบูรณ์แบบ แต่ก็มีอิทธิพลต่อ Python อย่างมาก 
  23. 1 2 "คลาส" . บทเรียน Python . มูลนิธิซอฟต์แวร์ Python. เก็บถาวรจากต้นฉบับเมื่อวันที่ 23 ตุลาคม 2012 . เรียกดูเมื่อวันที่ 20 กุมภาพันธ์ 2012 . มันเป็นการผสมผสานกลไกของคลาสที่พบใน C++ และ Modula-3
  24. Lundh, Fredrik. "Call By Object" . effbot.org . เก็บถาวรจากต้นฉบับเมื่อวันที่ 23 พฤศจิกายน 2019 . สืบค้นเมื่อ21 พฤศจิกายน 2017 . แทนที่ "CLU" ด้วย "Python", "record" ด้วย "instance" และ "procedure" ด้วย "function หรือ method" คุณก็จะได้คำอธิบายที่แม่นยำเกี่ยวกับโมเดลวัตถุของ Python
  25. Simionato, Michele. "ลำดับการแก้ไขเมธอดของ Python 2.3" . มูลนิธิซอฟต์แวร์ Python. เก็บถาวรจากต้นฉบับเมื่อ 20 สิงหาคม 2020 . สืบค้น เมื่อ 29 กรกฎาคม 2014 . เมธอด C3 นั้นไม่มีส่วนเกี่ยวข้องกับ Python เลย เนื่องจากมันถูกคิดค้นโดยผู้ที่ทำงานเกี่ยวกับ Dylan และมีการอธิบายไว้ในเอกสารที่มุ่งเป้าไปที่ผู้ใช้ Lisper
  26. Kuchling, AM "Functional Programming HOWTO"เอกสารประกอบ Python v2.7.2มูลนิธิซอฟต์แวร์ Python เก็บถาวรจากต้นฉบับเมื่อวันที่ 24 ตุลาคม 2012 เรียกดูเมื่อวันที่ 9 กุมภาพันธ์ 2012 List comprehensions และ generator expressions [...] เป็นสัญกรณ์ที่กระชับสำหรับการดำเนินการดังกล่าว ซึ่งยืมมาจากภาษาการเขียนโปรแกรมเชิงฟังก์ชัน Haskell
  27. Schemenauer, Neil; Peters, Tim; Hetland, Magnus Lie (18 พฤษภาคม 2001). "PEP 255 – Simple Generators" . ข้อเสนอการปรับปรุง Python . มูลนิธิซอฟต์แวร์ Python. เก็บถาวรจากต้นฉบับเมื่อ 5 มิถุนายน 2020 . สืบค้นเมื่อ9 กุมภาพันธ์ 2012 . 
  28. "เครื่องมือควบคุมการไหลของโปรแกรมเพิ่มเติม"เอกสารประกอบ Python 3มูลนิธิซอฟต์แวร์ Python เก็บถาวรจากต้นฉบับเมื่อวันที่ 4 มิถุนายน 2016 เรียกดูเมื่อวันที่ 24 กรกฎาคม 2015 ตามคำเรียกร้องจากผู้ใช้จำนวนมาก คุณสมบัติบางอย่างที่พบได้ทั่วไปในภาษาการเขียนโปรแกรมเชิงฟังก์ชัน เช่น Lisp ได้ถูกเพิ่มเข้าไปใน Python แล้วด้วยคีย์เวิร์ด lambda เราสามารถสร้างฟังก์ชันนิรนามขนาดเล็กได้
  29. "re – การดำเนินการกับนิพจน์ปกติ"เอกสารประกอบPython 3.10.6 เก็บถาวรจากต้นฉบับเมื่อวันที่ 18 กรกฎาคม 2018 เรียกดูเมื่อวันที่ 6 กันยายน 2022 โมดูลนี้มีฟังก์ชันการจับคู่นิพจน์ปกติคล้ายกับที่พบใน Perl
  30. "CoffeeScript" . coffeescript.org . เก็บถาวรจากต้นฉบับเมื่อวันที่ 12 มิถุนายน 2020 . เรียกดูเมื่อวันที่ 3 กรกฎาคม 2018 .
  31. Rauschmayer, Axel (24 กุมภาพันธ์ 2013). "อิทธิพลของ Perl และ Python ใน JavaScript" . 2ality.com . เก็บถาวรจากต้นฉบับเมื่อ 26 ธันวาคม 2018 . สืบค้นเมื่อ15 พฤษภาคม 2015 .
  32. Rauschmayer, Axel. "บทที่ 3: ธรรมชาติของ JavaScript; อิทธิพล" . Speaking JavaScript . O'Reilly. เก็บถาวรจากต้นฉบับเมื่อวันที่ 26 ธันวาคม 2018 . สืบค้นเมื่อ15 พฤษภาคม 2015 .
  33. Bezanson, Jeff; Karpinski, Stefan; Shah, Viral B.; Edelman, Alan (กุมภาพันธ์ 2012). "ทำไมเราถึงสร้าง Julia" . เว็บไซต์ Julia . เก็บถาวรจากต้นฉบับเมื่อ 2 พฤษภาคม 2020 . สืบค้นเมื่อ5 มิถุนายน 2014 . เราต้องการบางสิ่งที่ใช้งานได้สำหรับการเขียนโปรแกรมทั่วไปเหมือน Python [...]
  34. 1 2 Krill, Paul (4 พฤษภาคม 2023). "ภาษา Mojo ผสาน Python และ MLIR เพื่อการพัฒนา AI" . InfoWorld . เก็บถาวรจากต้นฉบับเมื่อ 5 พฤษภาคม 2023 . สืบค้นเมื่อ5 พฤษภาคม 2023 .
  35. 1 2 Bini, Ola (2007). โครงการเว็บ 2.0 JRuby on Rails เชิงปฏิบัติ: การนำ Ruby on Rails มา สู่แพลตฟอร์ม Javaเบิร์กลีย์: APress หน้า3 ISBN  978-1-59059-881-8.
  36. 1 2 Lattner, Chris (3 มิถุนายน 2014). "โฮมเพจของ Chris Lattner" . Chris Lattner. เก็บถาวรจากต้นฉบับเมื่อ 25 ธันวาคม 2018 . สืบค้น เมื่อ 3 มิถุนายน 2014 . ภาษา Swift เป็นผลผลิตจากความพยายามอย่างไม่หยุดยั้งของทีมผู้เชี่ยวชาญด้านภาษา ผู้เชี่ยวชาญด้านเอกสาร ผู้เชี่ยวชาญด้านการเพิ่มประสิทธิภาพคอมไพเลอร์ และกลุ่มทดสอบภายในที่สำคัญอย่างยิ่งซึ่งให้ข้อเสนอแนะเพื่อช่วยปรับปรุงและทดสอบแนวคิดต่างๆ แน่นอนว่ามันยังได้รับประโยชน์อย่างมากจากประสบการณ์ที่ได้มาอย่างยากลำบากจากภาษาอื่นๆ อีกมากมายในสาขานี้ โดยดึงเอาแนวคิดจาก Objective-C, Rust, Haskell, Ruby, Python, C#, CLU และอีกมากมายเกินกว่าจะกล่าวถึงทั้งหมด
  37. 1 2 "เอกสารประกอบ V (บทนำ)" . GitHub . สืบค้นเมื่อ 24 ธันวาคม 2024 .
  38. Kuhlman, Dave. "หนังสือ Python: Python สำหรับผู้เริ่มต้น, Python ขั้นสูง และแบบฝึกหัด Python" . ส่วนที่ 1.1. เก็บถาวรจากต้นฉบับ(PDF)เมื่อวันที่ 23 มิถุนายน 2012
  39. "PEP 484 – Type Hints" ข้อเสนอการ ปรับปรุงPythonสืบค้นเมื่อ27 ตุลาคม 2025
  40. "mypy – การกำหนดประเภทข้อมูลแบบคงที่ที่ไม่บังคับสำหรับ Python" . mypy-lang.org . สืบค้นเมื่อ17 สิงหาคม 2025 .
  41. "มีอะไรใหม่ใน Python 3.15" . สืบค้นเมื่อ 26 มกราคม 2026 .
  42. "แบบสำรวจนักพัฒนา Stack Overflow ปี 2022" . Stack Overflow . เก็บถาวรจากต้นฉบับเมื่อวันที่ 27 มิถุนายน 2022 . เรียกดูเมื่อวันที่ 12 สิงหาคม 2022 .
  43. "อินโฟกราฟิกสถานการณ์ระบบนิเวศของนักพัฒนาในปี 2020" JetBrains เก็บถาวรจากต้นฉบับเมื่อวันที่ 1 มีนาคม 2021 เรียกดูเมื่อวันที่ 5 มีนาคม 2021
  44. "ดัชนี TIOBE" . TIOBE. เก็บถาวรจากต้นฉบับเมื่อวันที่ 25 กุมภาพันธ์ 2018 . เรียกดูเมื่อวันที่ 3 มกราคม 2023 . ดัชนีชุมชนการเขียนโปรแกรม TIOBE เป็นตัวบ่งชี้ความนิยมของภาษาการเขียนโปรแกรมปรับปรุงตามความจำเป็น
  45. Healy, John; McInnes, Leland; Weir, Colin (2017). "การเชื่อมช่องว่างการวิเคราะห์ไซเบอร์: การทำให้วิทยาศาสตร์ข้อมูลเป็นประชาธิปไตย" The Cyber ​​Defense Review . 2 (1): 109– 118. ISSN 2474-2120 . JSTOR 26267404 . Python เป็นภาษากลางของวิทยาศาสตร์ข้อมูลและการเรียนรู้ของเครื่อง  
  46. Sultana, Simon G.; Reed, Philip A. (2017). "หลักสูตรสำหรับวิชาวิทยาการคอมพิวเตอร์เบื้องต้น: การระบุคำแนะนำจากสถาบันการศึกษาและอุตสาหกรรม" วารสารการศึกษาเทคโนโลยี 43 ( 2): 80– 92. doi : 10.21061/jots.v43i2.a.3 . ISSN 1071-6084 . JSTOR 90023144 .  
  47. "ดัชนี TIOBE" . TIOBE. เก็บถาวรจากต้นฉบับเมื่อวันที่ 25 กุมภาพันธ์ 2018 . เรียกดูเมื่อวันที่ 3 มกราคม 2023 . ดัชนีชุมชนการเขียนโปรแกรม TIOBE เป็นตัวบ่งชี้ความนิยมของภาษาการเขียนโปรแกรม
  48. 1 2 3 van Rossum, Guido (20 มกราคม 2009). "ลำดับเหตุการณ์โดยย่อของ Python" . ประวัติของ Python . เก็บถาวรจากต้นฉบับเมื่อ 5 มิถุนายน 2020 . สืบค้นเมื่อ20 มกราคม 2009 .
  49. van Rossum, Guido (29 สิงหาคม 2000). "SETL (เดิมที: ไม่ค่อยสนใจตัวอักษรช่วง)" . Python-Dev (รายชื่อผู้รับจดหมาย). เก็บถาวรจากต้นฉบับเมื่อ 14 กรกฎาคม 2018 . สืบค้นเมื่อ13 มีนาคม 2011 .
  50. Fairchild, Carlie (12 กรกฎาคม 2018). "Guido van Rossum ก้าวลงจากบทบาทเผด็จการใจดีของ Python ตลอดชีวิต" . Linux Journal . เก็บถาวรจากต้นฉบับเมื่อ 13 กรกฎาคม 2018 . สืบค้นเมื่อ13 กรกฎาคม 2018 .
  51. Smith, Nathaniel J.; Durbin, Ee. "PEP 8100 – การเลือกตั้งคณะกรรมการอำนวยการเดือนมกราคม 2019"ข้อเสนอการปรับปรุง Python (PEPs)มูลนิธิซอฟต์แวร์ Python เก็บถาวรจากต้นฉบับเมื่อวันที่ 4 มิถุนายน 2020 เรียกดูเมื่อ วัน ที่4 พฤษภาคม 2019
  52. ทีมงานหลักและชุมชน Python “PEP 13 – การกำกับดูแลภาษา Python”ข้อ เสนอการ ปรับปรุงPython (PEPs)เก็บถาวรจากต้นฉบับเมื่อวันที่ 27 พฤษภาคม 2021 เรียกดูเมื่อวันที่ 25 สิงหาคม 2021
  53. บริกส์, เจสัน อาร์.; ลิโปวาชา, มิรัน (2013) Python สำหรับเด็ก: บทนำอย่างสนุกสนานเกี่ยวกับการเขียนโปรแกรม . ซานฟรานซิสโก แคลิฟอร์เนีย สหรัฐอเมริกา: ไม่มีการรีดแป้งไอเอสบีเอ็น 978-1-59327-407-8. ลคซีเอ็น2012044047 . โอซีแอลซี825076499 . โอล26119645M .   
  54. Kuchling, AM; Zadka, Moshe (16 ตุลาคม 2000). "มีอะไรใหม่ใน Python 2.0" . มูลนิธิซอฟต์แวร์ Python. เก็บถาวรจากต้นฉบับเมื่อ 23 ตุลาคม 2012. สืบค้นเมื่อ11 กุมภาพันธ์ 2012 .
  55. Peterson, Benjamin. "PEP 373 – กำหนดการวางจำหน่าย Python 2.7" . python.org . เก็บถาวรจากต้นฉบับเมื่อ 19 พฤษภาคม 2020 . สืบค้นเมื่อ9 มกราคม 2017 .
  56. Coghlan, Alyssa. "PEP 466 – การ ปรับปรุงความปลอดภัยเครือข่ายสำหรับ Python 2.7.x"ข้อเสนอการปรับปรุง Python (PEPs)เก็บถาวรจากต้นฉบับเมื่อวันที่ 4 มิถุนายน 2020 เรียกดูเมื่อวันที่ 9 มกราคม 2017
  57. "การยุติการใช้งาน Python 2" . Python.org . เก็บถาวรจากต้นฉบับเมื่อวันที่ 12 มกราคม 2020 . เรียกดูเมื่อวันที่ 22 กันยายน 2019 .
  58. Peterson, Benjamin. "PEP 373 – กำหนดการวางจำหน่าย Python 2.7" . ข้อเสนอการปรับปรุง Python (PEPs) . เก็บถาวรจากต้นฉบับเมื่อวันที่ 13 มกราคม 2020 . สืบค้นเมื่อ22 กันยายน 2019 .
  59. แมตติป (25 ธันวาคม พ.ศ. 2566). "PyPy v7.3.14 วางจำหน่าย " ปิ๊ปปี้ . เก็บถาวรจากต้นฉบับเมื่อวันที่ 5 มกราคม 2024 . สืบค้นเมื่อ5 มกราคม 2024 .
  60. Peterson, Benjamin (20 เมษายน 2020). "Python 2.7.18 เวอร์ชันสุดท้ายของ Python 2" . Python Insider . เก็บถาวรจากต้นฉบับเมื่อ 26 เมษายน 2020 . เรียกดูเมื่อ27 เมษายน 2020 .
  61. "สถานะของเวอร์ชัน Python" . คู่มือสำหรับนักพัฒนา Python . สืบค้นเมื่อ12 พฤศจิกายน 2025 .
  62. The Cain Gang Ltd. "Python Metaclasses: ใคร? ทำไม? เมื่อไหร่?" (PDF) . เก็บถาวรจากต้นฉบับ(PDF)เมื่อวันที่ 30 พฤษภาคม 2552 . เรียกดูเมื่อวันที่ 27 มิถุนายน 2552 .
  63. "3.3. ชื่อเมธอดพิเศษ" . เอกสารอ้างอิงภาษา Python . มูลนิธิซอฟต์แวร์ Python. เก็บถาวรจากต้นฉบับเมื่อวันที่ 15 ธันวาคม 2018 . สืบค้นเมื่อ27 มิถุนายน 2009 .
  64. "PyDBC: เงื่อนไขก่อนการ ทำงานของเมธอด เงื่อนไขหลังการทำงานของเมธอด และตัวแปรคงที่ของคลาสสำหรับ Python"เก็บถาวรจากต้นฉบับเมื่อวันที่ 23 พฤศจิกายน 2019 เรียกดูเมื่อวันที่ 24 กันยายน 2011
  65. "สัญญาสำหรับ Python" . เก็บถาวรจากต้นฉบับเมื่อวันที่ 15 มิถุนายน 2020 . เรียกดูเมื่อวันที่ 24 กันยายน 2011 .
  66. "PyDatalog" . เก็บถาวรจากต้นฉบับเมื่อวันที่ 13 มิถุนายน 2020 . เรียกดูเมื่อวันที่ 22 กรกฎาคม 2012 .
  67. "เชื่อมต่อทุกอย่างเข้าด้วยกันด้วย Python" . Python.org . สืบค้นเมื่อ30 กันยายน 2024 .
  68. "การนับการอ้างอิง"การขยายและการฝังตัวแปลภาษา Python Docs.python.orgเก็บถาวรจากต้นฉบับเมื่อวันที่ 18 ตุลาคม 2012 เรียกดูเมื่อวันที่ 5 มิถุนายน 2020 เนื่องจาก Python ใช้และ อย่างมาก จึงจำเป็นต้องมีกลยุทธ์เพื่อหลีกเลี่ยงการรั่วไหล ของหน่วยความจำ รวมถึงการนำหน่วยความจำที่ถูกปล่อยแล้วกลับมาใช้ใหม่ วิธีที่เลือกใช้เรียกว่าการนับการอ้างอิงmalloc()free()}
  69. 1 2 Hettinger, Raymond (30 มกราคม 2002). "PEP 289 – Generator Expressions" . ข้อเสนอการปรับปรุง Python . มูลนิธิซอฟต์แวร์ Python. เก็บถาวรจากต้นฉบับเมื่อ 14 มิถุนายน 2020 . สืบค้นเมื่อ19 กุมภาพันธ์ 2012 . 
  70. "6.5 itertools – ฟังก์ชันที่สร้างตัววนซ้ำเพื่อการวนลูปที่มีประสิทธิภาพ" . Docs.python.org. เก็บถาวรจากต้นฉบับเมื่อวันที่ 14 มิถุนายน 2020 . เรียกดูเมื่อวันที่ 22 พฤศจิกายน 2016 . 
  71. 1 2 Peters, Tim (19 สิงหาคม 2547). "PEP 20 – ปรัชญาเซนของ Python"ข้อ เสนอการ ปรับปรุงPythonมูลนิธิซอฟต์แวร์ Python เก็บถาวรจากต้นฉบับเมื่อ 26 ธันวาคม 2561 สืบค้นเมื่อ24 พฤศจิกายน 2551 
  72. Lutz, Mark (มกราคม 2022). "การเปลี่ยนแปลงของ Python ตั้งแต่ปี 2014 เป็นต้นไป" . การเรียนรู้ Python . เก็บถาวรจากต้นฉบับเมื่อวันที่ 15 มีนาคม 2024 . สืบค้นเมื่อ25 กุมภาพันธ์ 2024 .
  73. "ความสับสนเกี่ยวกับกฎข้อหนึ่งใน 'The Zen of Python'"" . การสนทนา. Python.org . ความช่วยเหลือเกี่ยวกับ Python. 3 พฤษภาคม 2022. เก็บถาวรจากต้นฉบับเมื่อ 25 กุมภาพันธ์ 2024. เรียกดูเมื่อ25 กุมภาพันธ์ 2024 .
  74. Ambi, Chetan (4 กรกฎาคม 2021). "ตัวดำเนินการ 'walrus' ที่เป็นประเด็นถกเถียงมากที่สุดใน Python"" . Python simplified (pythonsimplified.com) . เก็บถาวรจากต้นฉบับเมื่อวันที่ 27 สิงหาคม 2023 . เรียกดูเมื่อวันที่ 5 กุมภาพันธ์ 2024 .
  75. Grifski, Jeremy (24 พฤษภาคม 2020). "ข้อถกเถียงเบื้องหลัง 'ตัวดำเนินการวอลรัส' ใน Python" . The Renegade Coder (therenegadecoder.com) . เก็บถาวรจากต้นฉบับเมื่อ 28 ธันวาคม 2023 . สืบค้นเมื่อ25 กุมภาพันธ์ 2024 .
  76. ฟาน เคเมนาด, อูโก (2 มิถุนายน พ.ศ. 2569). "Python 3.15.0 beta 2 มาแล้ว!" . หลามอินไซเดอร์ สืบค้นเมื่อ18 มิถุนายน 2569 .
  77. Bader, Dan. "แนวทางปฏิบัติที่ดีที่สุดสำหรับการจัดรูปแบบสตริงใน Python" . Real Python (realpython.com) . เก็บถาวรจากต้นฉบับเมื่อวันที่ 18 กุมภาพันธ์ 2024 . เรียกดูเมื่อวันที่ 25 กุมภาพันธ์ 2024 .
  78. Martelli, Alex; Ravenscroft, Anna; Ascher, David (2005). Python Cookbook, ฉบับที่ 2. O'Reilly Media . หน้า230. ISBN  978-0-596-00797-3เก็บถาวรจากต้นฉบับเมื่อวันที่ 23 กุมภาพันธ์ 2020 เรียกดูเมื่อวันที่ 14 พฤศจิกายน 2015
  79. "วัฒนธรรม Python" . ebeab . 21 มกราคม 2014. เก็บถาวรจากต้นฉบับเมื่อ 30 มกราคม 2014.
  80. 1 2 "การแปลงโค้ด Python เป็น Julia โดยใช้ PyJL" (PDF) . เก็บถาวร(PDF)จากต้นฉบับเมื่อวันที่ 19 พฤศจิกายน 2023 . เรียกดูเมื่อวันที่ 20 กันยายน 2023 . หลังจากแก้ไขโค้ดหนึ่งบรรทัดด้วยตนเองโดยระบุข้อมูลประเภทที่จำเป็น เราได้ความเร็วเพิ่มขึ้น 52.6 เท่า ทำให้โค้ด Julia ที่แปลงแล้วเร็วกว่าโค้ด Python เดิม 19.5 เท่า
  81. 1 2 "15 วิธีที่ Python เป็นพลังสำคัญบนเว็บ"เก็บถาวรจากต้นฉบับเมื่อวันที่ 11 พฤษภาคม 2019 เรียกดูเมื่อวันที่ 3 กรกฎาคม 2018 
  82. "ทำไมถึงเรียกว่า Python?" . คำถามที่พบบ่อยเกี่ยวกับ Python . Docs.python.org. เก็บถาวรจากต้นฉบับเมื่อวันที่ 24 ตุลาคม 2012 . เรียกดูเมื่อวันที่ 3 มกราคม 2023 .
  83. " – ตัวจัดรูปแบบข้อมูลให้สวยงาม – เอกสารประกอบ Python 3.11.0 " . docs.python.org . เก็บถาวรจากต้นฉบับเมื่อวันที่ 22 มกราคม 2021 . เรียกดูเมื่อวันที่ 5 พฤศจิกายน 2022 .pprintstuff = ['spam', 'eggs', 'lumberjack', 'knights', 'ni']
  84. "รูปแบบการเขียนโค้ด"คู่มือฉบับย่อสำหรับผู้เริ่มต้นใช้งาน Python docs.python-guide.org เก็บถาวรจากต้นฉบับเมื่อวันที่ 27 มกราคม 2021 เรียกดูเมื่อวันที่ 20 มกราคม 2021
  85. 1 2 3 Warsaw, Berry; Hylton, Jeremy; Goodder, David (13 มิถุนายน 2000). "PEP 1 – วัตถุประสงค์และแนวทางของ PEP" . peps.python.org . สืบค้นเมื่อ6 พฤษภาคม 2026 .
  86. 1 2 "ข้อเสนอการปรับปรุง Python (PEP)" . สืบค้นเมื่อ6 พฤษภาคม 2026 .
  87. 1 2 3 "PEP ใน Python คืออะไร?" believemy.com สืบค้นเมื่อ 7 พฤษภาคม 2026
  88. "ภาษา Python เหมาะสำหรับโปรแกรมเมอร์มือใหม่หรือไม่?"คำถามที่พบบ่อยเกี่ยวกับ Pythonมูลนิธิซอฟต์แวร์ Python เก็บถาวรจากต้นฉบับเมื่อวันที่ 24 ตุลาคม 2012 เรียกดูเมื่อวันที่ 21 มีนาคม 2007
  89. "ความเข้าใจผิดเกี่ยวกับการเยื้องใน Python" . Secnetix.de. เก็บถาวรจากต้นฉบับเมื่อวันที่ 18 กุมภาพันธ์ 2018 . เรียกดูเมื่อวันที่ 19 เมษายน 2011 .
  90. Guttag, John V. (12 สิงหาคม 2559). บทนำสู่การคำนวณและการเขียนโปรแกรมโดยใช้ Python: พร้อมการประยุกต์ใช้เพื่อทำความเข้าใจข้อมูล . สำนักพิมพ์ MIT. ISBN 978-0-262-52962-4.
  91. 1 2 van Rossum, Guido; Warsaw, Barry. "PEP 8 – คู่มือรูปแบบการเขียนโค้ด Python"ข้อ เสนอการ ปรับปรุงPython (PEPs)เก็บถาวรจากต้นฉบับเมื่อวันที่ 17 เมษายน 2019 เรียกดูเมื่อวันที่ 26 มีนาคม 2019
  92. "8. ข้อผิดพลาดและข้อยกเว้น – เอกสารประกอบ Python 3.12.0a0" . docs.python.org . เก็บถาวรจากต้นฉบับเมื่อวันที่ 9 พฤษภาคม 2022 . เรียกดูเมื่อวันที่ 9 พฤษภาคม 2022 .
  93. "ไฮไลท์: Python 2.5" . Python.org . เก็บถาวรจากต้นฉบับเมื่อวันที่ 4 สิงหาคม 2019 . เรียกดูเมื่อวันที่ 20 มีนาคม 2018 .
  94. "มีอะไรใหม่ใน Python 3.15" เอกสาร ประกอบPython สืบค้นเมื่อ 30 เมษายน 2569
  95. van Rossum, Guido (22 เมษายน 2552). "การกำจัดการเรียกซ้ำแบบหาง" . Neopythonic.blogspot.be. เก็บถาวรจากต้นฉบับเมื่อ 19 พฤษภาคม 2561 . สืบค้นเมื่อ3 ธันวาคม 2555 .
  96. van Rossum, Guido (9 กุมภาพันธ์ 2006). "การออกแบบภาษาไม่ใช่แค่การแก้ปริศนา" . ฟอรัม Artima . Artima. เก็บถาวรจากต้นฉบับเมื่อ 17 มกราคม 2020 . สืบค้นเมื่อ21 มีนาคม 2007 .
  97. van Rossum, Guido; Eby, Phillip J. (10 พฤษภาคม 2005). "PEP 342 – Coroutines via Enhanced Generators" . ข้อเสนอการปรับปรุง Python . มูลนิธิซอฟต์แวร์ Python. เก็บถาวรจากต้นฉบับเมื่อ 29 พฤษภาคม 2020 . สืบค้นเมื่อ19 กุมภาพันธ์ 2012 . 
  98. "PEP 380" . Python.org. เก็บถาวรจากต้นฉบับเมื่อวันที่ 4 มิถุนายน 2020 . เรียกดูเมื่อวันที่ 3 ธันวาคม 2012 .
  99. "division" . python.org . เก็บถาวรจากต้นฉบับเมื่อวันที่ 20 กรกฎาคม 2549 . เรียกดูเมื่อวันที่ 30 กรกฎาคม 2557 .
  100. "PEP 0465 – ตัวดำเนินการอินฟิกซ์เฉพาะสำหรับการคูณเมทริกซ์" . python.org . เก็บถาวรจากต้นฉบับเมื่อวันที่ 4 มิถุนายน 2020 . เรียกดูเมื่อวันที่ 1 มกราคม 2016 .
  101. "การเผยแพร่และบันทึกการเปลี่ยนแปลงของ Python 3.5.1" . python.org . เก็บถาวรจากต้นฉบับเมื่อ 14 พฤษภาคม 2020 . เรียกดูเมื่อ1 มกราคม 2016 .
  102. "มีอะไรใหม่ใน Python 3.8" . เก็บถาวรจากต้นฉบับเมื่อวันที่ 8 มิถุนายน 2020 . เรียกดูเมื่อวันที่ 14 ตุลาคม 2019 .
  103. van Rossum, Guido; Hettinger, Raymond (7 กุมภาพันธ์ 2003). "PEP 308 – นิพจน์เงื่อนไข" . ข้อเสนอการปรับปรุง Python . มูลนิธิซอฟต์แวร์ Python. เก็บถาวรจากต้นฉบับเมื่อ 13 มีนาคม 2016 . สืบค้นเมื่อ13 กรกฎาคม 2011 . 
  104. "4. ประเภทข้อมูลในตัว – เอกสารประกอบ Python 3.6.3rc1" . python.org . เก็บถาวรจากต้นฉบับเมื่อ 14 มิถุนายน 2020 . เรียกดูเมื่อ1 ตุลาคม 2017 .
  105. "5.3. ทูเพิลและลำดับ – เอกสารประกอบ Python 3.7.1rc2" . python.org . เก็บถาวรจากต้นฉบับเมื่อ 10 มิถุนายน 2020 . เรียกดูเมื่อ17 ตุลาคม 2018 .
  106. 1 2 "PEP 498 – การแทรกสตริงแบบตรงตัว" . python.org . เก็บถาวรจากต้นฉบับเมื่อวันที่ 15 มิถุนายน 2020 . เรียกดูเมื่อวันที่ 8 มีนาคม 2017 .
  107. "เอกสารอ้างอิงภาษา Python ส่วนที่ 3.3 คลาสแบบใหม่และแบบคลาสสิก สำหรับเวอร์ชัน 2.7.1"เก็บถาวรจากต้นฉบับเมื่อวันที่ 26 ตุลาคม 2012 เรียกดูเมื่อวันที่ 12 มกราคม 2011
  108. "PEP 484 – คำแนะนำเกี่ยวกับประเภทข้อมูล | peps.python.org" . peps.python.org . เก็บถาวรจากต้นฉบับเมื่อวันที่ 27 พฤศจิกายน 2023 . เรียกดูเมื่อวันที่ 29 พฤศจิกายน 2023 .
  109. "การพิมพ์ — การสนับสนุนคำแนะนำประเภท"เอกสารประกอบ Pythonมูลนิธิซอฟต์แวร์ Python เก็บถาวรจากต้นฉบับเมื่อวันที่ 21 กุมภาพันธ์ 2020 เรียกดูเมื่อวันที่ 22 ธันวาคม 2023
  110. "mypy – การกำหนดประเภทข้อมูลแบบคงที่ที่ไม่บังคับสำหรับ Python" . เก็บถาวรจากต้นฉบับเมื่อวันที่ 6 มิถุนายน 2020 . เรียกดูเมื่อวันที่ 28 มกราคม 2017 .
  111. "บทนำ" . mypyc.readthedocs.io . เก็บถาวรจากต้นฉบับเมื่อวันที่ 22 ธันวาคม 2023 . เรียกดูเมื่อวันที่ 22 ธันวาคม 2023 .
  112. "ระบบใดบ้างที่ Python ไม่ใช้เลขทศลอยความแม่นยำสองเท่า IEEE-754" Stack Overflow สืบค้นเมื่อ 7 มิถุนายน 2026
  113. "15. การคำนวณเลขทศนิยม: ปัญหาและข้อจำกัด – เอกสารประกอบ Python 3.8.3" . docs.python.org . เก็บถาวรจากต้นฉบับเมื่อวันที่ 6 มิถุนายน 2020 . เรียกดูเมื่อวันที่ 6 มิถุนายน 2020 . เครื่องคอมพิวเตอร์เกือบทั้งหมดในปัจจุบัน (พฤศจิกายน 2000) ใช้การคำนวณเลขทศนิยมแบบ IEEE-754 และแพลตฟอร์มเกือบทั้งหมดแปลงค่าเลขทศนิยมของ Python เป็น "ความแม่นยำสองเท่า" ของ IEEE-754
  114. "ArrowNotImplementedError: halffloat error on applying pandas.to_feather on a dataframe" . Stack Overflow . สืบค้นเมื่อ8 มิถุนายน 2026 .
  115. "รูป แบบจุดลอยตัวแปลกใหม่ — เอกสารประกอบ bitstring 4.3" bitstring.readthedocs.io สืบค้นเมื่อ8 มิถุนายน 2026
  116. Zadka, Moshe; van Rossum, Guido (11 มีนาคม 2001). "PEP 237 – การรวมจำนวนเต็มยาวและจำนวนเต็ม"ข้อเสนอการปรับปรุง Pythonมูลนิธิซอฟต์แวร์ Python เก็บถาวรจากต้นฉบับเมื่อ 28 พฤษภาคม 2020 เรียกดูเมื่อ24 กันยายน 2011 
  117. "ประเภทในตัว" . เก็บถาวรจากต้นฉบับเมื่อวันที่ 14 มิถุนายน 2020 . เรียกดูเมื่อวันที่ 3 ตุลาคม 2019 .
  118. "PEP 465 – ตัวดำเนินการอินฟิกซ์เฉพาะสำหรับการคูณเมทริกซ์" . python.org . เก็บถาวรจากต้นฉบับเมื่อ 29 พฤษภาคม 2020 . เรียกดูเมื่อ3 กรกฎาคม 2018 .
  119. 1 2 Zadka, Moshe; van Rossum, Guido (11 มีนาคม 2001). "PEP 238 – การเปลี่ยนตัวดำเนินการหาร"ข้อเสนอการปรับปรุง Pythonมูลนิธิซอฟต์แวร์ Python เก็บถาวรจากต้นฉบับเมื่อ 28 พฤษภาคม 2020 เรียกดูเมื่อ23 ตุลาคม 2013 
  120. "เหตุใดการหารจำนวนเต็มใน Python จึงใช้การปัดเศษลง" 24 สิงหาคม 2010 เก็บถาวรจากต้นฉบับเมื่อ 5 มิถุนายน 2020 เรียกดูเมื่อ25 สิงหาคม 2010
  121. "round" , ไลบรารีมาตรฐานของ Python เวอร์ชัน 3.2, §2: ฟังก์ชันในตัว , เก็บถาวรจากต้นฉบับเมื่อวันที่ 25 ตุลาคม 2012 , เรียกดูเมื่อวันที่ 14 สิงหาคม 2011
  122. "round" , ไลบรารีมาตรฐานของ Python เวอร์ชัน 2.7, §2: ฟังก์ชันในตัว , เก็บถาวรจากต้นฉบับเมื่อวันที่ 27 ตุลาคม 2012 , เรียกดูเมื่อวันที่ 14 สิงหาคม 2011
  123. Beazley, David M. (2009). Python Essential Reference (ฉบับที่ 4 ) . Addison-Wesley Professional. หน้า66. ISBN   978-0-672-32978-4.
  124. Kernighan, Brian W.; Ritchie, Dennis M. (1988). ภาษาการเขียนโปรแกรม C ( ฉบับที่ 2). หน้า206 .  
  125. 1 2 Batista, Facundo (17 ตุลาคม 2546). "PEP 327 – ประเภทข้อมูลทศนิยม"ข้อเสนอการปรับปรุง Pythonมูลนิธิซอฟต์แวร์ Python เก็บถาวรจากต้นฉบับเมื่อ 4 มิถุนายน 2563 เรียกดูเมื่อ24 พฤศจิกายน 2551 
  126. " มีอะไรใหม่ใน Python 2.6" เอกสารประกอบ Python v2.6.9 29 ตุลาคม 2013 เก็บถาวรจากต้นฉบับเมื่อ 23 ธันวาคม 2019 เรียกดูเมื่อ26กันยายน2015
  127. "10 เหตุผลที่ Python ยอดเยี่ยมสำหรับการวิจัย (และเหตุผลบางประการที่มันไม่เหมาะ) – Hoyt Koepke"ภาควิชาสถิติ มหาวิทยาลัยวอชิงตันเก็บถาวรจากต้นฉบับเมื่อวันที่ 31 พฤษภาคม 2020 สืบค้นเมื่อ 3 กุมภาพันธ์ 2019
  128. Shell, Scott (17 มิถุนายน 2014). "บทนำเกี่ยวกับ Python สำหรับการคำนวณทางวิทยาศาสตร์" (PDF) . เก็บถาวร(PDF)จากต้นฉบับเมื่อวันที่ 4 กุมภาพันธ์ 2019 . เรียกดูเมื่อวันที่ 3 กุมภาพันธ์ 2019 .
  129. Piotrowski, Przemyslaw (กรกฎาคม 2549). "สร้างสภาพแวดล้อมการพัฒนาเว็บอย่างรวดเร็วสำหรับ Python Server Pages และ Oracle" . Oracle Technology Network . Oracle. เก็บถาวรจากต้นฉบับเมื่อวันที่ 2 เมษายน 2562 . สืบค้นเมื่อ12 มีนาคม 2555 .
  130. Eby, Phillip J. (7 ธันวาคม 2003). "PEP 333 – Python Web Server Gateway Interface v1.0" . ข้อเสนอการปรับปรุง Python . มูลนิธิซอฟต์แวร์ Python. เก็บถาวรจากต้นฉบับเมื่อ 14 มิถุนายน 2020 . สืบค้นเมื่อ19 กุมภาพันธ์ 2012 . 
  131. "PyPI" . PyPI . 13 มีนาคม 2025. เก็บถาวรจากต้นฉบับเมื่อ 22 กุมภาพันธ์ 2025.
  132. "คำศัพท์: แบบโต้ตอบ"เอกสาร ประกอบ Pythonเวอร์ชัน 3.13.7 สืบค้นเมื่อ 31 สิงหาคม 2025
  133. 1 2 "IDLE — ตัวแก้ไขและเชลล์ Python"เอกสาร ประกอบ Pythonเวอร์ชัน 3.13.7 สืบค้นเมื่อ 31 สิงหาคม 2025 IDLE คือสภาพแวดล้อมการพัฒนาและการเรียนรู้แบบบูรณาการของ Python
  134. "เอกสารประกอบการใช้งาน IPython" . v9.5.0. 29 สิงหาคม 2025. เก็บถาวรจากต้นฉบับเมื่อ 31 สิงหาคม 2025. เรียกดูเมื่อ31 สิงหาคม 2025 .
  135. "Python ใน Visual Studio Code" . code.visualstudio.com . สืบค้นเมื่อ 1 ธันวาคม 2025 .
  136. "โครงการ Jupyter" . Jupyter.org . เก็บถาวรจากต้นฉบับเมื่อวันที่ 12 ตุลาคม 2023 . เรียกดูเมื่อวันที่ 2 เมษายน 2025 .
  137. Harper, Doug (ฤดูใบไม้ผลิ 2024). "Enthought Canopy" . WKU Physics 316 . มหาวิทยาลัยเวสเทิร์นเคนทักกี . เก็บถาวรจากต้นฉบับเมื่อวันที่ 18 สิงหาคม 2024 . สืบค้นเมื่อ31 สิงหาคม 2025 .
  138. "Enthought Canopy" . Enthought . เก็บถาวรจากต้นฉบับเมื่อวันที่ 15 กรกฎาคม 2017 . เรียกดูเมื่อวันที่ 20 สิงหาคม 2016 .
  139. "PEP 7 – คู่มือรูปแบบการเขียนโค้ด C | peps.python.org" . peps.python.org . เก็บถาวรจากต้นฉบับเมื่อวันที่ 24 เมษายน 2022 . เรียกดูเมื่อวันที่ 28 เมษายน 2022 .
  140. "4. การสร้างส่วนขยาย C และ C++ – เอกสารประกอบ Python 3.9.2" . docs.python.org . เก็บถาวรจากต้นฉบับเมื่อวันที่ 3 มีนาคม 2021 . เรียกดูเมื่อวันที่ 1 มีนาคม 2021 .
  141. van Rossum, Guido (5 มิถุนายน 2001). "PEP 7 – คู่มือรูปแบบการเขียนโค้ด C" . ข้อเสนอการปรับปรุง Python . มูลนิธิซอฟต์แวร์ Python. เก็บถาวรจากต้นฉบับเมื่อ 1 มิถุนายน 2020 . สืบค้นเมื่อ24 พฤศจิกายน 2008 . 
  142. "รหัสไบต์ของ CPython" . Docs.python.org. เก็บถาวรจากต้นฉบับเมื่อวันที่ 5 มิถุนายน 2020 . เรียกดูเมื่อวันที่ 16 กุมภาพันธ์ 2016 .
  143. "รายละเอียดภายในของ Python 2.5" (PDF) . เก็บถาวร(PDF)จากต้นฉบับเมื่อวันที่ 6 สิงหาคม 2012 . เรียกดูเมื่อวันที่ 19 เมษายน 2011 .
  144. "Changelog – เอกสารประกอบ Python 3.9.0" . docs.python.org . เก็บถาวรจากต้นฉบับเมื่อวันที่ 7 กุมภาพันธ์ 2021 . เรียกดูเมื่อวันที่ 8 กุมภาพันธ์ 2021 .
  145. "ดาวน์โหลด Python" . Python.org . เก็บถาวรจากต้นฉบับเมื่อวันที่ 8 ธันวาคม 2020 . เรียกดูเมื่อวันที่ 13 ธันวาคม 2020 .
  146. "ปัญหาความเข้ากันได้ของ Python กับ VMS - VSI OpenVMS Wiki" . wiki.vmssoftware.com . สืบค้นเมื่อ8 มิถุนายน 2026 .
  147. "Python และ Python Wheels สำหรับ OpenVMS — VMS Software, Inc" . docs.vmssoftware.com . สืบค้นเมื่อ8 มิถุนายน 2026 .
  148. "ประวัติ[ vmspython ] " . www.vmspython.org . เก็บถาวรจากต้นฉบับเมื่อวันที่ 2 ธันวาคม 2020 . เรียกดูเมื่อวันที่ 4 ธันวาคม 2020 .
  149. "บทสัมภาษณ์กับ Guido van Rossum" . Oreilly.com. เก็บถาวรจากต้นฉบับเมื่อวันที่ 16 กรกฎาคม 2014 . เรียกดูเมื่อวันที่ 24 พฤศจิกายน 2008 .
  150. 1 2 3เปเรย์รา, รุย; คูโต้, มาร์โก; ริเบโร, ฟรานซิสโก; รัว, รุย; กุนญา, ฮาโกเม่; เฟอร์นันเดส, ชูเอา เปาโล; Saraiva, João (23 ตุลาคม 2017). "ประสิทธิภาพการใช้พลังงานในภาษาโปรแกรม: พลังงาน เวลา และหน่วยความจำเกี่ยวข้องกันอย่างไร" . การดำเนินการของการประชุมนานาชาติ ACM SIGPLAN ครั้งที่ 10 เกี่ยวกับวิศวกรรมภาษาซอฟต์แวร์ SLE 2017 นิวยอร์ก รัฐนิวยอร์ก สหรัฐอเมริกา: สมาคมเครื่องจักรคอมพิวเตอร์ หน้า256– 267. ดอย : 10.1145/3136014.3136031 . ไอเอสบีเอ็น  978-1-4503-5525-4.
  151. "PyInstaller ทำอะไร และทำงานอย่างไร "
  152. "ความเข้ากันได้ของ PyPy" . Pypy.org. เก็บถาวรจากต้นฉบับเมื่อวันที่ 6 มิถุนายน 2020 . เรียกดูเมื่อวันที่ 3 ธันวาคม 2012 .
  153. ทีมงาน PyPy (28 ธันวาคม 2019). "ดาวน์โหลดและติดตั้ง" . PyPy . เก็บถาวรจากต้นฉบับเมื่อ 8 มกราคม 2022 . เรียกดูเมื่อ8 มกราคม 2022 .
  154. "การเปรียบเทียบความเร็วระหว่าง CPython และ Pypy" . Speed.pypy.org. เก็บถาวรจากต้นฉบับเมื่อวันที่ 10 พฤษภาคม 2021 . เรียกดูเมื่อวันที่ 3 ธันวาคม 2012 .
  155. "Codon: ความแตกต่างกับ Python" . เก็บถาวรจากต้นฉบับเมื่อ 25 พฤษภาคม 2023 . เรียกดูเมื่อ28 สิงหาคม 2023 .
  156. Lawson, Loraine (14 มีนาคม 2023). "คอมไพเลอร์ที่สร้างโดย MIT ช่วยเร่งความเร็วโค้ด Python" . The New Stack . เก็บถาวรจากต้นฉบับเมื่อ 6 เมษายน 2023 . สืบค้นเมื่อ28 สิงหาคม 2023 .
  157. "Python-for-EV3" . LEGO Education . เก็บถาวรจากต้นฉบับเมื่อวันที่ 7 มิถุนายน 2020 . เรียกดูเมื่อวันที่ 17 เมษายน 2019 .
  158. Yegulalp, Serdar (29 ตุลาคม 2020). "Pyston กลับมาจากความตายเพื่อเร่งความเร็ว Python" . InfoWorld . เก็บถาวรจากต้นฉบับเมื่อ 27 มกราคม 2021 . สืบค้นเมื่อ26 มกราคม 2021 .
  159. "cinder: โปรเจกต์ CPython ที่เน้นประสิทธิภาพของ Instagram" . GitHub . เก็บถาวรจากต้นฉบับเมื่อ 4 พฤษภาคม 2021 . เรียกดูเมื่อ4 พฤษภาคม 2021 .
  160. Aroca, Rafael (7 สิงหาคม 2021). "Snek Lang: ให้ความรู้สึกเหมือน Python บน Arduino" . Yet Another Technology Blog . เก็บถาวรจากต้นฉบับเมื่อ 5 มกราคม 2024 . เรียกดูเมื่อ4 มกราคม 2024 .
  161. Aufranc (CNXSoft), Jean-Luc (16 มกราคม 2020). "Snekboard ควบคุม LEGO Power Functions ด้วยภาษาโปรแกรม CircuitPython หรือ Snek (ระดมทุน) – CNX Software" . CNX Software – ข่าวสารระบบฝังตัว . เก็บถาวรจากต้นฉบับเมื่อ 5 มกราคม 2024 . เรียกดู เมื่อ 4 มกราคม 2024 .
  162. Kennedy (@mkennedy), Michael. "พร้อมที่จะค้นหาว่าคุณโด่งดังในโลก Git หรือไม่?" . pythonbytes.fm . เก็บถาวรจากต้นฉบับเมื่อวันที่ 5 มกราคม 2024 . เรียกดูเมื่อวันที่ 4 มกราคม 2024 .
  163. Packard, Keith (20 ธันวาคม 2022). "ภาษาโปรแกรม Snek: ภาษาสำหรับการประมวลผลแบบฝังตัวที่ได้รับแรงบันดาลใจจาก Python" (PDF) . เก็บถาวร(PDF)จากต้นฉบับเมื่อวันที่ 4 มกราคม 2024 . เรียกดูเมื่อวันที่ 4 มกราคม 2024 .
  164. RustPython/RustPython , RustPython Dev, 5 พฤษภาคม 2026 , สืบค้นเมื่อ6 พฤษภาคม 2026
  165. "คุณสมบัติ Stackless ระดับแอปพลิเคชัน – เอกสารประกอบ PyPy 2.0.2" . Doc.pypy.org. เก็บถาวรจากต้นฉบับเมื่อวันที่ 4 มิถุนายน 2020 . เรียกดูเมื่อวันที่ 17 กรกฎาคม 2013 .
  166. "แผนการปรับปรุงประสิทธิภาพของ Python" . Google Project Hosting . 15 ธันวาคม 2009. เก็บถาวรจากต้นฉบับเมื่อ 11 เมษายน 2016 . เรียกดูเมื่อ24 กันยายน 2011 .
  167. "Python บน Nokia N900" . Stochastic Geometry . 29 เมษายน 2010. เก็บถาวรจากต้นฉบับเมื่อ 20 มิถุนายน 2019 . สืบค้นเมื่อ9 กรกฎาคม 2015 .
  168. "Brython" . brython.info . เก็บถาวรจากต้นฉบับเมื่อวันที่ 3 สิงหาคม 2018 . เรียกดูเมื่อวันที่ 21 มกราคม 2021 .
  169. "Transcrypt – Python ในเบราว์เซอร์" . transcrypt.org . เก็บถาวรจากต้นฉบับเมื่อวันที่ 19 สิงหาคม 2018 . เรียกดูเมื่อวันที่ 22 ธันวาคม 2020 .
  170. "Transcrypt: โครงสร้างของคอมไพเลอร์ Python เป็น JavaScript" . InfoQ . เก็บถาวรจากต้นฉบับเมื่อวันที่ 5 ธันวาคม 2020 . เรียกดูเมื่อวันที่ 20 มกราคม 2021 .
  171. "Nuitka Home | Nuitka Home" . nuitka.net . เก็บถาวรจากต้นฉบับเมื่อ 30 พฤษภาคม 2020 . เรียกดูเมื่อ18 สิงหาคม 2017 .
  172. Guelton, Serge; Brunet, Pierrick; Amini, Mehdi; Merlini, Adrien; Corbillon, Xavier; Raynaud, Alan (16 มีนาคม 2015). "Pythran: การเปิดใช้งานการเพิ่มประสิทธิภาพแบบคงที่ของโปรแกรม Python ทางวิทยาศาสตร์" . Computational Science & Discovery . 8 (1) 014001. IOP Publishing. Bibcode : 2015CS & D....8a4001G . doi : 10.1088/1749-4680/8/1/014001 . ISSN 1749-4699 . 
  173. "ตัวแปลงโค้ด Python → 11l → C++"เก็บถาวรจากต้นฉบับเมื่อวันที่ 24 กันยายน 2022 เรียกดูเมื่อวันที่ 17 กรกฎาคม 2022
  174. "google/grumpy" . 10 เมษายน 2020. เก็บถาวรจากต้นฉบับเมื่อ 15 เมษายน 2020. เรียกดูเมื่อ25 มีนาคม 2020 ผ่าน GitHub.
  175. "โครงการ" . opensource.google . เก็บถาวรจากต้นฉบับเมื่อวันที่ 24 เมษายน 2020 . เรียกดูเมื่อวันที่ 25 มีนาคม 2020 .
  176. Francisco, Thomas Claburn ใน San. "โค้ดที่อารมณ์เสียของ Google ทำให้ Python กลายเป็น Go" . www.theregister.com . เก็บถาวรจากต้นฉบับเมื่อวันที่ 7 มีนาคม 2021 . เรียกดูเมื่อวันที่ 20 มกราคม 2021 .
  177. "IronPython.net /" . ironpython.net . เก็บถาวรจากต้นฉบับเมื่อวันที่ 17 เมษายน 2021
  178. "GitHub – IronLanguages/ironpython3: การใช้งาน Python 3.x สำหรับ .NET Framework ที่สร้างขึ้นบน Dynamic Language Runtime" . GitHub . เก็บถาวรจากต้นฉบับเมื่อวันที่ 28 กันยายน 2021
  179. "คำถามที่พบบ่อยเกี่ยวกับ Jython" . www.jython.org . เก็บถาวรจากต้นฉบับเมื่อวันที่ 22 เมษายน 2021 . เรียกดูเมื่อวันที่ 22 เมษายน 2021 .
  180. Murri, Riccardo (2013). ประสิทธิภาพของรันไทม์ Python บนโค้ดวิทยาศาสตร์ที่ไม่ใช่ตัวเลขการประชุมวิชาการยุโรปว่าด้วย Python ในวิทยาศาสตร์ (EuroSciPy) arXiv : 1404.6388 . Bibcode : 2014arXiv1404.6388M .
  181. "เกมทดสอบประสิทธิภาพภาษาคอมพิวเตอร์" . เก็บถาวรจากต้นฉบับเมื่อวันที่ 14 มิถุนายน 2020 . เรียกดูเมื่อวันที่ 30 เมษายน 2020 .
  182. Python, Real. "Look Ma, No for Loops: Array Programming With NumPy – Real Python" . realpython.com . สืบค้นเมื่อ15 ตุลาคม 2025 .
  183. 1 2 Warsaw, Barry; Hylton, Jeremy; Goodger, David (13 มิถุนายน 2000). "PEP 1 – วัตถุประสงค์และแนวทางของ PEP"ข้อเสนอการปรับปรุง Pythonมูลนิธิซอฟต์แวร์ Python เก็บถาวรจากต้นฉบับเมื่อ 6 มิถุนายน 2020 สืบค้นเมื่อ19เมษายน2011 
  184. Cannon, Brett. "Guido, Some Guys, and a Mailing List: How Python is Developed" . python.org . Python Software Foundation. เก็บถาวรจากต้นฉบับเมื่อวันที่ 1 มิถุนายน 2552 . สืบค้นเมื่อ27 มิถุนายน 2552 .
  185. Edge, Jake (23 กุมภาพันธ์ 2022). "การย้ายบั๊กของ Python ไปยัง GitHub [ LWN.net ] " . เก็บถาวรจากต้นฉบับเมื่อ 2 ตุลาคม 2022 . เรียกดูเมื่อ2 ตุลาคม 2022 .
  186. "คู่มือสำหรับนักพัฒนา Python – คู่มือสำหรับนักพัฒนา Python" . devguide.python.org . เก็บถาวรจากต้นฉบับเมื่อวันที่ 9 พฤศจิกายน 2020 . เรียกดูเมื่อวันที่ 17 ธันวาคม 2019 .
  187. Hughes, Owen (24 พฤษภาคม 2021). "ภาษาโปรแกรม: เหตุใด Python 4.0 อาจไม่มีวันมาถึง ตามคำกล่าวของผู้สร้าง" . TechRepublic . เก็บถาวรจากต้นฉบับเมื่อ 14 กรกฎาคม 2022 . สืบค้นเมื่อ16 พฤษภาคม 2022 .
  188. "PEP 602 – วงจรการออกเวอร์ชันประจำปีสำหรับ Python" . Python.org . เก็บถาวรจากต้นฉบับเมื่อวันที่ 14 มิถุนายน 2020 . เรียกดูเมื่อวันที่ 6 พฤศจิกายน 2019 .
  189. Edge, Jake (23 ตุลาคม 2019). "การเปลี่ยนจังหวะการเผยแพร่ Python [ LWN.net ] " . lwn.net . เก็บถาวรจากต้นฉบับเมื่อ 6 พฤศจิกายน 2019 . เรียกดูเมื่อ6 พฤศจิกายน 2019 .
  190. Norwitz, Neal (8 เมษายน 2545). " [ Python-Dev ]ตารางการเผยแพร่ (เดิมคือ ความเสถียรและการเปลี่ยนแปลง)" . เก็บถาวรจากต้นฉบับเมื่อ 15 ธันวาคม 2561 . สืบค้นเมื่อ27 มิถุนายน 2552 .
  191. 1 2 Aahz; Baxter, Anthony (15 มีนาคม 2001). "PEP 6 – การแก้ไขข้อบกพร่อง" . ข้อเสนอการปรับปรุง Python . มูลนิธิซอฟต์แวร์ Python. เก็บถาวรจากต้นฉบับเมื่อ 5 มิถุนายน 2020 . สืบค้นเมื่อ27 มิถุนายน 2009 . 
  192. "Python Buildbot" . คู่มือสำหรับนักพัฒนา Python . มูลนิธิซอฟต์แวร์ Python. เก็บถาวรจากต้นฉบับเมื่อวันที่ 5 มิถุนายน 2020 . เรียกดูเมื่อวันที่ 24 กันยายน 2011 .
  193. 1 2 " กระตุ้นความอยากอาหารของคุณ" บทเรียน Pythonมูลนิธิซอฟต์แวร์ Python เก็บถาวรจากต้นฉบับเมื่อวันที่ 26 ตุลาคม 2012 เรียกดูเมื่อวันที่ 20 กุมภาพันธ์ 2012
  194. "ใน Python ฉันควรใช้ else หลัง return ในบล็อก if หรือไม่?" Stack Overflow Stack Exchange . 17 กุมภาพันธ์ 2011. เก็บถาวรจากต้นฉบับเมื่อ 20 มิถุนายน 2019. เรียกดูเมื่อ6 พฤษภาคม 2011 .
  195. ลุตซ์ 2013 , หน้า 17.
  196. Fehily, Chris (2002). Python . Peachpit Press. หน้าxv. ISBN  978-0-201-74884-0เก็บถาวรจากต้นฉบับเมื่อวันที่ 17 กรกฎาคม 2560 เรียกดูเมื่อวันที่ 9 พฤษภาคม 2560
  197. Lubanovic, Bill (2014). Introducing Python . Sebastopol, CA : O'Reilly Media. หน้า305. ISBN   978-1-4493-5936-2สืบค้นข้อมูลเมื่อ วัน ที่31 กรกฎาคม 2566
  198. Esterbrook, Charles. "คำขอบคุณ" . cobra-language.com . ภาษา Cobra. เก็บถาวรจากต้นฉบับเมื่อวันที่ 8 กุมภาพันธ์ 2008 . สืบค้นเมื่อ7 เมษายน 2010 .
  199. "ข้อเสนอ: ตัววนซ้ำและตัวสร้าง[ ES4 Wiki ] " . wiki.ecmascript.org. เก็บถาวรจากต้นฉบับเมื่อวันที่ 20 ตุลาคม 2550 . เรียกดูเมื่อวันที่ 24 พฤศจิกายน 2551 .
  200. Kincaid, Jason (10 พฤศจิกายน 2009). "Google's Go: ภาษาโปรแกรมใหม่ที่ผสมผสานระหว่าง Python และ C++" . TechCrunch . เก็บถาวรจากต้นฉบับเมื่อ 18 มกราคม 2010 . สืบค้นเมื่อ29 มกราคม 2010 .
  201. "เหตุผลที่เราสร้าง Julia" . เว็บไซต์ Julia . กุมภาพันธ์ 2012. เก็บถาวรจากต้นฉบับเมื่อ 2 พฤษภาคม 2020 . เรียกดูเมื่อ5 มิถุนายน 2014 . เราต้องการบางสิ่งที่ใช้งานได้สำหรับการเขียนโปรแกรมทั่วไปเหมือนกับ Python [...]
  202. "เอกสารประกอบโมดูลาร์ – ทำไมต้อง Mojo" . docs.modular.com . เก็บถาวรจากต้นฉบับเมื่อ 5 พฤษภาคม 2023 . เรียกดูเมื่อ5 พฤษภาคม 2023 . Mojo ในฐานะสมาชิกของตระกูล Python [..] การยอมรับ Python ช่วยลดความซับซ้อนของความพยายามในการออกแบบของเราอย่างมาก เนื่องจากไวยากรณ์ส่วนใหญ่ได้รับการกำหนดไว้แล้ว [..] เราตัดสินใจว่าเป้าหมายระยะยาวที่เหมาะสมสำหรับ Mojo คือการจัดหาซูเปอร์เซ็ตของ Python (กล่าวคือ เข้ากันได้กับโปรแกรมที่มีอยู่) และยอมรับ CPython ในทันทีเพื่อเปิดใช้งานระบบนิเวศในระยะยาว สำหรับโปรแกรมเมอร์ Python เราคาดหวังและหวังว่า Mojo จะคุ้นเคยในทันที ในขณะเดียวกันก็มีเครื่องมือใหม่สำหรับการพัฒนาโค้ดระดับระบบที่ช่วยให้คุณทำสิ่งต่างๆ ที่ Python ต้องใช้ C และ C++ แทน
  203. สเปนเซอร์, ไมเคิล (4 พฤษภาคม 2023). "ภาษาโปรแกรม Mojo คืออะไร?" . datasciencelearningcenter.substack.com . เก็บถาวรจากต้นฉบับเมื่อ 5 พฤษภาคม 2023 . เรียกดูเมื่อ5 พฤษภาคม 2023 .
  204. "GDScript" . gdscript.com . สืบค้นเมื่อ 24 พฤศจิกายน 2025 .

แหล่งที่มา

  • "Python สำหรับปัญญาประดิษฐ์" . Python Wiki. 19 กรกฎาคม 2012. เก็บถาวรจากต้นฉบับเมื่อ 1 พฤศจิกายน 2012. เรียกดูเมื่อ3 ธันวาคม 2012 .
  • Paine, Jocelyn, บรรณาธิการ (สิงหาคม 2005). "AI ใน Python" . จดหมายข่าวผู้เชี่ยวชาญด้าน AI . Amzi!. เก็บถาวรจากต้นฉบับเมื่อวันที่ 26 มีนาคม 2012 . สืบค้นเมื่อ11 กุมภาพันธ์ 2012 .
  • "PyAIML 0.8.5: ดัชนีแพ็กเกจ Python" . Pypi.python.org . สืบค้นเมื่อ 17 กรกฎาคม 2013 .
  • Russell, Stuart J. & Norvig, Peter (2009). ปัญญาประดิษฐ์: แนวทางสมัยใหม่ (  ฉบับที่ 3). Upper Saddle River, NJ: Prentice Hall. ISBN 978-0-13-604259-4.

อ่านเพิ่มเติม

  • ดาวนีย์, อัลเลน (กรกฎาคม 2024). คิดแบบ Python: วิธีคิดแบบนักวิทยาศาสตร์คอมพิวเตอร์ (  ฉบับที่ 3). O'Reilly Media. ISBN 978-1-0981-5543-8.
  • Lutz, Mark (2013). การเรียนรู้ Python (  ฉบับที่ 5). O'Reilly Media. ISBN 978-0-596-15806-4.
  • ซัมเมอร์ฟิลด์, มาร์ค (2009). การเขียนโปรแกรมใน Python 3 (  ฉบับที่ 2). แอดดิสัน-เวสลีย์ โปรเฟสชันแนล. ISBN 978-0-321-68056-3.
  • รามาลโญ่, ลูเซียโน (พฤษภาคม 2022) ไพธอน ที่คล่องแคล่วโอ ไรลีย์ มีเดียไอเอสบีเอ็น 978-1-4920-5632-4.
  • เว็บไซต์อย่างเป็นทางการแก้ไขข้อมูลนี้ได้ที่วิกิดาต้า
  • เอกสารประกอบ Python
  • บทเรียน Python
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Python_(programming_language)&oldid=1361791252 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ ไพธอน (ภาษาโปรแกรม)

Pythonเป็น ภาษาโปรแกรม ระดับสูงอเนกประสงค์ที่เน้นความสามารถในการอ่านโค้ด ความเรียบง่าย และความง่ายในการเขียน โค้ดโดยใช้การเยื้องที่สำคัญ ไลบรารีมาตรฐานที่ครอบคลุม ("รวมทุกอย่าง")..

ประวัติศาสตร์

ภาษา Python ถูกคิดค้นขึ้นในช่วงปลายทศวรรษ 1980 [ 11 ] โดย Guido van Rossum ที่ Centrum Wiskunde & Informatica (CWI) ในประเทศเนเธอร์แลนด์ [ 48 ] มัน ถูกออกแบบมาให้เป็นภาษาโปรแกรมที่สืบทอดมาจากภาษา ABC ซึ่งได้รับแรงบันดาลใจจาก SETL [ 49 ] ที่สามารถ...

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

Python เป็น ภาษาโปรแกรมแบบหลายพาราดิก ม์ รองรับการเขียนโปรแกรมเชิงวัตถุและการเขียนโปรแกรมเชิงโครงสร้างอย่างเต็มที่ และคุณสมบัติหลายอย่างยังรองรับการเขียนโปรแกรมเชิงฟังก์ชันและ การเขียนโปรแกรมเชิงแง่มุม รวมถึง เมตาโปรแกรมมิง [ 62 ] และ เมตาออบเจ็กต์ [ 63 ]...

ข้อเสนอการปรับปรุง

ข้อเสนอการปรับปรุง Python [ หมายเหตุ 1 ] เป็นเอกสารการออกแบบสำหรับการให้ข้อมูลแก่ ชุมชน Python หรือข้อเสนอสำหรับคุณสมบัติใหม่ใน Python [ 85 ] PEP มีจุดประสงค์เพื่ออธิบายกระบวนการใหม่ใน Python ให้ ข้อกำหนดการตั้งชื่อ หรือจัดทำเอกสารกระบวนการในภาษา |date=...