
เขียนโปรแกรมภาษา Python ตอนที่ 137 การตรวจสอบเงื่อนไขด้วย If statement
ใน Python เราสามารถเขียนคำสั่งตรวจสอบเงื่อนไขโดยการใช้ If statement เพื่อการตรวจสอบเงื่อนไขบางอย่างว่าเป็นไปตามที่เราต้องการหรือไม่ ก่อนจะดำเนินการใด ๆ โดยการใช้คีย์เวิร์ด if
สำหรับการตรวจสอบเงื่อนไข เราสามารถใช้เครื่องหมายทางคณิตศาสตร์มาใช้ในการตรวจสอบได้ดังนี้
- ตรวจสอบว่าตัวแปร 2 ตัว เท่ากัน หรือไม่ :
x == y
- ตรวจสอบว่าตัวแปร 2 ตัว ไม่เท่ากัน หรือไม่ :
x != y
- ตรวจสอบว่าตัวแปรด้านซ้าย น้อยกว่า ตัวแปรด้านขวา หรือไม่ :
x < y
- ตรวจสอบว่าตัวแปรด้านซ้าย น้อยกว่าหรือเท่ากับ ตัวแปรด้านขวา หรือไม่ :
x <= y
- ตรวจสอบว่าตัวแปรด้านซ้าย มากกว่า ตัวแปรด้านขวา หรือไม่ :
x > y
- ตรวจสอบว่าตัวแปรด้านซ้าย มากกว่าหรือเท่ากับ ตัวแปรด้านขวา หรือไม่ :
a >= b
ตัวอย่างการใช้ If statement
การตรวจสอบเงื่อนไขด้วย If statement เราจะใช้คีย์เวิร์ด if
ในการตรวจสอบ ดังตัวอย่าง
x = 100 y = 150 if x < y: print("x หน้อยกว่า y")
- บรรทัดที่ 3 ใช้คีย์เวิร์ด
if
ตรวจสอบว่า ตัวแปรx
มีค่าน้อยกว่าตัวแปรy
หรือไม่ - บรรทัดที่ 4 ถ้าเงื่อนไขเป็นจริง คือตัวแปร
x
มีค่าน้อยกว่าตัวแปรy
ให้แสดงคำว่า “x หน้อยกว่า y” ออกทางหน้อจอ
ผลลัพธ์
x หน้อยกว่า y
การย่อหน้า
ใน Python จะใช้การย่อหน้า (โดยปกตินิยมใช้วิธีกดปุ่ม Tab บนคีย์บอร์ดเพื่อทำย่อหน้า) สำหรับการกำหนดขอบเขตของโค้ด ไม่เหมือนภาษาอื่น ๆ ที่โดยส่วนใหญ่จะใช้เครื่องหมายวงเล็บปีกกา {}
ในการกำหนดขอบเขตของโค้ด
ถ้าเราใช้ If statement โดยไม่มีย่อหน้า จะเกิด Error ขึ้นมา
x = 100 y = 150 if x < y: print('x หน้อยกว่า y')

จากตัวอย่างจะเห็นว่าเกิด IndentationError เนื่องจากเราใช้ If statement โดยไม่มีการกำหนดย่อหน้า ทำให้ Python ไม่รู้ว่าขอบเขตของโค้ดเริ่มจากตรงไหนและจบตรงไหนนั่นเอง
ดังนั้น เรื่องของย่อหน้าจึงเป็นเรื่องสำคัญที่เราต้องระมัดระวังเป็นพิเศษในการเขียนโปรแกรมภาษา Python
กรณีเงื่อนไขแรกไม่เป็นจริงและมีเงื่อนไขอื่นที่ต้องพิจารณาต่อ
ถ้าเรามีเงื่อนไขอื่น ๆ ที่ต้องพิจารณาต่อจากเงื่อนไขแรก ในกรณีที่เงื่อนไขแรกไม่เป็นจริง สามารถใช้คีย์เวิร์ด elif
เพื่อตรวจสอบเงื่อนไขอื่น ๆ ต่อไปเรื่อย ๆ ได้
x = 100 y = 100 if x < y: print('x หน้อยกว่า y') elif x == y: print("x เท่ากับ y")
- บรรทัดที่ 3 ใช้คีย์เวิร์ด
if
เพื่อตรวจสอบว่าตัวแปรx
มีค่าน้อยกว่าตัวแปรy
หรือไม่ - บรรทัดที่ 4 ถ้าเงื่อนไขเป็นจริงตามบรรทัดที่ 3 ให้แสดงข้อความ “x หน้อยกว่า y”
- บรรทัดที่ 5 ถ้าเงื่อนไขตามบรรทัดที่ 3 ไม่เป็นจริง จะข้ามมาทำงานที่บรรทัดนี้ ใช้คีย์เวิร์ด
elif
ตรวจสอบว่า ตัวแปรx
มีค่าเท่ากับตัวแปรy
หรือไม่ - บรรทัดที่ 6 ถ้าเงื่อนไขเป็นจริงตามบรรทัดที่ 5 ให้แสดงข้อความ “x เท่ากับ y”
จากโค้ด เนื่องจากตัวแปร x
และตัวแปร y
มีค่าเท่ากัน เงื่อนไขแรก (บรรทัดที่ 3) จึงไม่เป็นจริง จึงข้ามมาทำงานที่บรรทัดที่ 5 ต่อ ซึ่งตรวจสอบว่า ตัวแปร x
มีค่าเท่ากับตัวแปร y
หรือไม่ มาถึงตรงนี้เงื่อนไขเป็นจริงแล้ว โปรแกรมจึงทำงานตามเงื่อนไขนี้ คือแสดงข้อความ “x เท่ากับ y”
ผลลัพธ์
x เท่ากับ y
ทั้งนี้ เราสามารถใช้คีย์เวิร์ด elif
เพื่อตรวจสอบเงื่อนไขอื่น ๆ ต่อไปได้เรื่อย ๆ ตราบเท่าที่เงื่อนไขก่อนหน้านี้ยังไม่เป็นจริง ตัวอย่างเช่น โปรแกรมตัดเกรด อาจต้องใช้คีย์เวิร์ด elif
หลายครั้งหน่อย
score = 66 if score >= 80: print('เกรด : 4') elif score >= 75: print('เกรด : 3.5') elif score >= 70: print('เกรด : 3') elif score >= 65: print('เกรด : 2.5') elif score >= 60: print('เกรด : 2')
จากโค้ด โปรแกรมจะทำการตรวจสอบเงื่อนไขไปเรื่อย ๆ จนกว่าจะพบเงื่อนไขที่เป็นจริง
- ถ้าเงื่อนไขในบรรทัดที่ 2 ไม่เป็นจริง ก็จะข้ามไปตรวจสอบเงื่อนไขในบรรทัดที่ 4
- ถ้าเงื่อนไขในบรรทัดที่ 4 ไม่เป็นจริง ก็จะข้ามไปตรวจสอบเงื่อนไขในบรรทัดที่ 6
- ถ้าเงื่อนไขในบรรทัดที่ 6 ไม่เป็นจริง ก็จะข้ามไปตรวจสอบเงื่อนไขในบรรทัดที่ 8
- ถ้าเงื่อนไขในบรรทัดที่ 8 ไม่เป็นจริง ก็จะข้ามไปตรวจสอบเงื่อนไขในบรรทัดที่ 10
ผลลัพธ์ เนื่องจากค่าในตัวแปร score
เท่ากับ 66 ซึ่งตรงกับเงื่อนไขในบรรทัดที่ 8 คือ score
มากกว่าหรือเท่ากับ 65 ดังนั้นจึงได้ผลลัพธ์เป็น
เกรด : 2.5
กรณีไม่มีเงื่อนไขใดเป็นจริง
ในกรณีที่ไม่มีเงื่อนไขใด ๆ เป็นจริงเลย ซึ่งสามารถเกิดขึ้นได้ เราสามารถใช้คีย์เวิร์ด else
เพื่อดำเนินการใด ๆ ตามที่ต้องการ เช่น
score = 44 if score >= 80: print('เกรด : 4') elif score >= 75: print('เกรด : 3.5') elif score >= 70: print('เกรด : 3') elif score >= 65: print('เกรด : 2.5') elif score >= 60: print('เกรด : 2') else: print('เกรด : 0')
- บรรทัดที่ 12-13 ถ้าเงื่อนไขก่อนหน้านี้ไม่มีเงื่อนไขใดเป็นจริงเลย ให้แสดงข้อความ “เกรด : 0”
ผลลัพธ์
เกรด : 0
ถ้ามีเงื่อนไขที่ต้องตรวจสอบเพียงเงื่อนไขเดียว แต่ต้องการดำเนินการบางอย่างถ้าหากเงื่อนไขไม่เป็นจริง เราก็ไม่จำเป็นต้องใช้คีย์เวิร์ด elif
แต่สามารถใช้คีย์เวิร์ด else
ร่วมกับคีย์เวิร์ด if
ได้เลย ดังตัวอย่าง
score = 44 if score >= 65: print('คุณสอบผ่าน') else: print('คุณสอบไม่ผ่าน')
- บรรทัดที่ 2-3 ถ้าได้คะแนนตั้งแต่ 65 ขึ้นไป ให้แสดงข้อความ “คุณสอบผ่าน”
- บรรทัดที่ 4-5 ถ้าเงื่อนไขในบรรทัดที่ 2 ไม่เป็นจริง คือได้คะแนนน้อยกว่า 65 ให้แสดงข้อความ “คุณสอบไม่ผ่าน”
ผลลัพธ์
คุณสอบไม่ผ่าน
Short Hand If
ถ้าหลังจากการตรวจสอบเงื่อนไขแล้ว เรามี statement ที่ต้องดำเนินการเพียงแค่ statement เดียว เราสามารถเขียน statement นั้นไว้ในบรรทัดเดียวกับ If statement ได้เลย โดยจะไม่มี Error ใด ๆ
score = 99 if score >= 65: print('คุณสอบผ่าน')
ผลลัพธ์
คุณสอบผ่าน
Short Hand If … Else
ถ้าหลัง If statement มีคำสั่งที่ต้องดำเนินการเพียง statement เดียว และหลัง Else statement ก็มีคำสั่งที่ต้องดำเนินการเพียง statement เดียวเช่นกัน เราสามารถวางคำสั่งทั้งหมดไว้ในบรรทัดเดียวกันได้เลย โดยมีรูปแบบการใช้งานดังตัวอย่าง
score = 50 print('คุณสอบผ่าน') if score >= 65 else print('คุณสอบไม่ผ่าน')
ผลลัพธ์
คุณสอบไม่ผ่าน
เราสามารถเขียน else statement หลาย ๆ อันไว้ในบรรทัดเดียวกันก็ได้ ตราบใดที่คำสั่งการดำเนินการหลัง else
มีเพียง statement เดียว ดังตัวอย่าง
score = 63 print('เกรด : 4') if score >= 80 else print('เกรด : 3.5') if score >= 75 else print('เกรด : 3') if score >= 70 else print('เกรด : 2.5') if score >= 65 else print('เกรด : 2') if score >= 60 else print("สอบตก")
ผลลัพธ์
เกรด : 2
แต่ถ้ายาวเกินไป แนะนำให้เขียนไว้คนละบรรทัดจะดูง่ายกว่านะครับ
การเขียน If statement ลักษณะนี้เรียกว่า Ternary Operators หรือ Conditional Expressions
การใช้คีย์เวิร์ด and ร่วมกัน If statement
เราสามารถใช้คีย์เวิร์ด and
ร่วมกับคีย์เวิร์ด if
เพื่อทำการตรวจสอบเงื่อนไขหลาย ๆ เงื่อนไข โดยที่ทุก ๆ เงื่อนไขต้องเป็นจริง ดังตัวอย่าง
score = 63 if score is not None and score > 60: print("คุณสอบผ่าน")
- บรรทัดที่ 2 เป็นการตรวจสอบ 2 เงื่อนไข คือ score ต้องไม่เป็น None และต้องมากกว่า 60 ด้วย
จากโค้ดตัวอย่าง ค่าของตัวแปร score คือ 63 ไม่ไช่ค่า None และมากกว่า 60 ด้วย ถือว่าเป็นจริงทั้ง 2 เงื่อนไข จึงได้ผลลัพธ์เป็น
คุณสอบผ่าน
การใช้คีย์เวิร์ด or ร่วมกัน If statement
เราสามารถใช้คีย์เวิร์ด or
ร่วมกับคีย์เวิร์ด if
เพื่อทำการตรวจสอบเงื่อนไขหลาย ๆ เงื่อนไข โดยที่เงื่อนไขใดเงื่อนไขหนึ่งต้องเป็นจริง ดังตัวอย่าง
score = 40 if score is None or score < 60: print("คุณสอบไม่ผ่าน")
- บรรทัดที่ 2 เป็นการตรวจสอบ 2 เงื่อนไข โดยถ้าเงื่อนไขใดเงื่อนไขหนึ่งเป็นจริงก็ถือว่าตรงตามเงื่อนไขที่ต้องการ คือ score เป็น None หรือน้อยกว่า 60 อย่างใดอย่างหนึ่ง
จากโค้ด score ไม่ใช่ None แต่น้อยกว่า 60 ถือว่าเข้าเงื่อนไข จึงไปทำงานที่ statement ภายในเงื่อนไข ทำให้ได้ผลลัพธ์เป็น
คุณสอบไม่ผ่าน
การใช้คีย์เวิร์ด not ร่วมกัน If statement
คีย์เวิร์ด not
ใช้สำหรับกลับค่าของผลลัพธ์ในเงื่อนไขให้เป็นตรงกันข้าม คือ กลับจริงเป็นเท็จ กลับเท็จเป็นจริง
เราสามารถใช้คีย์เวิร์ด not
ร่วมกับ If statement ดังแนวทางต่อไปนี้
fail = False if not fail: print("คุณสอบผ่าน")
- บรรทัดที่ 1 สร้างตัวแปร
fail
ขึ้นมา กำหนดค่าเป็นFalse
- บรรทัดที่ 2 ใช้คีย์เวิร์ด
not
ร่วมกับคีย์เวิร์ดif
ตรวจสอบว่า ถ้าไม่ fail แสดงว่าสอบผ่าน ให้ไปเรียก statement ในบรรทัดที่ 3 มาทำงาน
จากโค้ด ตัวแปร fail
มีค่าเป็น False
เมื่อมีคีย์เวิร์ด not
นำหน้า ก็จะกลับค่าเป็น True
จึงได้ผลลัพธ์เป็น
คุณสอบผ่าน
Nested If หรือ If statement ซ้อนกัน
เราสามารถใช้ If statement ซ้อนกันหลาย ๆ ชั้นได้ ดังแนวทางต่อไปนี้
score = 74 if score > 59: if score >= 80: print('เกรด : 4') elif score >= 75: print('เกรด : 3.5') elif score >= 70: print('เกรด : 3') elif score >= 65: print('เกรด : 2.5') elif score >= 60: print('เกรด : 2') else: print('เกรด : 0')
- บรรทัดที่ 3-12 เป็นการใช้ If statement ซ้อนอยู่ภายใน If statement อื่นอีกที
ผลลัพธ์
เกรด : 3
การใช้ If statement ซ้อนกันหลาย ๆ ชั้น ต้องระวังเรื่องย่อหน้าด้วย เพราะนั่นคือการกำหนดขอบเขตของโค้ด ถ้าย่อหน้าผิดพลาด การทำงานก็ผิดพลาด หรืออาจเกิด Error ขึ้นได้
The pass Statement
If statement ไม่สามารถปล่อยว่างได้ คือเมื่อมีการตรวจสอบเงื่อนไขด้วยคีย์เวิร์ด if
แล้ว ต้องมี statement สำหรับทำงานภายในเงื่อนไขนั้นอย่างน้อย 1 บรรทัด ไม่เช่นนั้นจะเกิด Error
score = None if score is None: #เขียนแบบนี้จะเกิด Error

แต่ถ้าเรายังไม่มีไอเดียว่าถ้าเงื่อนไขนั้นเป็นจริงจะให้ทำอะไร หรือไม่ต้องการให้ทำอะไรเลย เราสามารถเขียน pass
statement ลงไปแทนได้ เพื่อหลีกเลี่ยงข้อผิดพลาด
พูดแบบชาวบ้าน ๆ ก็คือ ให้ผ่านไปก่อนนั่นเอง
ตัวอย่างการใช้ pass
statement
score = None if score is None: pass
จากโค้ด หมายความว่า ถ้า score เป็น None ไม่ต้องทำอะไร และหลีกเลี่ยง Error ได้
เขียนโปรแกรมภาษา Python
- ตอนที่ 1 ทำความรู้จักกับภาษาไพธอน Python
- ตอนที่ 2 เตรียมเครื่องมือ
- ตอนที่ 3 Python Syntax
- ตอนที่ 4 การเขียนคอมเม้นต์
- ตอนที่ 5 การใช้ฟังก์ชัน print
- ตอนที่ 6 ตัวแปร
- ตอนที่ 7 การตั้งชื่อตัวแปร
- ตอนที่ 8 การกำหนดค่าให้ตัวแปรทีละหลายตัว
- ตอนที่ 9การแสดงค่าจากตัวแปร
- ตอนที่ 10 ตัวแปรประเภท Global
- ตอนที่ 11 ชนิดข้อมูล
- ตอนที่ 12 ข้อมูลชนิดตัวเลข
- ตอนที่ 13 การแปลงชนิดข้อมูล
- ตอนที่ 14 ข้อมูลชนิด String
- ตอนที่ 15 slice syntax
- ตอนที่ 16 การเปลี่ยนแปลงข้อมูล String
- ตอนที่ 17 การต่อข้อมูลชนิด String
- ตอนที่ 18 การจัดรูปแบบ String
- ตอนที่ 19 Escape Character
- เตอนที่ 20 เมธอด zfill()
- ตอนที่ 21 เมธอด upper()
- ตอนที่ 22 เมธอด title()
- ตอนที่ 23 เมธอด swapcase()
- ตอนที่ 24 เมธอด strip()
- ตอนที่ 25 เมธอด startswith()
- ตอนที่ 26 เมธอด splitlines()
- ตอนที่ 27 เมธอด split()
- ตอนที่ 28 เมธอด rstrip()
- ตอนที่ 29 เมธอด rsplit()
- ตอนที่ 30 เมธอด rpartition()
- ตอนที่ 31 เมธอด rjust()
- ตอนที่ 32 เมธอด rindex()
- ตอนที่ 33 เมธอด rfind()
- ตอนที่ 34 เมธอด replace()
- ตอนที่ 35 เมธอด partition()
- ตอนที่ 36 เมธอด lstrip()
- ตอนที่ 37 เมธอด lower()
- ตอนที่ 38 เมธอด ljust()
- ตอนที่ 39 เมธอด join()
- ตอนที่ 40 เมธอด isupper()
- ตอนที่ 41 เมธอด istitle()
- ตอนที่ 42 เมธอด isspace()
- ตอนที่ 43 เมธอด isprintable()
- ตอนที่ 44 เมธอด isnumeric()
- ตอนที่ 45 เมธอด islower()
- ตอนที่ 46 เมธอด isidentifier()
- ตอนที่ 47 เมธอด isdigit()
- ตอนที่ 48 เมธอด isdecimal()
- ตอนที่ 49 เมธอด isalpha()
- ตอนที่ 50 เมธอด isalnum()
- ตอนที่ 51 เมธอด index()
- ตอนที่ 52 เมธอด format()
- ตอนที่ 53 เมธอด find()
- ตอนที่ 54 เมธอด expandtabs()
- ตอนที่ 55 เมธอด endswith()
- ตอนที่ 56 เมธอด encode()
- ตอนที่ 57 เมธอด count()
- ตอนที่ 58 เมธอด center()
- ตอนที่ 59 เมธอด casefold()
- ตอนที่ 60 เมธอด capitalize()
- ตอนที่ 61 เมธอด format_map()
- ตอนที่ 62 เมธอด maketrans()
- ตอนที่ 63 เมธอด translate()
- ตอนที่ 64 ข้อมูลชนิด Boolean
- ตอนที่ 65 ตัวดำเนินการ
- ตอนที่ 66 ข้อมูลประเภท List
- ตอนที่ 67 การเข้าถึงสมาชิกใน List
- ตอนที่ 68 การเปลี่ยนแปลงข้อมูลใน List
- ตอนที่ 69 การเพิ่มข้อมูลใน List
- ตอนที่ 70 การลบข้อมูลใน List
- ตอนที่ 71 การเข้าถึงข้อมูลใน List ด้วย loop
- ตอนที่ 72 List Comprehension
- ตอนที่ 73 การเรียงข้อมูลใน List
- ตอนที่ 74 การคัดลอก List
- ตอนที่ 75 การรวม List เข้าด้วยกัน
- ตอนที่ 76 เมธอด append()
- ตอนที่ 77 เมธอด clear()
- ตอนที่ 78 เมธอด copy()
- ตอนที่ 79 เมธอด count()
- ตอนที่ 80 เมธอด extend()
- ตอนที่ 81 เมธอด index()
- ตอนที่ 82 เมธอด insert()
- ตอนที่ 83 เมธอด pop()
- ตอนที่ 84 เมธอด remove()
- ตอนที่ 85 เมธอด reverse()
- ตอนที่ 86 เมธอด sort()
- ตอนที่ 87 ข้อมูลชนิด Tuple
- ตอนที่ 88 การเข้าถึงข้อมูลใน Tuple
- ตอนที่ 89 การแก้ไขข้อมูลใน Tuple
- ตอนที่ 90 การแยกข้อมูลใน Tuple
- ตอนที่ 91 เข้าถึงข้อมูลใน Tuple ด้วยลูป
- ตอนที่ 92 การรวม Tuple เข้าด้วยกัน
- ตอนที่ 93 เมธอด count()
- ตอนที่ 94 เมธอด index()
- ตอนที่ 95 ข้อมูลประเภท Set
- ตอนที่ 96 การเข้าถึงข้อมูลใน Set
- ตอนที่ 97 การเพิ่มข้อมูลใน Set
- ตอนที่ 98 การลบข้อมูลใน Set
- ตอนที่ 99 การเข้าถึงข้อมูลใน Set ด้วยลูป for
- ตอนที่ 100 การจอย Join ข้อมูลใน Set
- ตอนที่ 101 เมธอด add()
- ตอนที่ 102 เมธอด clear()
- ตอนที่ 103 เมธอด copy()
- ตอนที่ 104 เมธอด difference()
- ตอนที่ 105 เมธอด difference_update()
- ตอนที่ 106 เมธอด discard()
- ตอนที่ 107 เมธอด intersection()
- ตอนที่ 108 เมธอด intersection_update()
- ตอนที่ 109 เมธอด isdisjoint()
- ตอนที่ 110 เมธอด issubset()
- ตอนที่ 111 เมธอด issuperset()
- ตอนที่ 112 เมธอด pop()
- ตอนที่ 113 เมธอด remove()
- ตอนที่ 114 เมธอด symmetric_difference()
- ตอนที่ 115 เมธอด symmetric_difference_update()
- ตอนที่ 116 เมธอด union()
- ตอนที่ 117 เมธอด update()
- ตอนที่ 118 ข้อมูลประเภท Dictionary
- ตอนที่ 119 การเข้าถึงข้อมูลใน Dictionary
- ตอนที่ 120 การเปลี่ยนแปลงข้อมูลใน Dictionary
- ตอนที่ 121 การเพิ่มข้อมูลใน Dictionary
- ตอนที่ 122 การลบข้อมูลใน Dictionary
- ตอนที่ 123 การวนลูปเข้าถึงสมาชิกใน Dictionary
- ตอนที่ 124 การคัดลอก Dictionary
- ตอนที่ 125 Dictionary ซ้อนกัน
- ตอนที่ 126 เมธอด clear()
- ตอนที่ 127 เมธอด copy()
- ตอนที่ 128 เมธอด fromkeys()
- ตอนที่ 129 เมธอด get()
- ตอนที่ 130 เมธอด items()
- ตอนที่ 131 เมธอด keys()
- ตอนที่ 132 เมธอด pop()
- ตอนที่ 133 เมธอด popitem()
- ตอนที่ 134 เมธอด setdefault()
- ตอนที่ 135 เมธอด update()
- ตอนที่ 136 เมธอด values()
- ตอนที่ 137 การตรวจสอบเงื่อนไขด้วย If statement
- ตอนที่ 138 การใช้ while loop