31 พฤษภาคม 2558

Published 5/31/2558 by with 0 comment

โค้ดบรรทัดเดียวกับภาษา Python

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

การเขียนโค้ดหลาย ๆ โค้ดในบรรทัดเดียวบนภาษา Python


ภาษา Python รองรับการเขียนโค้ดบนบรรทัดเดียว แม้ว่าจะมีหลายคำสั่ง โดยใช้ ; ในการแบ่งคำสั่งเป็นคนละคำสั่ง โดยโค้ดที่นำมาใช้ต้องไม่มีปัญหาเรื่อง indent ครับ

[python]print("Hello :)"); a = 0;print("a = 0") if a==0 else 0[/python]

ผลลัพธ์
Hello :)
a = 0

หรือจะสร้างเป็นฟังก์ชันแล้วดึงมาใช้งาน

[python]
def main():
print("a = 0") if a==0 else 0
main()
[/python]

ผลลัพธ์
Hello :)
a = 0





การตรวจสอบเงื่อนไขด้วย IF ELSE แบบย่อบรรทัดเดียวใน Python


มีหลักไวยากรณ์ดังนี้

[python]ค่าเมื่อเป็นจริง if เงื่อนไข else ค่าเมื่อเป็นเท็จ[/python]

โค้ดต้นฉบับ

[python]
if a > 7:
i = 5
else:
i = 0
[/python]

เมื่อนำมาเขียนใหม่ในบรรทัดเดียว

[python]i = 5 if a > 7 else 0[/python]





การลูป for แบบย่อบรรทัดเดียวใน Python


มีหลักไวยากรณ์ดังนี้

[python]
[thing for thing in list_of_things]
[/python]

ตัวอย่าง

[python]
for c in 'word':
print(c)
[/python]

ผลลัพธ์
w
o
r
d

เมื่อนำมาเขียนเป็นคำสั่งลูปในบรรทัดเดียว

[python]
print([c for c in 'word'])
[/python]

ผลลัพธ์
['w', 'o', 'r', 'd']

จะเห็นได้ว่า เราสามารถใช้การลูป for แบบย่อบรรทัดเดียวได้ โดยชนิดของข้อมูลจากการลูปจะเป็นข้อมูลชนิด list

การลูปตัวเลขด้วย range

[python]
for x in range(3):
print (x)
[/python]

ผลลัพธ์
0
1
2

เมื่อนำมาเขียนเป็นคำสั่งลูปในบรรทัดเดียว

[python]print([x for x in range(3)])[/python]

ผลลัพธ์
[0, 1, 2]





การลูป while แบบย่อบรรทัดเดียวใน Python


มีหลักไวยากรณ์ดังนี้

[python]while expression: คำสั่ง[/python]

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

[python]
while a<0:
print("a < 0")
a=a+1
[/python]

เมื่อนำมาเขียนบนบรรทัดเดียว

[python]
while a<0: print("a < 0");a=a+1
[/python]

ตัวอย่างการใช้งาน

[python]
a=-9
while a<0: print("a < 0");a=a+1
[/python]

ผลลัพธ์
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/
ติดตามบทความต่อไปนะครับ
ขอบคุณครับ

0 ความคิดเห็น:

แสดงความคิดเห็น

แสดงความคิดเห็นได้ครับ :)