Python Koans เป็นพอร์ตของ "Ruby Koans" ของ Edgecase ซึ่งสามารถพบได้ที่ http://rubykoans.com/
Python Koans เป็นบทช่วยสอนแบบโต้ตอบสำหรับการเรียนรู้ภาษาการเขียนโปรแกรม Python โดยการทดสอบให้ผ่าน
การทดสอบส่วนใหญ่ได้ รับการแก้ไข โดยการเติมส่วนที่ขาดหายไปของฟังก์ชันการยืนยัน เช่น:
self . assertEqual ( __ , 1 + 2 )
ซึ่งสามารถแก้ไขได้โดยการแทนที่ส่วน __ ด้วยโค้ดที่เหมาะสม:
self . assertEqual ( 3 , 1 + 2 )
ในบางครั้งคุณจะพบกับการทดสอบที่ล้มเหลวซึ่งได้กรอกไปแล้ว ในกรณีเหล่านี้ คุณจะต้องติดตั้งโค้ดบางส่วนให้เสร็จสิ้นเพื่อดำเนินการต่อไป ตัวอย่างเช่น มีแบบฝึกหัดในการเขียนโค้ดที่จะบอกคุณว่ารูปสามเหลี่ยมเป็นรูปสามเหลี่ยมด้านเท่า หน้าจั่ว หรือมาตราส่วน
นอกจากจะเป็นวิธีที่ยอดเยี่ยมในการเรียนรู้ Python แล้ว ยังเป็นวิธีที่ดีในการทดลอง Test Driven Development (TDD) อีกด้วย
Python Koans มีอยู่ใน GitHub:
คุณสามารถโคลนด้วย Git หรือดาวน์โหลดซอร์สเป็น zip/gz/bz2
นอกเหนือจากการดาวน์โหลดหรือตรวจสอบ Python Koans เวอร์ชันล่าสุดแล้ว คุณยังต้องติดตั้งล่าม Python ด้วย
ในเวลาเขียนนี้ เรารองรับ Python 3 นโยบายคือพยายามทำให้เป็นเวอร์ชันที่ใช้งานจริงล่าสุดอยู่เสมอ
คุณควรจะสามารถทำงานกับ Python เวอร์ชันใหม่ได้ แต่เวอร์ชันที่เก่ากว่าจะทำให้คุณเกิดปัญหา
คุณสามารถดาวน์โหลด Python ได้จากที่นี่:
หลังจากติดตั้ง Python ตรวจสอบให้แน่ใจว่าโฟลเดอร์ที่มีไฟล์ปฏิบัติการ python อยู่ในเส้นทางของระบบ กล่าวอีกนัยหนึ่ง คุณต้องสามารถเรียกใช้ Python จากคอนโซลคำสั่งได้ มันจะเป็น python3
หรือสำหรับ Windows จะเป็น python.exe
หากคุณมีปัญหา สิ่งนี้อาจช่วยได้:
ผู้ใช้ Windows อาจต้องการอัปเดตบรรทัดในไฟล์แบตช์ run.bat
เพื่อตั้งค่าเส้นทางหลาม:
ตั้งค่า PYTHON_PATH=C:Python39
Jake Hebbert ได้สร้าง screencast สองสามเรื่องที่นี่:
https://www.youtube.com/watch?v=e2WXgXEjbHY&list=PL5Up_u-XkWgNcunP_UrTJG_3EXgbK2BQJ&index=1
หรือหากคุณต้องการอ่าน:
จากเทอร์มินัล * nix หรือพรอมต์คำสั่ง Windows ให้รัน:
.. รหัสบล็อก:: sh
หลาม contemplate_koans.py
หรือ:
python3 contemplate_koans.py
ในกรณีของฉันฉันใช้ Python 3 กับ Windows ดังนั้นฉันจึงเปิด command shell (cmd.exe) และเรียกใช้สิ่งนี้:
เห็นได้ชัดว่าการทดสอบล้มเหลว:
AssertionError: เท็จไม่เป็นความจริง
มันยังบอกฉันอย่างชัดเจนว่าปัญหาอยู่ที่ไหน มันเป็นการยืนยันในบรรทัดที่ 12 ของ .\koans\about_asserts.py
วิธีนี้ง่ายมาก เพียงเปลี่ยน False
เป็น True
เพื่อให้การทดสอบผ่าน
ไม่ช้าก็เร็วคุณอาจพบกับการทดสอบโดยที่คุณไม่แน่ใจว่าค่าที่คาดหวังควรเป็นเท่าใด ตัวอย่างเช่น:
class Dog :
pass
def test_objects_are_objects ( self ):
fido = self . Dog ()
self . assertEqual ( __ , isinstance ( fido , object ))
นี่คือจุดที่ Python Command Line มีประโยชน์ ในกรณีนี้ ฉันสามารถเปิดบรรทัดคำสั่ง สร้างสถานการณ์จำลองขึ้นมาใหม่และเรียกใช้คำสั่งได้:
Sniffer ช่วยให้คุณสามารถทำการทดสอบได้อย่างต่อเนื่อง หากคุณแก้ไขไฟล์ใดๆ ในไดเร็กทอรี koans จะทำการทดสอบอีกครั้ง
หากต้องการตั้งค่านี้ คุณต้องติดตั้ง sniffer:
python3 -m pip install sniffer
คุณควรเรียกใช้หนึ่งในไลบรารีเหล่านี้โดยขึ้นอยู่กับระบบของคุณ การดำเนินการนี้จะทริกเกอร์การดมกลิ่นโดยอัตโนมัติเมื่อไฟล์มีการเปลี่ยนแปลง ไม่เช่นนั้น ดมกลิ่นจะต้องสำรวจเพื่อดูว่าไฟล์มีการเปลี่ยนแปลงหรือไม่
บนลินุกซ์:
python3 -m pip install pyinotify
บนวินโดวส์:
python3 -m pip install pywin32
Also available here:
https://github.com/mhammond/pywin32/releases
บน macOS:
python3 -m pip install MacFSEvents
เมื่อตั้งค่าแล้ว คุณเพียงแค่เรียกใช้:
sniffer
เพียงแก้ไขไฟล์ koans ไฟล์ใดไฟล์หนึ่งแล้วคุณจะเห็นว่าการทดสอบถูกทริกเกอร์โดยอัตโนมัติ Sniffer ถูกควบคุมโดย scent.py
การอ้างถึงคำแนะนำ Ruby Koans:
“ในการพัฒนาที่ขับเคลื่อนด้วยการทดสอบ มนต์มักจะเป็น สีแดง เขียว รีแฟคเตอร์ เขียนการทดสอบที่ล้มเหลวแล้วรันมัน (สีแดง) ทำให้การทดสอบผ่าน (สีเขียว) จากนั้นจึงปรับโครงสร้างใหม่ (นั่นคือดูที่โค้ดและดูว่า คุณสามารถทำให้มันดีขึ้นได้) ในกรณีนี้ คุณจะต้องเรียกใช้ koan และดูว่ามันล้มเหลว (สีแดง) ทำแบบทดสอบให้ผ่าน (สีเขียว) จากนั้นใช้เวลาสักครู่และไตร่ตรองแบบทดสอบเพื่อดูว่ามันสอนอะไรคุณ และปรับปรุงโค้ดเพื่อสื่อสารเจตนาของมันได้ดีขึ้น (รีแฟกเตอร์)"
มีโปรเจ็กต์ Koan ที่ยอดเยี่ยมอื่นๆ อีกมากมายสำหรับภาษาและเฟรมเวิร์กที่หลากหลาย ส่วนใหญ่สามารถพบได้ใน GitHub นอกจากนี้ยังมีกิจกรรม koans เล็กน้อยบน Bitbucket
ยินดีต้อนรับการแปลเสมอ! คุณสามารถเพิ่มหนึ่งรายการใน README นี้ หากคุณบังเอิญได้ทำงานกับสิ่งนี้:
https://github.com/mswell/python_koans_br
ขอขอบคุณ Jim Weirich และ Joe O'Brien สำหรับ Ruby Koans ดั้งเดิมที่มีพื้นฐานมาจาก Python Koans! นอกจากนี้ Ruby Koans ก็ยืมมาจาก Metakoans ดังนั้นขอขอบคุณ Ara Howard ด้วย!
ขอขอบคุณทุกคนที่มีส่วนร่วมใน Python Koans! ฉันได้รับความก้าวหน้าอย่างมากจากการเข้ายึดฐานโค้ดที่ริเริ่มโดย Mikes of FPIP ที่รวมกัน นี่เป็นส่วนเล็กๆ น้อยๆ สำหรับพอดแคสต์ Python ที่ยอดเยี่ยม:
ขอขอบคุณ Mike Pirnat @pirnat และ Kevin Chase @kjc มากๆ ที่ได้เข้ามาเป็นผู้ดูแลร่วมในช่วงเวลาต่างๆ