3.1
3.1
วิชา การเขียนโปรแกรม Python กลุ่มสาระการเรียนรู้ วิทยาศาสตร์และเทคโนโลยี
เรื่อง เงื่อนไขด้วย if, if else และ elif
โปรแกรมคอมพิวเตอร์มีการทำงานในรูปแบบเรียงลำดับเป็นพื้นฐานสำคัญ แต่ในโปรแกรมที่ซับซ้อนยิ่งขึ้นอาจจะมีการทำงานที่จะต้องมีการตัดสินใจเลือกทางใดทางหนึ่งที่เหมาะสมหรือตรงตามเงื่อนไข หรืออาจจะมีในกรณีที่โปรแกรมมีการทำงานแบบวนซ้ำ เพื่อลดความซ้ำซ้อนของการเขียนคำสั่ง ซึ่งคำสั่งเลือกทำและวนซ้ำถือว่าได้มีส่วนสำคัญและจำเป็นอย่างยิ่งต่อการเขียนโปรแกรมหรือพัฒนาโปรแกรมคอมพิวเตอร์ให้มีประสิทธิภาพ
คำสั่งเลือกทำ
คำสั่งเลือกทำในภาษา Python เราจะพูดถึงการควบคุมการทำงานโปรแกรมด้วยคำสั่ง if, if else และ elif เพื่อให้โปรแกรมสามารถทำงานซับซ้อนและมีประสิทธิภาพมากขึ้น ยกตัวอย่างเช่น เครื่องปรับอากาศจะทำงานอัตโนมัติถ้าหากอุณหภูมิในห้องสูงหรือต่ำเกินไป หรือรถยนต์จะแสดงสัญญาณเตือนหากน้ำมันกำลังใกล้จะหมด เป็นต้น ซึ่งทั้งหมดนี้เกิดจากการกำหนดเงื่อนไขการทำงานให้โปรแกรม
เนื้อหาน่วยที่ 3 คำสั่งเลือกทำและวนซ้ำ
คำสั่งเลือกทำ (if, if else และ elif)
คำสั่งวนซ้ำ (while loop, for loop)
คำสั่ง break
คำสั่ง continue
คำสั่ง if เป็นคำสั่งที่ใช้ควบคุมการทำงานของโปรแกรมที่เป็นพื้นฐานและง่ายที่สุด เราใช้คำสั่ง if เพื่อสร้างเงื่อนไขให้โปรแกรมทำงานตามที่เราต้องการเมื่อเงื่อนไขนั้นตรงกับที่เรากำหนด เช่น การตรวจสอบค่าในตัวแปรกับตัวดำเนินการประเภทต่าง ๆ นี่เป็นรูปแบบของการใช้งานคำสั่ง if ในภาษา Python
if expression :
# statements
เป็นรูปแบบของการใช้งานคำสั่ง if และ expression เป็นเงื่อนไขที่สร้างจากตัวดำเนินการประเภทต่าง ๆ ที่เป็น boolean expression โดยโปรแกรมจะทำงานในบล็อคคำสั่ง if ถ้าหากเงื่อนไขเป็น True ไม่เช่นนั้นโปรแกรมจะข้ามการทำงานไป
# Example01
n = 10
if n == 10:
print('n equal to 10')
logged_in = False
if not logged_in:
print('You must login to continue')
m = 4
if m % 2 == 0 and m > 0:
print('m is even and positive numbers')
if 3 > 10:
print('This block isn\'t executed')
# Output
n equal to 10
You must login to post
m is even and positive numbers
หมายเหตุ เป็นผลลัพธ์การทำงานของโปรแกรม นักเรียนจะเห็นว่าในสามบล็อคแรกของคำสั่ง if นั้นทำงานเพราะว่าเงื่อนไขเป็นจริงหรือ True และในบล็อคสุดท้ายไม่ทำงานเพราะเงื่อนไขไม่เป็นจริงหรือ False
หลังจากที่นักเรียนได้รู้จักกับคำสั่ง if ไปแล้ว อีกคำสั่งหนึ่งที่ทำงานควบคู่กับคำสั่ง if คือคำสั่ง else clause โดยโปรแกรมจะทำงานในคำสั่ง else ถ้าหากเงื่อนไขในคำสั่ง if นั้นไม่เป็นจริง กล่าวอีกนัยหนึ่ง มันจะทำงานเมื่อเงื่อนไขก่อนหน้านั้นไม่เป็นจริงหรือเป็นเงื่อนไข Default มาดูตัวอย่างการใช้งาน if else ในภาษา Python
if expression :
# statements
else :
# statements
เป็นรูปแบบของการใช้งานคำสั่ง if else และ expression เป็นเงื่อนไขที่สร้างจากตัวดำเนินการประเภทต่าง ๆ ที่เป็น boolean expression โดยโปรแกรมจะทำงานในบล็อคคำสั่ง if ถ้าหากเงื่อนไขเป็น True ถ้าเงื่อนไขเป็นเท็จจะทำงานในบล็อคคำสั่ง else แทน
# Example02
n = 5
if n == 10:
print('n equal to 10')
else:
print('n is something else except 10')
name = 'James'
if name == 'Mateo':
print('Hi, Mateo.')
else:
print('Who are you?')
money = 300
if money >= 350:
print('You can buy an iPad')
else:
print('You don\'t have enough money to buy an iPad')
# Output
n is something else except 10
Who are you?
You don't have enough money to buy an iPad
หมายเหตุ นี้เป็นผลลัพธ์การทำงานของโปรแกรม นักเรียนจะเห็นว่าจะทำงานในบล็อคของคำสั่ง else ทั้งหมด เพราะเงื่อนไขไม่เป็นจริงทั้งหมด
คำสั่ง elif นั้นเป็นคำสั่งที่ใช้สำหรับสร้างเงื่อนไขแบบหลายทางเลือกให้กับโปรแกรมที่มีการทำงานเช่นเดียวกับ switch case ในภาษาอื่นๆ คำสั่ง elif นั้นต้องใช้หลังจากคำสั่ง if เสมอและสามารถมี else ได้ในเงื่อนไขสุดท้าย
if expression :
# statements
elif expression :
# statements
else :
# statements
# Example03
print('Welcome to Yoman\'s game')
level = input('Enter level (1 - 4): ')
if level == '1':
print('Easy')
elif level == '2':
print('Medium')
elif level == '3':
print('Hard')
elif level == '4':
print('Expert')
else:
print('Invalid level selected')
# Output
Welcome to Yoman's game
Enter level (1 - 4): 4
Expert
Welcome to Yoman's game
Enter level (1 - 4): 7
Invalid level selected
หมายเหตุ นี่เป็นผลลัพธ์การทำงานของโปรแกรมเมื่อเรากรอก 4 และ 7 ตามลำดับ เมื่อเรากรอก 4 นั้นโปรแกรมตรงกับเงื่อนไขของ elif ที่ level == 4 และเมื่อเรากรอก 7 โปรแกรมไม่ตรงกับเงื่อนไขใดๆ เลยทำให้ทำงานในบล็อคของคำสั่ง else
ถึงเวลาทดลองปฏิบัติเขียนโปรแกรมเพื่อแสดงความเข้าใจสักหน่อย
ข้อที่ 1 จงเขียนโปรแกรมแสดงผลการเรียน โดยการรับคะแนน(0-100) จากแป้นพิมพ์ โดยมีเกณฑ์การแสดงดังนี้
น้อยกว่า 0 แสดง ให้กรอกคะแนน 0 - 100 เท่านั้น
มากกว่า 100 แสดง ให้กรอกคะแนน 0 - 100 เท่านั้น
0 - 49 คะแนน แสดง ไม่ผ่าน
50 - 54 คะแนน แสดง เกรด 1
55 - 59 คะแนน แสดง เกรด 1.5
60 - 64 คะแนน แสดง เกรด 2
65 - 69 คะแนน แสดง เกรด 2.5
70 - 74 คะแนน แสดง เกรด 3
75 - 79 คะแนน แสดง เกรด 3.5
80 - 100 คะแนน แสดง เกรด 4
ผลลัพธ์ที่ควรจะได้
กรุณากรอกชื่อ : โยธิน
กรอกคะแนน (0-100) : -8
คุณ โยธิน "ให้กรอกคะแนน 0-100 เท่านั้น"
กรุณากรอกชื่อ : โยธิน ศิริเอ้ย
กรอกคะแนน (0-100) : 80
คุณ โยธิน ศิริเอ้ย "เกรด 4"
กรุณากรอกชื่อ : มะลิ แก้วมา
กรอกคะแนน (0-100) : 0
คุณ มะลิ แก้วมา "ไม่ผ่าน"
ข้อที่ 2 แก้สมการ Ax^2 + Bx +C = 0 ซึ่งนักเรียนทราบว่าสามารถหาค่าได้จากสูตร
x1 = (-B + sqrt(B * B - 4 * A * C)) / (2 * A) และ x2 = (-B - sqrt(B * B - 4 * A * C)) / (2 * A)
ซึ่งนักเรียนจะสามารถหาค่าได้ นักเรียนจะต้องตรวจสอบเงื่อนแรกก่อน นั้นคือ A ต้องไม่เท่ากับ 0 ซึ่งถ้า A ไม่เท่ากับ 0 แล้ว นักเรียนจึงตรวจสอบต่อไปว่าค่าของผลลัพธ์ภายในรากที่สองต้องไม่ติดลบ ซึ่งถ้าเงื่อนไขทั้งสองนี้เป็นจริง จึงจะสามารถคำนวณหาค่า x ได้
import math
A = int(input("Input A : "))
B = int(input("Input B : "))
C = int(input("Input C : "))
if(A!=0):
if((B*B-4*A*C)>0):
x1 = (-B+math.sqrt(B*B-4*A*C))/(2*A)
x2 = (-B-math.sqrt(B*B-4*A*C))/(2*A)
print(x1)
print(x2)
else:
print("ผลลัพธ์ไม่ใช่จำนวนจริง")
else:
print("หาค่าไมไ่ด้ เนื่องจากตัวหารเป็น 0")
ข้อที่ 3 ข้อความธีออสเป็นการถอดรหัสข้อความที่ประกอบด้วยอักขระ A-Z โดยจะรวมตัวอักขระที่ติดกันให้เป็นจำนวนก่อน เช่น AAAAA สามารถทำเป็นข้อความธีออสได้ว่า 5A หรือ BBCCA สามารถทำเป็นข้อความธีออสได้ว่า 2B2C1A จงเขียนโปรแกรมเพื่อถอดรหัสข้อความออกมาเป็นข้อความธีออส
ข้อมูลเข้า
สายอักขระ ประกอบด้วย A-Z ที่มีความยาว 5 ตัวอักษร
ข้อมูลออก
แสดงข้อความธีออสออกมาดดยพิมพ์ให้ติดกันทั้งหมด
AAAAA -> 5A
ABCCD -> 1A1B2C1D
CDAAA -> 1C1D3A
str1=input()
count=1
str2=''
for i in range(len(str1)):
if i != len(str1)-1:
if str1[i]==str1[i+1]:
count+=1
else:
str2+=str(count)+str1[i]
count=1
elif i == len(str1)-1:
str2+=str(count)+str1[i]
print(str2)