ใครว่าการเขียนโปรแกรมเป็นเรื่องยาก รู้สึกว่าเขียนไม่ได ้ทำไม่เป็นและเป็นท้อ อย่าเพิ่งหมดหวังไป ทุกสิ่งทุกอย่างเกิดจากการเรียนรู้และฝึกฝน คนเราไม่ได้เกิดมาแล้วทำได้ทุกอย่างยกเว้นการร้องไห้ ทันทีที่เกิดมาก็ทำได้ซะงั้น ฮ่าฮ่า
ในวันนี้ขอเสนอการเขียนโปรแกรมด้วย Python ซึ่งมีโครงสร้างคำสั่งที่ไม่ซับซ้อน เข้าใจง่ายเหมือนปลอกกล้วยเข้าปาก ลองดูว่าจริงรึเปล่า เลื่อนเมาส์ลงข้างล่างกันเลย
EP 1 : Variables, Data Type and Expression
Variasble (ตัวแปร) เป็นที่เก็บค่าข้อมูล
หลักการตั้งชื่อตัวแปร
- ประกอบด้วยตัวอักษร ตัวเลข และเครื่องหมายขีดเส้นใต้ (Under score) _ เท่านั้น
- ห้ามขึ้นต้นด้วยตัวเลข
- ตัวอักษรพิมพ์ใหญ่และเล็กไม่เหมือนกัน เช่น one กับ One เป็นตัวแปรคนละตัว
- ห้ามตั้งชื่อตัวแปรเป็น keywords ใน Python
- ไม่ควรตั้งชื่อซ้ำกับชื่อฟังก์ชัน เช่น int, float เป็นต้น
- ชื่อตัวแปรควรสื่อความหายได้ว่าเก็บข้อมูลอะไร เช่น name เก็บชื่อ, area เก็บพื้นที่
keywords in Python
and elif if print
as else import reise
assert except in return
break exec is try
class finally lamle while
continue for not with
def from or yield
del global pass
การให้ค่าตัวแปร
a = b = c = 0.0 ตัวแปร a, b และ c เก็บจำนวนจริง 0.0a = 5; b = 6; a, b = b , a ตัวแปร a กับตัวแปร b สลับค่ากันได้
Data Type (ประเภทข้อมูล) ใน Python มีอยู่ 4 ตัวดังนี้
- int : จำนวนเต็ม ( integer ) เช่น -1, 0, 1 ( 01 ไม่ได้นะ เพราะ Python ไม่อนุญาต ให้ 0 นำหน้า)
- float : จำนวนจริง ( floating point ) เช่น 1.0, 1.23e⁵⁹
- str : ข้อความ ‘Hello, world’ หรือ “Hi, Python”
- bool : ค่าความจริงหรือเท็จ เช่น True, False
ถ้าต้องการทราบประเภทข้อมูลให้ใช้คำสั่ง type()
type(123)
type(12.3)
type("Hello")
ได้ผลลัพธ์ดังนี้
<class 'int'>
<class 'float'>
<class 'str'>
float กับ int
float เก็บทศนิยมได้สูงสุด 16 ตำแหน่ง เลยเป็นค่าประมาณ เช่น
1/10 + 1/10 + 1/10 เท่ากับ 0.3 ไหม?
คำตอบคือไม่เท่า เพราะได้ผลลัพธ์เป็น 0.3000000000000004
int เก็บค่าได้มากมายไม่จำกัด ( ขึ้นอยู่กับ memory ) เช่น
2**1000 ได้ผลลัพธ์เป็น 10715086071862673209484250490600018105614048117055336074437503883703510511249361224931983788156958581275946729175531468251871452856923140435984577574698574803934567774824230985421074605062371141877954182153046474983581941267398767559165543946077062914571196477686542167660429831652624386837205668069376
float เขียนได้หลายแบบ เช่น
0.0
1.
-1.
-1e2 คือ -1 x 10^2
1E-2 คือ 1 x 10^-2
0.1e-3 คือ 0.1 x 10^-3
1e0.5 ไม่ได้นะ เพราะเลขชี้กำลังเป็นได้แค่ int เท่านั้น
Opearator Precedence : ตัวดำเนินการคณิตศาสตร์
การคำนวณ
+ บวก
- ลบ
* คูณ
/ หาร
// หารไม่เอาเศษ
% เศษจากการหาร (Modulo)
** ยกกำลัง
ยกตัวอย่าง
3+7 >> 10
3-7 >> -4
3*7 >> 21
17/7 >> 2.4285714285714284
17//7 >> 2
5%2 >> 1
5**2 >> 25
เราสามารถเขียน i=i+1 แบบย่อได้เป็น i+=1 ตัวดำเนินการอื่นๆ ก็เช่นเดียวกัน
การดำเนินการระหว่างจำนวนเต็มกับจำนวนจริงจะได้ผลเป็นจำนวนจริง เช่น
2 + 1.0 >> 3.0
การหารไม่เอาเศษ // กับจำนวนลบได้ผลดังนี้
1//2 >> 0
-1//2 >> -1 11//10 >> 1
-11//10 >> -2
11//-10 >> -2
ลำดับการการทำงานของเครื่องหมาย
(), **, [*, /, //, %], [+, -]
1 2 3 4
ในเครื่องหมายปีกกา [] มีลำดับการทำงานเท่ากัน ตัวไหนอยู่ซ้ายจะทำก่อน ก็คือเรียงจากซ้ายไปขวา ยกเว้นเลขยกกำลัง ** จะทำจากหลังมาหน้า เพราะ (2³)⁴ จะได้ 2¹²
ดังนั้น 2**3**4 จะได้ 2**12
ถ้า import math จะมีค่าคงตัวและฟังก์ชันทางคณิตศาสตร์ให้ใช้มากมาย
import math
math.pi
math.e
math.sin(x)
math.cos(x)
math.sqrt(x)
math.log(x,b)
โดย x และ b เป็นค่าต่างๆ ที่เราอยากหา
ถ้าต้องการแสดงผลข้อความออกทางจอภาพใช้ฟังก์ชัน print()
1) print(“Hello World”)
2) print(Hello world)
3) print(123)
4) print(1+2+3)
5) print(1,2,3)
6) r=1
7) print(r)
อ๊ะ อะ เดี่ยวก่อน สังเกตเห็นอะไรหรือเปล่า?
จะเห็นได้ว่าเกิด SyntaxError : invalid syntax ในบรรทัดที่สอง
invalid syntax คือ การเขียนโครงสร้างเกิดข้อผิดพลาด ผิดกฎหรือหลักในการเขียน
แล้วมันผิดอย่างไรล่ะ เรามาดูกันดีกว่า
- ตัวอักษรต้องอยู่ใน “ ” ( double quote) หรือ ‘ ’ ( single quote )
- ตัวเลขและตัวแปรที่มีข้อมูลเก็บไว้แล้วไม่ต้องใช้ “ ”, ‘ ’ และสามารถคำนวณตัวเลขได้ ในบรรทัดที่สี่เลยได้ผลลัพธ์เป็น 6
- การใส่ , ( comma ) คั่นระหว่างตัวเลขหรือตัวอักษร คือ การเว้น 1 วรรค
เป็นการอ่านข้อความจากแป้นพิมพ์หนึ่งบรรทัด ตัดช่องว่างซ้ายและขวาออกแล้วเก็บใส่ตัวแปร a
String : ข้อความ
ทำไมคำสั่ง print() ของข้อความสามารถใส่ได้ทั้ง “ ” หรือ ‘ ’ ?
ลองคิดดู ถ้าเราต้องการจะแสดงตัว “ ” หรือ ‘ ’ ออกมา ต้องทำอย่างไรล่ะ?
print("Don't worry, be happy.") >> Don't worry, be happy.
print('He siad "Oh my god."') >> He siad "Oh my god."
ใช้ในกรณีอย่างนี้แหละ แล้วถ้าต้องการแสดง “ ” และ ‘ ’ ในบรรทัดเดียวกันล่ะ ทำอย่างไร?
ใช้ triple quotes ( “”” , ‘’’ ) ได้เลย เช่น
print('''"What's that?", she asked, "It's my toys"''')
ได้ผลลัพธ์เป็น
"No!", she cried, "It's my toys"
เราสามารถนำข้อความมาต่อกันด้วยใช้ + หรือ *
print("ba"+"na"*2)
ลองคิดดูว่าได้ผลลัพธ์อะไรออกมา
นั่นก็คือ banana นั่นเอง แล้วแบบนี้ล่ะ?
print("banana"+2)
print("ba"*"a")
คำตอบคือ error เพราะ string*string และ string+interger ไม่ได้
ได้แค่สองแบบนี้เท่านั้น
string +string
string * int
นึกหลักตามความเป็นจริงเข้าไว้
แล้วถ้าเราอยากให้ข้อความรวมกับตัวเลขได้ ทำอย่างไร?
เราก็เปลี่ยนประเภทของตัวแปรนั้นเลย เช่น
print("banana"+str(2)) >> banana2
เราต้องการให้เปลี่ยนเป็น type อะไรก็เอาข้อความนั้นไปใส่ใน type นั้น ดังนี้
print(float(1)) >> 1.0 (เปลี่ยน int -> float)
print(int(1.0)) >> 1 (เปลี่ยน float -> int)
print(str(2)) >> 2 (เปลี่ยน int-> str)
print(str(1.0)) >> 1.0 (เปลี่ยน float -> str)
print(int("123") >> 123 (เปลี่ยน str -> int)
แต่เปลี่ยน str แบบตัวอักษรไปเป็น int ไม่ได้นะ ฮ่าฮ่า
ใช้คำสั่ง input() ซึ่งผลที่ได้จาก input เป็นสตริง
r = input("Enter your name : ")
ได้ผลลัพธ์เป็น
Enter your name :
เราก็สามารถพิมพ์ชื่อเราลงไปได้เลย ดังนี้
Enter your name : your name
ถ้าเราใส่ตัวเลขลงไปแทนตัวอักษร ดังนี้
Enter your name : 12
ในตัวแปร r จะเก็บ 12 ไว้ ซึ่ง 12 นี้เป็น str ไม่ใช่ int เพราะฉะนั้นจะเอาไปคูณกับ str ไม่ได้ แต่ไปบวกกับ str ได้เลย
Ep1 ก็ขอจบไว้แต่เพียงเท่านี้ ไม่ยากใช่ไหมล่ะ ถ้าใจเราว่าไม่ยาก มันก็ไม่ยากเลย พักดื่มน้ำ ยืดเส้นยืดสาย รอชมโฆษณาสักครู่ แล้วกลับมาเจอกันได้ใน Ep2 เร็วๆนี้ สวัสดีค่ะ :p