2007/Jul/25

CODE
#รับคะแนนจากผู้ใช้
point = int(raw_input("กรุณาใส่คะแนนที่ได้"))
#เลือกเกรด
if(point > 100):
	print "คะแนนมากเกินไป"
elif(point < 0):
	print "คะแนนน้อยเกินไป"
elif(point < 50):
	print "เกรด F\nกรุณาลงเรียนใหม่"
elif(point < 60):
	print "เกรด D"
elif(point < 70):
	print "เกรด C"
elif(point < 80):
	print "เกรด B"
else:
	print "เกรด A\nคุณทำได้ดีมาก"

จากตัวอย่าง เราจะเริ่มจากการรับค่ามาจากผู้ใช้ เก็บลงตัวแปร point จากนั้น จึงนำตัวแปรนั้นไปเช็คเงื่อนไข โดยเริ่มจากการเช็คว่ามากกว่า 100 หรือไม่ ถ้ามากกว่าก็พิมพ์ error ออกมา แล้วก็จะจบโปรแกรม ถ้าไม่ก็จะมาเ็ช็คต่อว่า น้อยกว่า 0 หรือไม่ ถ้าน้อยกว่าก็พิมพ์ error ออกมา แต่ถ้าไม่น้อยกว่า ก็จะ เริ่มจากการเช็คว่าน้อยกว่า 50 หรือไม่ ทำแบบนี้ไปเรื่อย ๆ จนหมด สุดท้าย ก็จะเหลือเพียงเงื่อนไขว่า ไม่น้อยกวา 80 และไม่มากกว่า 100 ก็จะได้เกรด A

2007/Jul/23

ในความเป็นจริง ถ้าโปรแกรมเราไม่สามารถเลือกการทำงานได้ คงจะแปลกไม่น้อย ถ้าโปรแกรมไม่สามารถตัดสินใจได้ เราจะไม่สามารถเลือกการทำงานของมันได้เลย และเราจะไม่สามารถคิดเกรดของนักเรียนโดยใช้คอมพิวเตอร์ได้

วิธีการที่เราจะใช้ตัดสินใจในภาษาไพธอน คือการใช้ if ( ถ้า ) โดยมีหลักการใช้ดังนี้

CODE
if (condition):
	#do something if condition is true

ซึ่งเราสามารถเขียนเป็นภาษาไทยได้แบบนี้

ถ้า (เงื่อนไข):
	#ทำอะไรซักอย่าง ถ้าเงื่อนไขเป็นจริง

เช่น
CODE
if คะแนน > 50:
	print "คุณสอบผ่าน"

เมื่อรัน และตัวแปร คะแนน มีค่ามากกว่า 50 จะพิมพ์คำว่า คุณสอบผ่าน ออกมา แต่ถ้าไม่เกินถึง 50 จะไม่พิมพ์อะไรออกมาเลย


Condition ( เงื่อนไข )
เงื่อนไขก็คือ สิ่งที่จะกำหนดว่าโปรแกรมจะถูกทำหรือไม่ โดยค่าที่กำหนดได้คือ 0 ( false หรือ เท็จ ) และ อื่นๆ ( true หรือ จริง ) โดยมักกำหนดให้ 1 เป็นจริง ซึ่งเราสามารถเปรียบเทียบค่าได้หลายแบบ โดยใช้เครื่องหมาย
- > มากกว่า
- < น้อยกว่า
- >= มากกว่าเท่ากับ
- <= น้อยกว่าเท่ากับ
- == เท่ากัน
- != หรือ <> ไม่เท่ากัน
ซึ่งสามารถดูผลลัพธ์ได้ ดังนี้

CODE
a = 1
b = 0
a > b
a < b
a >= b
a <= b
a >= a
a <= a
a == b
a == a
a != b
a <> b
a != a
a <> b

ดูผลลัพธ์ด้วยตนเอง


เมื่อเข้าใจเรื่องการเปรียบเทียบแล้ว เราจะมาลงลึกเรื่องเงื่อนไขกันต่อ

เงื่อนไข สามารถมีหลายเงื่อนไขซ้อนกันได้ เช่น
if ( condition ):
	if ( condition ):
		...

โดยเราจะแบ่งว่า โค้ดส่วนใดเป็นของ if ใดได้ โดยดูที่การแท็บเช่น
if ( condition1 ):
	#ส่วนนี้ทำงาน ถ้า codition1 เป็นจริงเท่านั้น เพราะเว้นเข้ามาจาก condition1 1 แท็บ
	if ( condition2 ):
		#ส่วนนี้ทำงาน ถ้า condition1 และ condition2 เป็นจริง เพราะเว้นเข้ามาจาก condition2 1 แท็บ
		...

ซึ่งนอกจาก if และ เรายังมี else ซึ่งไว้บอกว่า ถ้าเงื่อนไขไม่จริงให้ทำอะไร และ elif ซึ่งบอกว่า ถ้าเงื่อนไขที่แล้วไม่เป็นจริง ให้ทำอะไร เช่น

CODE
if a > b:
	print "a > b"
elif a < b:
	print "a < b"
else:
	print "a = b"

จากตัวอย่าง ถ้าตัวแปร a มากกว่า b จะพิมพ์ a > b
ถ้าเงื่อนไขแรกไม่จริงก็จะมาเช็คว่า ถ้าตัวแปร a น้อยกว่า b จะพิมพ์a < b
และถ้าทั้งหมด ยังไม่มีเงื่อนไขใดเป็นจริง ให้พิมพ์ a = b ออกมา

จากตัวอย่างจะเห็นได้ว่าเช็คเงื่อนไขสามารถทำได้มากมาย ซึ่งเป็นประโยชน์ให้กับโปรแกรมเมอร์เป็นอย่างมาก

แบบฝึกหัด:

ให้เขียนโปรแกรม ซึ่งจะรับคะแนน (เลขจำนวนเต็ม) เข้ามาในโปรแกรม และเช็คว่าเป็นเกรดใด โดยถ้า คะแนนน้อยกว่า 50 ได้ F 50 - 59 ได้ D 60-69 ได้ C 70-79 ได้ B และ 80-100 ได้ A และถ้าผู้ใช้ใส่เลขที่นอกเหนือจาก 0 - 100 ให้พิมพ์ Error ออกมา

บทถัดไป เฉลยแบบฝึกหัด และ อธิบายโค้ดของแบบฝึกหัด

2007/Jul/22

CODE
text = "String"
print text
เราจะได้ผลลัพธ์ออกมาว่า String และเรายังสามารถต่อสตริง ( ข้อความ )กันได้โดยใช้เครื่องหมาย + เช่น

CODE
print "Py" + "Thon"
จะได้ผลลัพธ์เป็น Python หรือ

CODE
a = "Py"
b = "Thon"
print a+b

จะได้ผลลัพธ์เป็น Python

นอกจากนี้ เรายังใช้ \n และ \t ช่วยในการจัดข้อความได้ด้วย โดย
- \n ใช้ในการขึ้นบรรทัดใหม่
- \t ใช้ในการแท็บไป 1 แท็บ
เช่น

CODE
print "a\n\ta"

ได้ผลลัพธ์ดังนี้
a
	a

ซึ่งเกิดจากการพิมพ์ a ตามด้วย \n ( จึงเป็นการขึ้นบรรทัดใหม่ ) และ \t ( จึงแท็บไป 1 แท็บ ) จากนั้นจึงพิมพ์ a ตัวสุดท้ายออกมา

และเรายังสามารถแปลงค่าจากตัวอักษร ให้เป็นตัวเลขได้ โดยการใช้เมธอด ( จะอธิบายเมธอดในบทถัดๆไป ) ดังนี้

int(ข้อความ) หรือ float(ข้อความ) โดยจะแปลงจากสตริง ให้เป็น int ( จำนวนเต็ม ) หรือ float ( จำนวนทศนิยม )
และเรายังสามารถแปลงจาก int หรือ float เป็น สตริงได้ โดยใช้ str( ตัวเลข )
Note : การแปลงตัวอักษรที่ไม่ใช่ตัวเลข เช่น a เป็นตัวเลข จะทำให้ error
CODE
a = 10
b = 5.0
c = "7"

print a + int(c)
print str(b) + c

ลองดูผลลัพธ์

เรื่องสุดท้าย คือการรับค่าจากผู้ใช้ เช่น เราต้องการให้ผู้ใช้พิมพ์เลขเข้ามา แล้วพิมพ์เลขยกกำลังสองของเลขนั้นออกมา เราจะทำได้โดย

CODE
a = int(raw_input("Please enter number : "))
print a, " power 2 = ",a ** 2
โปรแกรมจะแสดงคำว่า Please enter number : ขึ้นมา และรอให้ผู้ใช้พิมพ์อะไรใส่ลงไป เมื่อเราพิมพ์ใส่ลงไปแล้ว ข้อมูลที่ใส่ไปจะถูกแปลงเป็น int ( ด้วยคำสั่ง int() ) จากนั้นจึงพิมพ์เลขที่ยกกำลังสอง ออกทางหน้าจอ
นอกจาก int แล้ว ยังสามารถใช้ float() หรือ str() ก็ได้ เพื่อให้ได้ผลลัพธ์ตามต้องการ

สำหรับบทถัดไป จะพูดถึงประโยคเงื่อนไข ซึ่งจะทำให้โปรแกรมของเราสามารถเลือกทำงานได้ ( และเป็นสิ่งจำเป็นในการเขียนโปรแกรม )