หลังจากที่เราได้รู้เกี่ยวกับหลักของ Syntax (ซินเท็ก) หรือ โครงสร้างภาษาไพทอนเบื้องต้นไปแล้ว พาร์ทนี้จะพูดถึงเรื่องของ if else (เงื่อนไข), loop (การวนซํ้า), การรับค่าจากคีย์บอร์ดก่อนจะเข้าบทนี้ถ้ายังไม่ได้อ่านพาร์ทที่ 1 สามารถอ่านได้ >>
ที่นี่<< และสามารถศึกษาแบบเป็นบทเรียนได้>>
ที่นี่<<
สำคัญ: ในภาษาไพทอนจะไม่มีเครื่องหมาย { } เพื่อใช้ครอบ คำสั่งเช่นคำสั่งของ if else, loop จะใช้การ Tab (เเท๊บ) 1 ครั้ง ภายใต้คำสั่งนั้นๆ
If else (อีฟ เอล)
If else (อีฟ เอล) คือการเลือกทำแบบมีเงื่อนไขตามหลักของ ตรรกะ, ค่าการเปรียบเทียบ, จริงเท็จ
สามารถดูเพิ่มเติมได้ >>
ที่นี่<< ในหัวข้อ "ตัวดำเนินการเปรียบเทียบ" และ "ตัวดำเนินการทางตรรกะ"
ตัวอย่างการ if โดยมีโครงสร้างภาษาดังนี้
Code: Select all
if เงื่อนไข: #เงื่อนไขที่หนึ่ง
คำสั่งภายใต้เงื่อนไขที่หนึ่ง
if เงื่อนไข: #เงื่อนไขภายใต้เงื่อนไขที่หนึ่ง
คำสั่งภายใต้เงื่อนไขที่สอง #จะต้องทำการแท๊บจากเงื่อนไขที่สอง 1 ครั้ง
else:
คำสั่งภายใต้เงื่อนไข else #เมื่อไม่เข้าเงื่อนไขที่หนึ่งจะมาทำเงื่อนไข else
ตัวอย่างที่ 1
Code: Select all
budget = 100
price = 200
if budget >= price: #ใช้การเปรียบเทียบมากกว่า
print "คุณสามารถซื้อสินค้าได้" #คำสั่งภายใต้เงื่อนไข if
else: #เมื่อไม่เข้าเงื่อนไข if
print "เงินคุณไม่พอซื้อสินค้า" #คำสั่งภายใต้เงื่อนไข else
ผลลัพธ์
เงินคุณไม่พอซื้อสินค้า
หมายเหตุ: การ if ไม่จำเป็นต้องมี else ก็ได้
ถ้าหากมีเงื่อนไขมากกว่าหนึ่งเงื่อนไข จะต้องมีการใช้ else if โดยมีโครงสร้างภาษาดังนี้
Code: Select all
if เงื่อนไข:
คำสั่งภายใต้เงื่อนไข
elif เงื่อนไข:
คำสั่งภายใต้เงื่อนไข
else:
คำสั่งภายใต้เงื่อนไข
เทคนิค: ควรใช้ elif ในกรณีที่ต้องการเปรียบเทียบชุดเดียวกัน ไม่สมควรขึ้น if ใหม่จะทำให้ตอนมาแก้ไขโค้ดในภายหลังเกิดความสับสนได้
ตัวอย่างที่ 1
Code: Select all
score = 91
if score > 60:
print "คุณสอบผ่าน"
elif score > 60:
print "คุณเก่งมาก"
else:
print "คุณสอบตก"
ผลลัพธ์
คุณสอบผ่าน
อธิบาย: ในการตรวจสอบเงื่อนไข เมื่อเข้าเงื่อนไขใดๆก่อนจะสิ้นสุดชุดเงื่อนไขนั้นๆ
ตัวอย่างที่ 2 การทำ if else อย่างถูกต้อง
Code: Select all
score = 91
if score > 90:
print "คุณเก่งมาก"
elif score > 60:
print "คุณสอบผ่าน"
else:
print "คุณสอบตก"
ผลลัพธ์
คุณเก่งมาก
Loop (ลูป)
การ loop (ลูป) เป็นการวนซํ้าจนกว่าจะเป็นการสิ้นสุดเงื่อนไขการวนซํ้า
while เป็นหนึ่งในคำสั่งการวนซํ้าประเภทนึงในภาษาไพทอน โดยจะทำการคิดเงื่อนไขก่อนวนซํ้า หากเงื่อนไขเป็น เท็จ จะเป็นการสิ้นสุดคำสั่ง การกำหนดเงื่อนไขใน while สามารถใช้หลักการของ if else มากำหนดเงื่อนไขได้
ตัวอย่าง
Code: Select all
count = 1
while count <= 5:
print "จำนวนที่ ", count
count = count + 1 #เพิ่มค่าตัวแปร +1 ในกับตัวแปร count ทุกๆ การวนซํา
print "สิ้นสุด while" #เมื่อสิ้นสุดการวนรอบของ while จำทำการแสดงข้อความ
ผลลัพธ์
จำนวนที่ 1
จำนวนที่ 2
จำนวนที่ 3
จำนวนที่ 4
จำนวนที่ 5
สิ้นสุด while
หมายเหตุ: เมื่อเงื่อนไขมีค่าเป็นจริงอยู่ตลอดจะเป็นการ infinity loop (การวนซํ้าแบบไม่สิ้นสุด) เช่น
Code: Select all
num = 1
while num == 1:
print "infinity loop"
หรือ
ตัวอย่างการใช้ if else รวมกัน while
Code: Select all
n1 = 1
while n1 <= 20:
if(n1%2) == 0: #ใช้การ mod เพื่อหาเลขคู่
print n1,"เป็นเลขคู่"
else:
print n1,"เป็นเลขคี่"
n1 = n1+1
ผลลัพธ์
1 เป็นเลขคี่
2 เป็นเลขคู่
3 เป็นเลขคี่
4 เป็นเลขคู่
5 เป็นเลขคี่
6 เป็นเลขคู่
7 เป็นเลขคี่
8 เป็นเลขคู่
9 เป็นเลขคี่
10 เป็นเลขคู่
for loop เป็นการวนซํ้าโดยใช้ค่าอื่น หากวนจนครบค่าที่กำหนดไว้แล้วจะสิ้นสุดการวนซํ้า เช่น ตัวแปรประเภทลิส หาก หากวนซํ้าจนครบแล้วจะสิ้นสุดการวนซํ้า
ตัวอย่าง
Code: Select all
band = ['apple','samsung','asus','google']
for index in range(len(band)): #ใช้คำสั่ง len() เพื่อนหาจำนวนของ band ใช้ range เพื่อใช้ค่าจาก len ทำตำแน่งของ index
print "Band is: ",band[index]
ผลลัพธ์
Band is: apple
Band is: samsung
Band is: asus
Band is: google
ตัวอย่างการใช้ for เพื่อทำสูตรคูณ
Code: Select all
n1 = 3
for n2 in range(1,12):
result = n*i
print str(n1),"x",str(n2),"=",res
ผลลัพธ์
3 x 1 = 3
3 x 2 = 6
3 x 3 = 9
3 x 4 = 12
3 x 5 = 15
3 x 6 = 18
3 x 7 = 21
3 x 8 = 24
3 x 9 = 27
3 x 10 = 30
3 x 11 = 33
Exceptions Handling (แอ็กเซ็ปชั่น แฮลเดลลิ่ง)
Exceptions Handling (แอ็กเซ็ปชั่น แฮลเดลลิ่ง) เป็นการดักเออเร่อของไพทอน โดยปรกติการเออเร่อจะมีข้อความแจ้งขึ้นมาและทำให้โปรแกรมหยุดทำงาน
ซึ่งถ้าได้ทำการดักเออเร่อไว้ โปรแกรมจะไม่เกิดเออเร่อขึ้นและสามารถทำงานต่อไปได้
ตัวอย่าง โครงสร้าง
Code: Select all
try:
#โค้ดคำสั่ง
except ข้อความผิดพลาด1:
#โค้ดคำสั่ง
except ข้อความผิดพลาด2:
#โค้ดคำสั่ง
else: #เมื่อไม่มีข้อผิดพลาด
#โค้ดคำสั่ง
ตัวอย่างข้อความเออเร่อ

- pyts.png (23.58 KiB) Viewed 4210 times
ข้อความแจ้งข้อผิดพลาดสามารถอ่านได้ >>ที่นี่<<
หมายเหตุ: ไม่จำเป็นต้องใส่ else ก็ได้ แต่อย่างน้อยต้องมีหนึ่ง except: เพื่อรองรับข้อความเออเร่อ ไม่เช่นนั้นจะเกิดการเออเร่อ
ใน Exceptions Handling (แอ็กเซ็ปชั่น แฮลเดลลิ่ง) จะใช้อธิบายร่วมกับการรับค่าจากคีย์บอร์ด
โดยใช้คำสั่ง raw_input() โดยจะเก็บข้อมูลการกดคีย์บอร์ดไว้ที่ตัวแปร
ตัวอย่างโครงสร้าง
Code: Select all
input = raw_input("ข้อความขณะรอการกดคีย์บอร์ด :")
ผลลัพธ์
ข้อความขณะรอการกดคีย์บอร์ด :
เมื่อพิมพ์ข้อความเสร็จแล้วกด enter เพื่อสิ้นสุดการรอรับค่า
ตัวอย่าง
Code: Select all
name = raw_input("คุณชื่ออะไร: ")
print "สวัสดีคุณ ",name
ตัวอย่าง การรับค่าคะแนนเพื่อคำนวนเกรดร่วมกับ Exception Handling โดยต้องนำค่าเฉพาะตัวเลขมาคำนวนเท่านั้น
Code: Select all
score = raw_input("คะแนนสอบคือ: ")
grade = ""
try:
score = int(score) #แปลงค่าจากที่รับจากคีย์บอร์ดมาเป็นค่า int
if type(score) == int: #ตรวจสอบประเภทของตัวแปรว่าเป็น int หรือไม่
if score >= 90:
grade = "A"
elif score >= 80:
grade = "B"
elif score >= 70:
grade = "C"
elif score >= 60:
grade = "D"
else :
grade = "F"
except ValueError: #เมื่อไม่สามารถแปลงค่าเป็น int ได้จะเออเร่อ และมาตกที่ except ValueError
print "ข้อมูลไม่ถูกต้อง"
if(grade != ""):
print "เกรดที่ได้: ",grade
โดยทั้งหมดนี้เป็นเพียงแค่พื้นฐานของภาษาไพทอน โดยสามารถไปศึกษาต่อแบบเป็นบทเรียนได้ >>
ที่นี่<<
สำหรับ ท่านใดได้อ่านจนจบทั้งสองพาร์ทแล้วสามารถทดลองทำแบบฝึกหัดเพื่อทบทวนความรู้ได้ >>
ที่นี่<<
หลังจากที่เราได้รู้เกี่ยวกับหลักของ Syntax (ซินเท็ก) หรือ โครงสร้างภาษาไพทอนเบื้องต้นไปแล้ว พาร์ทนี้จะพูดถึงเรื่องของ if else (เงื่อนไข), loop (การวนซํ้า), การรับค่าจากคีย์บอร์ดก่อนจะเข้าบทนี้ถ้ายังไม่ได้อ่านพาร์ทที่ 1 สามารถอ่านได้ >>[url=https://www.mindphp.com/forums/viewtopic.php?f=144&t=34292]ที่นี่[/url]<< และสามารถศึกษาแบบเป็นบทเรียนได้>>[url=https://www.mindphp.com/%E0%B8%9A%E0%B8%97%E0%B9%80%E0%B8%A3%E0%B8%B5%E0%B8%A2%E0%B8%99%E0%B8%AD%E0%B8%AD%E0%B8%99%E0%B9%84%E0%B8%A5%E0%B8%99%E0%B9%8C/83-python.html]ที่นี่[/url]<<
[b]สำคัญ: [/b]ในภาษาไพทอนจะไม่มีเครื่องหมาย { } เพื่อใช้ครอบ คำสั่งเช่นคำสั่งของ if else, loop จะใช้การ Tab (เเท๊บ) 1 ครั้ง ภายใต้คำสั่งนั้นๆ
[size=150]If else (อีฟ เอล)[/size]
If else (อีฟ เอล) คือการเลือกทำแบบมีเงื่อนไขตามหลักของ ตรรกะ, ค่าการเปรียบเทียบ, จริงเท็จ
สามารถดูเพิ่มเติมได้ >>[url=https://www.mindphp.com/%E0%B8%9A%E0%B8%97%E0%B9%80%E0%B8%A3%E0%B8%B5%E0%B8%A2%E0%B8%99%E0%B8%AD%E0%B8%AD%E0%B8%99%E0%B9%84%E0%B8%A5%E0%B8%99%E0%B9%8C/83-python/2398-python-operator.html]ที่นี่[/url]<< ในหัวข้อ "ตัวดำเนินการเปรียบเทียบ" และ "ตัวดำเนินการทางตรรกะ"
[b]ตัวอย่างการ if โดยมีโครงสร้างภาษาดังนี้[/b]
[code]
if เงื่อนไข: #เงื่อนไขที่หนึ่ง
คำสั่งภายใต้เงื่อนไขที่หนึ่ง
if เงื่อนไข: #เงื่อนไขภายใต้เงื่อนไขที่หนึ่ง
คำสั่งภายใต้เงื่อนไขที่สอง #จะต้องทำการแท๊บจากเงื่อนไขที่สอง 1 ครั้ง
else:
คำสั่งภายใต้เงื่อนไข else #เมื่อไม่เข้าเงื่อนไขที่หนึ่งจะมาทำเงื่อนไข else
[/code]
[b]ตัวอย่างที่ 1[/b]
[code]
budget = 100
price = 200
if budget >= price: #ใช้การเปรียบเทียบมากกว่า
print "คุณสามารถซื้อสินค้าได้" #คำสั่งภายใต้เงื่อนไข if
else: #เมื่อไม่เข้าเงื่อนไข if
print "เงินคุณไม่พอซื้อสินค้า" #คำสั่งภายใต้เงื่อนไข else
[/code]
[b]ผลลัพธ์[/b]
[quote]
เงินคุณไม่พอซื้อสินค้า
[/quote]
[b]หมายเหตุ: [/b] การ if ไม่จำเป็นต้องมี else ก็ได้
ถ้าหากมีเงื่อนไขมากกว่าหนึ่งเงื่อนไข จะต้องมีการใช้ else if โดยมีโครงสร้างภาษาดังนี้
[code]
if เงื่อนไข:
คำสั่งภายใต้เงื่อนไข
elif เงื่อนไข:
คำสั่งภายใต้เงื่อนไข
else:
คำสั่งภายใต้เงื่อนไข
[/code]
[b]เทคนิค: [/b]ควรใช้ elif ในกรณีที่ต้องการเปรียบเทียบชุดเดียวกัน ไม่สมควรขึ้น if ใหม่จะทำให้ตอนมาแก้ไขโค้ดในภายหลังเกิดความสับสนได้
[b]
ตัวอย่างที่ 1[/b]
[code]
score = 91
if score > 60:
print "คุณสอบผ่าน"
elif score > 60:
print "คุณเก่งมาก"
else:
print "คุณสอบตก"
[/code]
[b]ผลลัพธ์[/b]
[quote]คุณสอบผ่าน[/quote]
[b]อธิบาย: [/b] ในการตรวจสอบเงื่อนไข เมื่อเข้าเงื่อนไขใดๆก่อนจะสิ้นสุดชุดเงื่อนไขนั้นๆ
ตัวอย่างที่ 2 การทำ if else อย่างถูกต้อง
[code]
score = 91
if score > 90:
print "คุณเก่งมาก"
elif score > 60:
print "คุณสอบผ่าน"
else:
print "คุณสอบตก"
[/code]
ผลลัพธ์
[quote]
คุณเก่งมาก
[/quote]
[size=150]Loop (ลูป)[/size]
การ loop (ลูป) เป็นการวนซํ้าจนกว่าจะเป็นการสิ้นสุดเงื่อนไขการวนซํ้า
[b]while [/b]เป็นหนึ่งในคำสั่งการวนซํ้าประเภทนึงในภาษาไพทอน โดยจะทำการคิดเงื่อนไขก่อนวนซํ้า หากเงื่อนไขเป็น เท็จ จะเป็นการสิ้นสุดคำสั่ง การกำหนดเงื่อนไขใน while สามารถใช้หลักการของ if else มากำหนดเงื่อนไขได้
[b]ตัวอย่าง[/b]
[code]
count = 1
while count <= 5:
print "จำนวนที่ ", count
count = count + 1 #เพิ่มค่าตัวแปร +1 ในกับตัวแปร count ทุกๆ การวนซํา
print "สิ้นสุด while" #เมื่อสิ้นสุดการวนรอบของ while จำทำการแสดงข้อความ
[/code]
[b]ผลลัพธ์[/b]
[quote]
จำนวนที่ 1
จำนวนที่ 2
จำนวนที่ 3
จำนวนที่ 4
จำนวนที่ 5
สิ้นสุด while
[/quote]
[b]หมายเหตุ: [/b]เมื่อเงื่อนไขมีค่าเป็นจริงอยู่ตลอดจะเป็นการ infinity loop (การวนซํ้าแบบไม่สิ้นสุด) เช่น
[code]
num = 1
while num == 1:
print "infinity loop"
[/code]
หรือ
[code]
while True:
print "infinity loop"
[/code]
ตัวอย่างการใช้ if else รวมกัน while
[code]
n1 = 1
while n1 <= 20:
if(n1%2) == 0: #ใช้การ mod เพื่อหาเลขคู่
print n1,"เป็นเลขคู่"
else:
print n1,"เป็นเลขคี่"
n1 = n1+1
[/code]
[b]ผลลัพธ์[/b]
[quote]
1 เป็นเลขคี่
2 เป็นเลขคู่
3 เป็นเลขคี่
4 เป็นเลขคู่
5 เป็นเลขคี่
6 เป็นเลขคู่
7 เป็นเลขคี่
8 เป็นเลขคู่
9 เป็นเลขคี่
10 เป็นเลขคู่
[/quote]
[b]for[/b] loop เป็นการวนซํ้าโดยใช้ค่าอื่น หากวนจนครบค่าที่กำหนดไว้แล้วจะสิ้นสุดการวนซํ้า เช่น ตัวแปรประเภทลิส หาก หากวนซํ้าจนครบแล้วจะสิ้นสุดการวนซํ้า
[b]ตัวอย่าง[/b]
[code]
band = ['apple','samsung','asus','google']
for index in range(len(band)): #ใช้คำสั่ง len() เพื่อนหาจำนวนของ band ใช้ range เพื่อใช้ค่าจาก len ทำตำแน่งของ index
print "Band is: ",band[index]
[/code]
[b]ผลลัพธ์[/b]
[quote]
Band is: apple
Band is: samsung
Band is: asus
Band is: google
[/quote]
[b]ตัวอย่างการใช้ for เพื่อทำสูตรคูณ[/b]
[code]
n1 = 3
for n2 in range(1,12):
result = n*i
print str(n1),"x",str(n2),"=",res
[/code]
[b]ผลลัพธ์[/b]
[quote]
3 x 1 = 3
3 x 2 = 6
3 x 3 = 9
3 x 4 = 12
3 x 5 = 15
3 x 6 = 18
3 x 7 = 21
3 x 8 = 24
3 x 9 = 27
3 x 10 = 30
3 x 11 = 33
[/quote]
[size=150] Exceptions Handling (แอ็กเซ็ปชั่น แฮลเดลลิ่ง)[/size]
Exceptions Handling (แอ็กเซ็ปชั่น แฮลเดลลิ่ง) เป็นการดักเออเร่อของไพทอน โดยปรกติการเออเร่อจะมีข้อความแจ้งขึ้นมาและทำให้โปรแกรมหยุดทำงาน
ซึ่งถ้าได้ทำการดักเออเร่อไว้ โปรแกรมจะไม่เกิดเออเร่อขึ้นและสามารถทำงานต่อไปได้
[b]ตัวอย่าง โครงสร้าง[/b]
[code]
try:
#โค้ดคำสั่ง
except ข้อความผิดพลาด1:
#โค้ดคำสั่ง
except ข้อความผิดพลาด2:
#โค้ดคำสั่ง
else: #เมื่อไม่มีข้อผิดพลาด
#โค้ดคำสั่ง
[/code]
ตัวอย่างข้อความเออเร่อ
[attachment=0]pyts.png[/attachment]
ข้อความแจ้งข้อผิดพลาดสามารถอ่านได้ >>ที่นี่<<
[b]หมายเหตุ: [/b]ไม่จำเป็นต้องใส่ else ก็ได้ แต่อย่างน้อยต้องมีหนึ่ง except: เพื่อรองรับข้อความเออเร่อ ไม่เช่นนั้นจะเกิดการเออเร่อ
ใน Exceptions Handling (แอ็กเซ็ปชั่น แฮลเดลลิ่ง) จะใช้อธิบายร่วมกับการรับค่าจากคีย์บอร์ด
โดยใช้คำสั่ง raw_input() โดยจะเก็บข้อมูลการกดคีย์บอร์ดไว้ที่ตัวแปร
[b]ตัวอย่างโครงสร้าง[/b]
[code]
input = raw_input("ข้อความขณะรอการกดคีย์บอร์ด :")
[/code]
[b]ผลลัพธ์[/b]
[quote]
ข้อความขณะรอการกดคีย์บอร์ด :
[/quote]
เมื่อพิมพ์ข้อความเสร็จแล้วกด enter เพื่อสิ้นสุดการรอรับค่า
[b]ตัวอย่าง [/b]
[code]
name = raw_input("คุณชื่ออะไร: ")
print "สวัสดีคุณ ",name
[/code]
[b]ตัวอย่าง การรับค่าคะแนนเพื่อคำนวนเกรดร่วมกับ Exception Handling โดยต้องนำค่าเฉพาะตัวเลขมาคำนวนเท่านั้น[/b]
[code]
score = raw_input("คะแนนสอบคือ: ")
grade = ""
try:
score = int(score) #แปลงค่าจากที่รับจากคีย์บอร์ดมาเป็นค่า int
if type(score) == int: #ตรวจสอบประเภทของตัวแปรว่าเป็น int หรือไม่
if score >= 90:
grade = "A"
elif score >= 80:
grade = "B"
elif score >= 70:
grade = "C"
elif score >= 60:
grade = "D"
else :
grade = "F"
except ValueError: #เมื่อไม่สามารถแปลงค่าเป็น int ได้จะเออเร่อ และมาตกที่ except ValueError
print "ข้อมูลไม่ถูกต้อง"
if(grade != ""):
print "เกรดที่ได้: ",grade
[/code]
โดยทั้งหมดนี้เป็นเพียงแค่พื้นฐานของภาษาไพทอน โดยสามารถไปศึกษาต่อแบบเป็นบทเรียนได้ >>[url=https://www.mindphp.com/%E0%B8%9A%E0%B8%97%E0%B9%80%E0%B8%A3%E0%B8%B5%E0%B8%A2%E0%B8%99%E0%B8%AD%E0%B8%AD%E0%B8%99%E0%B9%84%E0%B8%A5%E0%B8%99%E0%B9%8C/83-python.html]ที่นี่[/url]<<
สำหรับ ท่านใดได้อ่านจนจบทั้งสองพาร์ทแล้วสามารถทดลองทำแบบฝึกหัดเพื่อทบทวนความรู้ได้ >>[url=https://www.mindphp.com/forums/viewtopic.php?f=144&t=34317&p=80083#p80083]ที่นี่[/url]<<