ผลต่างระหว่างรุ่นของ "Python Programming"

จาก Theory Wiki
ไปยังการนำทาง ไปยังการค้นหา
 
(ไม่แสดง 40 รุ่นระหว่างกลางโดยผู้ใช้ 3 คน)
แถว 1: แถว 1:
เอกสารนี้เขียนขึ้นเพื่อให้ความรู้เกี่ยวกับไวยากรณ์และการเขียนโปรแกรม[http://www.python.org/ ภาษาไพทอน]เบื้องต้น ผู้เขียนสมมติว่าผู้อ่านสามารถเขียนโปรแกรมด้วยภาษาเชิงวัตถุอย่าง C++ หรือ Java ได้อยู่แล้ว เอกสารนี้'''ไม่ใช่เอกสารสอนเขียนโปรแกรม'''
+
เอกสารนี้เขียนขึ้นเพื่อให้ความรู้เกี่ยวกับไวยากรณ์และการเขียนโปรแกรม[http://www.python.org/ ภาษาไพทอน]เบื้องต้น ผู้เขียนสมมติว่าผู้อ่านมีพื้นฐานด้านการโปรแกรมเชิงวัตถุเช่นในภาษา C++ หรือ Java ได้อยู่แล้ว เอกสารนี้'''ไม่ใช่เอกสารสอนเขียนโปรแกรม'''
  
หากท่านต้องการอ่านเอกสารนี้ให้ได้อรรถรสมากที่สุด กรุณาใช้ [http://code.google.com/p/crunchy/ Crunchy] คุณสามารถอ่านวิธีการติดตั้งและใช้ Crunchy ได้ที่นี่: [[How to Use Crunchy|การติดตั้งและใช้ Crunchy]]
+
หากท่านต้องการอ่านเอกสารนี้ให้ได้อรรถรสมากที่สุด กรุณาทดลองปฏิบัติตามตัวอย่างผ่านโปรแกรมที่อนุญาตให้ใช้ไพทอนในโหมดโต้ตอบ เช่นไพทอนเชลล์ โปรแกรม Spyder หรือ Jupyter (IPython) Notebook
  
== ติดตั้งภาษาไพทอน ==
+
== สารบัญ ==
คุณสามารถดาวน์โหลดภาษาไพทอนได้จากเวบไซต์อย่างเป็นทางการ http://www.python.org/ ขณะนี้ (15 ตุลาคม 2551) เราแนะนำใหัคุณดาวน์โหลดไพทอนเวอร์ชัน 2.5 เนื่องจาก Crunchy ไม่สามารถใช้ได้กับไพทอนเวอร์ชันต่ำกว่า 2.4 หรือไพทอนเวอร์ชัน 3.0 ขึ้นไปได้ (เราไม่แน่ใจว่ามันใช้กับเวอร์ชัน 2.6 ได้หรือไม่เนื่องจากเรายังไม่ได้ทดสอบ) นอกจากนี้โค้ดไพทอนอื่นๆ ในเอกสารอื่นๆ ในเวบไซต์นี้ล้วนเขียนขึ้นด้วยไพทอนเวอร์ชัน 2.5 ทั้งสิ้น กรุณาดาวน์โหลดโปรแกรมติดตั้งที่เหมาะสมกับระบบปฏิบัติการที่คอมพิวเตอร์คุณใช้อยู่และติดตั้งภาษาไพทอนตามคำแนะำนำของโปรแกรมแล้ว
+
* [[Python Programming/Setting Up Python|Setting Up Python]]
 
+
* [[Python Programming/Python Interpreter|Python Interpreter]]
== ตัวแปรภาษาไพทอน (Python Interpreter) ==
+
* [[Python Programming/Mathematical Expression|Mathematical Expressions]]
ตัวแปรภาษาไพทอนเป็นโปรแกรมที่ติดมากับภาษาไพทอนที่คุณได้ดาวน์โหลดมาเมื่อตะกี้นี้ มันมีหน้าที่สองอย่าง
+
* [[Python Programming/Variables and Assignments|Variables and Assignments]]
 
+
* [[Python Programming/Functions|Functions]]
# อ่านซอร์สโค้ดภาษาไพทอนแล้วแปรความหมายคำสั่งต่างๆ ''หรือ''
+
* [[Python Programming/User-Defined Functions|User-Defined Functions]]
# เป็นโปรแกรมที่อนุญาตให้ผู้ใช้ป้อนคำสั่งหรือนิพจน์ภาษาไพทอน แล้วพิมพ์ผลลัพท์ออกทางหน้าจอ (กล่าวคือเป็น [http://en.wikipedia.org/wiki/REPL read-eval-print loop]) พูดได้อีกอย่างหนึ่งคือมันอนุญาตให้ผู้ใช้เขียนโปรแกรมได้โดยไม่ต้องเซฟเก็บไว้ในไฟล์ก่อน
+
* [[Python Programming/Print Command|Print Command]]
 
+
* [[Python Programming/Strings|Strings]]
เราจะใช้ตัวแปรภาษาไพทอนในรูปแบบ read-eval-print loop การทำความคุ้นเคยกับภาษาในขั้นแรก แล้วจะพูดเรื่องการเขียนซอร์สโค้ดเก็บไว้ในไฟล์ทีำหลัง
+
* [[Python Programming/Boolean Expressions|Boolean Expressions]]
 
+
* [[Python Programming/If Statements|If Statements]]
=== การใช้ตัวแปรภาษาไพทอนเป็น read-eval-print loop ===
+
* [[Python Programming/Tuples|Tuples]]
คุณสามารถเรียกให้ตัวแปรภาษาไพทอนทำงานได้็ด้วยการสั่งคำสั่ง
+
* [[Python Programming/Lists|Lists]]
python
+
* [[Python Programming/Loops|Loops]]
ใน shell ในระบบปฏิบัติการของคุณ ผู้ใช้ระบบปฏิบัติการ Windows อาจจะเจอ shell บ่นว่าไม่มีโปรแกรมชื่อ python ในกรณีให้แก้ไขโดยการสั่ง
+
* [[Python Programming/Dictionaries|Dictionaries]]
set PATH=%PATH%;C:\Python25
+
* [[Python Programming/Objects|Objects]]
หรือการไปแก้ไข Environment ชื่อ Path ใน Control Panel -> System -> Advanced -> Environment Variables ให้มี C:\Python25 รวมอยู่ด้วย (อนึ่ง ไดเรคทอรี C:\Python25 นี้อาจเปลี่ยนไปตามเวอร์ชันของภาษาไพทอนที่คุณลอง กล่าวคือถ้าคุณลงเวอร์ชัน 2.6 ก็ต้องใช้ไดเรคทอรี C:\Python26 แทน นอกจากนี้คุณยังสามารถเลือกลงภาษาไพทอนที่ไดเรคทอรีอื่นๆ ก็ได้ ซึ่งในกรณีนี้คุณจะต้องใช้ไดเรคทอรีที่คุณลงภาษาไพทอนไว้แทน C:\Python25)
+
* [[Python Programming/Classes|Classes]]
 
+
* [[Python Programming/Inheritance|Inheritance]]
เมื่อคุณเรียกตัวแปรภาษาไพทอนให้ทำงานแล้ว คุณจะเห็นหน้าจอคล้ายๆ หน้าจอข้า่งล่างนี้
+
* [[Python Programming/Modules|Modules]]
 
 
<pre>
 
Python 2.5.1 (r251:54863, Apr 18 2007, 08:51:08) [MSC v.1310 32 bit (Intel)] on
 
win32
 
Type "help", "copyright", "credits" or "license" for more information.
 
>>>
 
</pre>
 
 
 
โดยคุณสามารถพิมพ์คำสั่งภาษาไพทอนหนึ่งคำสั่ง แล้วกด ENTER ตัวแปรภาษาไพทอนก็จะนำเอาคำสั่งนั้นไปปฏิบัติ ยกตัวอย่างเช่น
 
 
 
<pre title="interpreter">
 
>>> print "Hello, world!"
 
Hello, world!
 
>>> 1+1
 
2
 
>>> print 2+3
 
5
 
</pre>
 
 
 
=== การใช้ตัวแปรภาษาไพทอนแปลโปรแกรมที่เก็บไว้ในไฟล์ ===
 
เราสามารถเรียกตัวแปรภาษาไพทอนให้แปลโปรแกรมที่เก็บไว้ในไฟล์ได้ด้วยการสั่ง
 
python <<ชื่อไฟล์>>
 
เมื่อ <<ชื่อไฟล์>> คือชื่อไฟล์ที่เก็บโปรแกรมของเราไว้ ปกติแล้วไฟล์ที่เก็บโปรแกรมภาษาไพทอนจะมีนามสกุล .py เช่น hello.py หรือ abc.py เป็นต้น
 
 
 
เพื่อเป็นการสร้างความคุ้นเคยกับภาษา ลองก็อปปี้โค้ดข้างล่างนี้ใส่ไฟล์ชื่อ factorial.py
 
<pre title="editor external">
 
def factorial(n):
 
  if n == 0:
 
    return 1
 
  else:
 
    return n * factorial(n-1)
 
 
 
for n in range(10):
 
  print str(n)+"! =", factorial(n)
 
</pre>
 
แล้วสั่ง
 
python factorial.py
 
ใน shell ซึ่งเมื่อสั่งแล้วโปรแกรมควรจะพิมพ์ค่าของฟังก์ชันแฟกตอเรียลตั้งแต่ 0! ถึง 9! ออกทางหน้าจอดังต่อไปนี้
 
<pre>
 
0! = 1
 
1! = 1
 
2! = 2
 
3! = 6
 
4! = 24
 
5! = 120
 
6! = 720
 
7! = 5040
 
8! = 40320
 
9! = 362880
 
</pre>
 
 
 
== นิพจน์ทางคณิตศาสตร์ ==
 
โดยทั่วไปแล้วนิพจน์ทางคณิตศาสตร์ในภาษาไพทอนจะคล้ายๆ กับภาษา C
 
<pre title="interpreter">
 
>>> 6*7
 
42
 
>>> 10*(30+9) + 8
 
398
 
>>> 10.0*(30+9)+8
 
398.0
 
>>> 3*10000+7564
 
37564
 
>>> 464 / 9
 
51
 
>>> 4649 / 9.0
 
516.55555555555554
 
>>> 4649.0 / 9
 
516.55555555555554
 
>>> 10%3
 
1
 
</pre>
 
นิพจน์ข้างต้นทำให้เราได้ข้อสังเกตดังต่อไปนี้
 
* ภาษาไพทอนมีข้อมูลชนิดตัวเลขอย่างน้อยสองชนิด คือ เลขจำนวนเต็ม (int) และเลขทศนิยม (float) ในทางเทคนิคแล้ว float ของไพทอนมีความละเอียดเท่ากับ double ในภาษา C
 
* มีการทำ [http://en.wikipedia.org/wiki/Type_conversion type coercion] คล้ายภาษา C คือเมื่อนำ int ไปบวกหรือคูณกับ float แล้วก็จะได้ float
 
* เครื่องหมายหาร (/) ของไพทอนคล้ายภาษา C กล่าวคือ ถ้าเราเอา int ไปหาร int เราจะได้ผลหารเป็น int แต่ถ้าเอา int ไปหาร float หรือเอา float ไปหาร int จะได้ผลลัพท์เป็น float
 
 
 
สิ่งที่น่าสังเกตของเครื่องหมาย (/) และเครื่องหมายหารเอาเศษ (%) หารคือ ถ้าตัวหารเป็นบวกแล้ว มันจะพยายามทำให้เศษของการหารจะเป็นบวกด้วยเสมอ
 
<pre title="interpreter">
 
>>> -11/3
 
-4
 
>>> -11%3
 
1
 
</pre>
 
ซึ่งนี่ผิดกับภาษา C ซึ่งเมื่อคำนวณนิพจน์ -11 / 3 จะได้ผลลัพธ์เป็น -3 และเมื่อสั่ง -11 % 3 จะได้ผลเป็น -2 อย่างไรก็ดีถ้าตัวหารเป็นลบ ไพทอนจะมีพฤติกรรมเหมือนกับภาษา C
 
<pre title="interpreter">
 
>>> -11/-3
 
3
 
>>> -11%-3
 
-2
 
</pre>
 
 
 
นอกจากนี้ ไพทอนยังมีเครื่องหมายยกกำลัง (**) ซึ่งมีความสำคัญ (precedence) มากกว่าเครื่องเครื่องหมายคูณ
 
<pre title="interpreter">
 
>>> 4**2
 
16
 
>>> 4.0**2
 
16.0
 
>>> 2**0.5
 
1.4142135623730951
 
>>> 4*3**2
 
36
 
>>> (4*3)**2
 
144
 
</pre>
 
 
 
== ตัวแปรและการกำหนดค่าให้ตัวแปร ==
 
เราสามารถกำหนดค่าให้ตัวแปรได้โดยใช้เครื่องหมายเท่ากับ (=)
 
<pre title="interpreter">
 
>>> x = 20
 
>>> 2*x
 
40
 
>>> y = x+5
 
>>> y
 
25
 
>>> y**2
 
625
 
</pre>
 
สังเกตว่าในภาษาไพทอน เราไม่จำเป็นตัองประกาศชื่อและชนิดของตัวแปรล่วงหน้าเหมือนภาษา C, C++, หรือ Java นอกจากนี้ตัวแปรในภาษาไพธอนจะเก็บข้อมูลชนิดใดก็ได้ และชนิดข้อมูลที่มันเก็บก็สามารถเปลี่ยนไปได้เรื่อยๆ ถ้ามันถูกกำหนดค่าใหม่ เช่น
 
<pre title="interpreter">
 
>>> x = 428
 
>>> x/3
 
142
 
>>> x = x * 1.0
 
>>> x/3
 
142.66666666666666
 
</pre>
 
เราสามารถกำหนดตัวแปรหลายๆ ตัวให้มีค่าเดียวกันได้เหมือนในภาษา C
 
<pre title="interpreter">
 
>>> x = y = z = 0
 
>>> x
 
0
 
>>> y
 
0
 
>>> z
 
0
 
</pre>
 
หรือจะกำหนดค่าให้ตัวแปรทีละหลายๆ ตัวก็ได้
 
<pre title="interpreter">
 
>>> x, y, z = 1, 2, 3
 
>>> x
 
1
 
>>> y
 
2
 
>>> z
 
3
 
</pre>
 
 
 
== คำสั่ง print ==
 
คำสั่ง print มีไว้เพื่อพิมพ์ข้อความและค่าต่างๆ ออกทาง standard output ยกตัวอย่าง เช่น
 
<pre title="interpreter">
 
>>> print 1
 
1
 
>>> print 2+5
 
7
 
>>> print 2.0 / 3
 
0.666666666667
 
>>> x = 65536
 
>>> print x
 
65536
 
</pre>
 
 
 
โดยคำสั่ง print จะทำการเว้นบรรทัดหลังจากพิมพ์ค่าออกไปแล้วให้โดยอัตโนมัติ
 
 
 
คำสั่ง print สามารถรับ argument ได้หลายตัว โดยเราคั่น argument ด้วยเครื่องหมายคอมมา (,) คำสั่ง print จะใส่ช่องว่างระหว่าง argument ที่อยู่ติดกันให้โดยอัตโนมัติ
 
<pre title="interpreter">
 
>>> print 10, 9**3, 0.5*0.1234, 0
 
10 729 0.0617 0
 
>>> x, y, z = 7, 8, 9
 
>>> print x, y, z
 
7 8 9
 
</pre>
 
 
 
== สตริง ==
 
ค่าประเภทสตริงในไพทอนนั้นคล้ายกับค่าประเภทสตริงในภาษา C และภาษา Java ที่ต่างกันคือทั้งเครื่องหมายฟันหนู (") และเครื่องหมายฝนทอง (') สามารถใช้ล้อมสตริืงเหมือนกัน
 
<pre title="interpreter">
 
>>> "THIS IS AN EX-PARROT!!"
 
'THIS IS AN EX-PARROT!!'
 
>>> 'THIS IS AN EX-PARROT!!'
 
'THIS IS AN EX-PARROT!!'
 
</pre>
 
เช่นเดียวกับในภาษา C ถ้าเราต้องการตัวอักษรฟันหนู (") ในสตริงที่ล้อมด้วยตัวอักษรฟันหนู เราจะต้องใช้ตัว escape sequence <tt>\"</tt> แทนตัวอักษรฟันหนู ในทำนองเดียวกัน ถ้าเราต้องการเครื่องฝนทอง (') ในสตริงที่ล้อมด้วยเครื่องหมายฝนทอง เราต้องใช้ escape sequence <tt>\'</tt> แทน
 
<pre title="interpreter">
 
>>> "Mate, this bird wouldn't \"voom\" if you put four million volts through it!"
 
'Mate, this bird wouldn\'t "voom" if you put four million volts through it!'
 
>>> 'Mate, this bird wouldn\'t "voom" if you put four million volts through it!'
 
'Mate, this bird wouldn\'t "voom" if you put four million volts through it!'
 
</pre>
 

รุ่นแก้ไขปัจจุบันเมื่อ 16:57, 3 ตุลาคม 2558

เอกสารนี้เขียนขึ้นเพื่อให้ความรู้เกี่ยวกับไวยากรณ์และการเขียนโปรแกรมภาษาไพทอนเบื้องต้น ผู้เขียนสมมติว่าผู้อ่านมีพื้นฐานด้านการโปรแกรมเชิงวัตถุเช่นในภาษา C++ หรือ Java ได้อยู่แล้ว เอกสารนี้ไม่ใช่เอกสารสอนเขียนโปรแกรม

หากท่านต้องการอ่านเอกสารนี้ให้ได้อรรถรสมากที่สุด กรุณาทดลองปฏิบัติตามตัวอย่างผ่านโปรแกรมที่อนุญาตให้ใช้ไพทอนในโหมดโต้ตอบ เช่นไพทอนเชลล์ โปรแกรม Spyder หรือ Jupyter (IPython) Notebook

สารบัญ