บทที่ 8 if ,if....else,if......elif......else
บทที่ 8 if ,if....else,if......elif......else
คำสั่ง if ใน Python ใช้สำหรับการตรวจสอบเงื่อนไขและทำการดำเนินการบางอย่างถ้าเงื่อนไขนั้นเป็นจริง (True) หากเงื่อนไขเป็นเท็จ (False) โปรแกรมจะข้ามการดำเนินการในบล็อกนั้นและดำเนินการต่อไป
>>>download โปรแกรม thonny 4.1.4 <<<
รูปแบบที่ 1
if เงื่อนไข :
# โค้ดที่ต้องการให้ทำเมื่อเงื่อนไขเป็นจริง
ตัวอย่าง
score=50
if score>=50 :
print("P")
รูปแบบที่ 1 ใช้กรณีที่ต้องการทำในเงื่อนไขอย่างเดียว
กรณีที่เป็นจริง ถ้าไม่จริงไม่ดำเนินการ
รูปแบบที่ 2
if เงื่อนไข :
# โค้ดที่ต้องการให้ทำเมื่อเงื่อนไขเป็นจริง
else :
# โค้ดที่ต้องการให้ทำเมื่อเงื่อนไขเป็นเท็จ
ตัวอย่าง score=50
if score>=50 :
print("P")
else :
print("F")
รูปแบบที่ 2 ของการใช้ if-else ในภาษา Python คือการตรวจสอบเงื่อนไขเพียงครั้งเดียว หากเงื่อนไขเป็นจริง (True) โปรแกรมจะดำเนินการโค้ดที่อยู่ภายใต้คำสั่ง if แต่หากเงื่อนไขเป็นเท็จ (False) โปรแกรมจะดำเนินการโค้ดที่อยู่ภายใต้คำสั่ง else
รูปแบบที่ 3
if เงื่อนไข :
# โค้ดที่ต้องการให้ทำเมื่อเงื่อนไขเป็นจริง
elif เงื่อนไข :
# โค้ดที่ต้องการให้ทำเมื่อเงื่อนไขเป็นจริงเงื่อนไขที่ 2
else :
# โค้ดที่ต้องการให้ทำเมื่อเงื่อนไขเป็นเท็จ
ตัวอย่าง score=80
if score>=80 :
print("A")
elif score>=50 :
print("B")
else :
print("F")
รูปแบบที่ 3 ของการใช้ if-else ในภาษา Python คือการตรวจสอบหลายเงื่อนไข โดยใช้คำสั่ง elif (ย่อมาจาก "else if") เพื่อตรวจสอบเงื่อนไขเพิ่มเติม หากเงื่อนไขแรกไม่เป็นจริง (False) โปรแกรมจะตรวจสอบเงื่อนไขถัดไปตามลำดับ และดำเนินการโค้ดที่สอดคล้องกับเงื่อนไขที่เป็นจริง (True) หากไม่มีเงื่อนไขใดเป็นจริง โปรแกรมจะดำเนินการตามโค้ดในส่วนของ else แทน
รูปแบบที่ 4 if ซ้อน if
if เงื่อนไข :
# โค้ดที่ต้องการให้ทำเมื่อเงื่อนไขเป็นจริง
if เงื่อนไข :
# โค้ดที่ต้องการให้ทำเมื่อเงื่อนไขเป็นจริง
else :
# โค้ดที่ต้องการให้ทำเมื่อเงื่อนไขเป็นเท็จ
elif เงื่อนไข :
# โค้ดที่ต้องการให้ทำเมื่อเงื่อนไขที่ 2 เป็นจริง
if เงื่อนไข :
# โค้ดที่ต้องการให้ทำเมื่อเงื่อนไขเป็นจริง
else :
# โค้ดที่ต้องการให้ทำเมื่อเงื่อนไขเป็นเท็จ
else :
# โค้ดที่ต้องการให้ทำเมื่อเงื่อนไขเป็นเท็จ
score = 80
if score > 100:
print("Error score > 100")
elif score > 0:
if score >= 80:
print("A")
elif score >= 50:
print("B")
else:
print("F")
else:
print("Error score < 0")
score = 50
if score >= 50:
print("P")
ในตัวอย่างนี้ ถ้าค่าในตัวแปร score มีค่ามากกว่าหรือเท่ากับ 50 จะพิมพ์ข้อความ "P"
นอกจากคำสั่ง if คุณยังสามารถใช้คำสั่ง else เพื่อจัดการกับกรณีที่เงื่อนไขเป็นเท็จได้:
score = 50
if score >= 50:
print("P")
else:
print("F")
หากต้องการตรวจสอบเงื่อนไขหลายอย่าง คุณสามารถใช้คำสั่ง elif (ย่อมาจาก "else if") ได้:
score = 75
if score >= 90:
print("Grade A")
elif score >= 80:
print("Grade B")
elif score >= 70:
print("Grade C")
else:
print("Grade D")
ในตัวอย่างนี้ โปรแกรมจะตรวจสอบแต่ละเงื่อนไขตามลำดับ ถ้าเงื่อนไขแรกไม่เป็นจริงก็จะตรวจสอบเงื่อนไขถัดไป จนกว่าจะเจอเงื่อนไขที่เป็นจริง หรือถ้าไม่มีเงื่อนไขไหนเป็นจริงก็จะไปทำในบล็อกของ else
คำสั่ง if นั้นเป็นพื้นฐานและสำคัญมากในการเขียนโปรแกรม เพราะช่วยให้คุณสามารถสร้างโปรแกรมที่มีการตัดสินใจตามสถานการณ์ได้อย่างยืดหยุ่น
แบบฝึกหัดชุดที่ 1
ข้อ 1 เขียนโปรแกรมตรวจสอบว่าตัวเลขที่กรอกเป็นเลขคู่หรือเลขคี่ even number / odd number
ข้อ 2 โปรแกรมนี้จะรับค่าตัวเลขจากผู้ใช้ผ่านฟังก์ชัน input() แล้วแปลงเป็นจำนวนเต็ม (int).
ใช้ if เพื่อตรวจสอบว่า
ตัวเลขเป็นบวก (> 0)หากเป็นบวก จะตรวจสอบต่อว่าเป็นเลขคู่หรือเลขคี่ แล้วแสดงผลลัพธ์.
positive even number / positive odd number
หากตัวเลขเป็นลบ (< 0), ตรวจสอบเงื่อนไขว่าตัวเลขเป็นลบ และตรวจสอบต่อว่าเป็นเลขคู่หรือเลขคี่. negative even number / negative odd number
หากตัวเลขไม่ใช่บวกหรือลบ (หมายถึงตัวเลขเป็นศูนย์), จะใช้ else แสดงข้อความว่าตัวเลขเป็นศูนย์
The number is zero
แบบฝึกหัดชุดที่ 2
ข้อ 3
มีตัวแปร t เก็บสตริงอยู่แล้ว โดยที่ t มีตัวอักษรภายใน 5 ตัว a,e,i,o,u จงแสดงจำนวนตัวใน t ที่เป็นสระ (นับทั้งตัวเล็กและตัวใหญ่) เช่น Annie มีสระ 3 ตัว
ข้อ 4
มีตัวแปร text เก็บสตริงอยู่แล้ว อยากทราบว่าใน text มีตัวอักษรที่เป็นสระอะไรบ้าง (เฉพาะตัวเล็ก) เช่น Mission ให้แสดง io,
understand ให้แสดง aeu
(แสดงสระที่มี ตามลำดับตัวอักษร)
ถ้าไม่มีสระเลยให้แสดง No vowels
ข้อ 5
มีตัวแปร month เก็บสตริงอยู่แล้ว ถ้า month เก็บชื่อเดือน ให้แสดง Yes ไม่เช่นนั้นก็แสดง No ชื่อเดือนมีดังนี้ January, February, March, April, May, June, July, August, September, October, November, December
ข้อ 6