! คำเตือน การเขียนโค้ดหลาย ๆ โค้ดในบรรทัดเดียวบนภาษา Pythonภาษา Python รองรับการเขียนโค้ดบนบรรทัดเดียว แม้ว่าจะมีหลายคำสั่ง โดยใช้ ; ในการแบ่งคำสั่งเป็นคนละคำสั่ง โดยโค้ดที่นำมาใช้ต้องไม่มีปัญหาเรื่อง indent ครับ print("Hello :)"); a = 0;print("a = 0") if a==0 else 0 ผลลัพธ์ Hello :) a = 0 หรือจะสร้างเป็นฟังก์ชันแล้วดึงมาใช้งาน def main(): ผลลัพธ์ Hello :) a = 0 การตรวจสอบเงื่อนไขด้วย IF ELSE แบบย่อบรรทัดเดียวใน Pythonมีหลักไวยากรณ์ดังนี้
โค้ดต้นฉบับ if a > 7: เมื่อนำมาเขียนใหม่ในบรรทัดเดียว i = 5 if a > 7 else 0 การลูป for แบบย่อบรรทัดเดียวใน Pythonมีหลักไวยากรณ์ดังนี้ [thing for thing in list_of_things] ตัวอย่าง for c in 'word': ผลลัพธ์ w o r d เมื่อนำมาเขียนเป็นคำสั่งลูปในบรรทัดเดียว print([c for c in 'word']) ผลลัพธ์ ['w', 'o', 'r', 'd'] จะเห็นได้ว่า เราสามารถใช้การลูป for แบบย่อบรรทัดเดียวได้ โดยชนิดของข้อมูลจากการลูปจะเป็นข้อมูลชนิด list การลูปตัวเลขด้วย range for x in range(3): ผลลัพธ์ 0 1 2 เมื่อนำมาเขียนเป็นคำสั่งลูปในบรรทัดเดียว print([x for x in range(3)]) ผลลัพธ์ [0, 1, 2] การลูป while แบบย่อบรรทัดเดียวใน Pythonมีหลักไวยากรณ์ดังนี้ while expression: คำสั่ง ตัวอย่าง โค้ดต้นฉบับ while a<0: เมื่อนำมาเขียนบนบรรทัดเดียว while a<0: print("a < 0");a=a+1ตัวอย่างการใช้งาน a=-9 ผลลัพธ์ a < 0 a < 0 a < 0 a < 0 a < 0 a < 0 a < 0 a < 0 a < 0 เรียกใช้คำสั่ง Python บรรทัดเดียวบนคอมมานด์ไลน์ภาษา Python สามารถนำคำสั่งแบบบรรทัดเดียวมาทำงานบนคอมมานด์ไลน์ได้เลย โดยไม่ต้องพิมพ์คำสั่งลงไฟล์หรือ Python IDE ต่าง ๆ python -c "โค้ดคำสั่งภาษา Python" สิ่งที่ควรระวัง คือ เรื่องการใช้เครื่องหมาย "" กับ '' ของโค้ดคำสั่งครับ ผมแนะนำให้ใช้ '' ใน โค้ดคำสั่ง ภายใน python -c "print('Hi')" ครับ ตัวอย่างเช่น python -c "print('Hello :)'); a = 0;print('a = 0') if a==0 else 0" ผลลัพธ์ Hello :) a = 0 ความสนุกยังไม่หมดแค่นี้ เราสามารถนำคำสั่งบรรรทัดเดียวของ Python ไปสร้างโค้ดเล่นกันสนุก ๆ ได้ครับ ดูเพิ่มเติมได้ที่ http://arunrocks.com/python-one-liner-games/ ติดตามบทความต่อไปนะครับ ขอบคุณครับ หากใช้เครื่องหมายคำพูดสามตัวเพื่อใส่สตริง สตริงนั้นจะเป็นสตริงตามที่เป็นอยู่ รวมถึงการขึ้นบรรทัดใหม่ด้วย Show
หากคุณต้องการเยื้องเครื่องหมายอัญประกาศสามตัวยังเป็นช่องว่างในสตริง ดังนั้นหากคุณพยายามเขียนโค้ดและเยื้องให้เรียบร้อยดังที่แสดงด้านล่าง ช่องว่างที่ไม่จำเป็นจะถูกแทรก
โดยการใช้แบ็กสแลชละเว้นบรรทัดใหม่ในโค้ดและทำให้เป็นบรรทัดต่อเนื่อง สามารถเขียนได้ดังนี้ ล้อมรอบแต่ละบรรทัดด้วย ” หรือ “” และเพิ่มอักขระขึ้นบรรทัดใหม่ ← n ที่ท้ายประโยค
ในที่นี้ ไวยากรณ์คือตัวอักษรสตริงที่ต่อเนื่องกันถูกต่อกัน ดูบทความต่อไปนี้สำหรับรายละเอียด
หากคุณต้องการเพิ่มการเยื้องในสตริง ให้เพิ่มช่องว่างให้กับสตริงในแต่ละบรรทัด
นอกจากนี้ เนื่องจากสามารถขึ้นบรรทัดใหม่ได้อย่างอิสระในวงเล็บ จึงสามารถเขียนสิ่งต่อไปนี้โดยใช้วงเล็บแทนแบ็กสแลช
หากคุณต้องการจัดตำแหน่งจุดเริ่มต้นของบรรทัด ให้เพิ่มแบ็กสแลชที่บรรทัดแรกของอัญประกาศสามตัว
เชื่อมรายการสตริงด้วยการขึ้นบรรทัดใหม่วิธีสตริง join() สามารถใช้เพื่อเชื่อมรายการสตริงเป็นสตริงเดียว
เมื่อ join() ถูกเรียกจากอักขระขึ้นบรรทัดใหม่ แต่ละอิลิเมนต์สตริงจะถูกต่อด้วยการขึ้นบรรทัดใหม่
ดังในตัวอย่างข้างต้น สามารถใช้ฟังก์ชัน repr() ในตัวเพื่อตรวจสอบสตริงที่มีโค้ดขึ้นบรรทัดใหม่ตามที่เป็นอยู่
แยกสตริงเป็นบรรทัดใหม่และรายการ:splitlines()วิธีสตริง splitlines() สามารถใช้เพื่อแยกสตริงออกเป็นรายการของการขึ้นบรรทัดใหม่ splitlines() จะแยกรหัสตัวแบ่งบรรทัดใด ๆ ต่อไปนี้ แท็บแนวตั้งและตัวแบ่งหน้ายังถูกแยกออกอีกด้วย
ลบและเปลี่ยนรหัสฟีดบรรทัดด้วยการรวม splitlines() และ join() เป็นไปได้ที่จะลบ (ลบ) รหัสขึ้นบรรทัดใหม่ออกจากสตริงที่มีการขึ้นบรรทัดใหม่หรือแทนที่ด้วยสตริงอื่น ๆ
สามารถเปลี่ยนชุดรหัสฟีดบรรทัดได้ แม้ว่ารหัสตัวแบ่งบรรทัดจะผสมกันหรือไม่รู้จักก็ตาม ก็สามารถแยกรหัสได้โดยใช้ splitlines() แล้วต่อด้วยรหัสตัวแบ่งบรรทัดที่ต้องการ 0ดังที่กล่าวไว้ข้างต้น splitlines() จะแยกโค้ดขึ้นบรรทัดใหม่ ดังนั้นจึงไม่จำเป็นต้องกังวลเกี่ยวกับโค้ดขึ้นบรรทัดใหม่เป็นพิเศษในกรณีของวิธีการรวม splitlines() และ join() หากรหัสขึ้นบรรทัดใหม่ชัดเจน ก็สามารถแทนที่ด้วยวิธีการแทนที่ () ซึ่งจะแทนที่สตริง 1อย่างไรก็ตาม โปรดทราบว่าจะไม่ทำงานหากมีรหัสฟีดบรรทัดที่แตกต่างจากที่คาดไว้ 2เป็นไปได้ที่จะแทนที่รหัสขึ้นบรรทัดใหม่หลายรหัสโดยทำซ้ำแทนที่ () แต่จะไม่ทำงานหากคำสั่งไม่ถูกต้องเนื่องจาก “\r\n” มี “\n” วิธีการรวม splitlines() และ join() ที่อธิบายไว้ข้างต้นนั้นปลอดภัยกว่าเพราะไม่จำเป็นต้องกังวลเกี่ยวกับรหัสฟีดบรรทัด 3ใช้เมธอด rstrip() เพื่อลบโค้ดฟีดบรรทัดที่ท้ายประโยค rstrip() เป็นวิธีการลบอักขระช่องว่าง (รวมถึงการป้อนบรรทัด) ที่ด้านขวาสุดของสตริง 4พิมพ์ออกโดยไม่ต้องขึ้นบรรทัดใหม่ฟังก์ชัน print() จะเพิ่มบรรทัดใหม่ต่อท้ายโดยค่าเริ่มต้น ดังนั้น หากดำเนินการ print() อย่างต่อเนื่อง ผลลัพธ์แต่ละรายการจะแสดงขึ้นในบรรทัดใหม่ 5เนื่องจากค่าดีฟอลต์ของอาร์กิวเมนต์ end of print() ซึ่งระบุสตริงที่จะเพิ่มในตอนท้าย เป็นสัญลักษณ์ขึ้นบรรทัดใหม่ หากคุณไม่ต้องการขึ้นบรรทัดใหม่ต่อท้าย ให้ตั้งค่าอาร์กิวเมนต์ end เป็นสตริงว่าง แล้วเอาต์พุตจะออกโดยไม่มีการขึ้นบรรทัดใหม่ต่อท้าย 6อาร์กิวเมนต์สิ้นสุดสามารถเป็นสตริงใดก็ได้ 7อย่างไรก็ตาม หากคุณต้องการเชื่อมสตริงสำหรับเอาต์พุต การเชื่อมสตริงดั้งเดิมทำได้ง่ายกว่าการระบุในอาร์กิวเมนต์ท้ายของ print() ดูบทความต่อไปนี้ |