Python 101 : Action Control

Action control หมายถึงการควบคุมว่าอะไรจะต้องทำหรือไม่ต้องทำในโปรแกรม การตัดสินใจเกิดขึ้นจากการเทียบค่า (comparison) ระหว่างตัวแปรผ่าน operators ที่แสดงในตาราง
Operatorความหมาย
== มีค่าเท่ากับ
!= มีค่าไม่เท่ากับ
< มีค่าน้อยกว่า
> มีค่ามากกว่า
<= มีค่าน้อยกว่าหรือเท่ากับ
>= มีค่ามากกว่าหรือเท่ากับ

นอกจากนี้ยังมี operator ที่ใช้ในการเชื่อมเงื่อนไขเข้าด้วยกัน
Operatorความหมาย
and both are true
or one or other is true
not not true

การตัดสินใจด้วย if
รูปแบบใน python คือ

if condition :
     do this


condition ก็คือ comparison ระหว่างตัวแปรกับค่าบางค่าที่นำมาทดสอบ ถ้าผลที่ได้เป็น True ก็จะลงมาทำงานในชุดคำสั่ง do this ซึ่งอาจมีหนึ่งหรือหลายชุดคำสั่งก็ได้
เช่น

light = 2
if light < 5 :
     print("The sun is going down")


light = 2
if light < 5 :
     print("The sun is going down.")
     print("You should turn the light on.")


ในกรณีที่ค่าของตัวแปรมีได้เพียงสองค่าคือ True หรือ False นิยมละการเขียน operator เช่น

light = False
if light == False :
     print("The sun is going down")

จะเขียนเป็น

light = False
if not light  :
     print("The sun is going down.")
     print("You should turn the light on.")


เพิ่มทางเลือกด้วย else
รูปแบบใน python คือ

if condition :
     do this
else :
     do this


เช่น

import datetime as d
n = d.datetime.now() # get current time
if n.hour < 12:
     print("Good morning.")
else :
     print("Good afternoon")


หากสองทางเลือกไม่พอ เพิ่มด้วย elif
ในกรณีที่มีทางเลือกมากกว่า 2 ทางเลือกจะใช้ elif มาช่วย เช่น

light = "green"

if light == "green":
     print("Go !")
elif light == "amber": :
     print("slow down !")
else :
     print("stop !")



Python ไม่ใช้ ternary operations !
ในบางภาษามีการใช้ ternary operations เช่น

money = 500
where_to_go = (money > 5000)? "Chiang Mai" : "7-11"



แต่ในภาษา Python จะใช้ if else แทน

money = 500

if money > 5000 :
     where_to_go = "Chiang Mai"
else :
     where_to_go = "7-11"


หลายคนอาจมองว่าเป็นข้อด้อย เพราะต้องเขียน code ยาวขึ้น แต่ถ้ามองในกรณีที่ต้องเขียน comment ประกอบแล้ว การเขียนแบบ Python จะเขียนได้ง่ายกว่า
Previous
Next Post »