การโปรแกรมไพทอน
Python คืออะไร
ภาษาไพทอน (Python Language) คือ ภาษาคอมพิวเตอร์ประเภทโอเพนท์ซอร์ท (Open Source Computer Language) สำหรับพัฒนาเว็บเพจแบบไดนามิก เมื่อเครื่องบริการได้รับคำร้องจากผู้ใช้ก็จะส่งให้กับ ตัวแปลภาษา ทำหน้าที่ประมวลผลและส่งข้อมูลกลับไปยังเครื่องของผู้ใช้ที่ร้องขอ ในรูปเอชทีเอ็มแอล ภาพ หรือแฟ้มดิจิทอลอื่นใด ลักษณะของภาษามีรากฐานคำสั่งมาจากภาษาซี เป็นภาษาที่สามารถพัฒนาให้ใช้งานแบบโต้ตอบกับผู้ใช้ได้ จุดที่แตกต่างกับภาษาอื่น คือ การรวบรวมจุดเด่นของแต่ละภาษามารวมเข้าด้วยกัน
ภาษาไพทอน เป็นภาษาโปรแกรมคอมพิวเตอร์แบบอินเทอร์พรีเตอร์ (Interpreter) ที่สร้างโดย กีโด ฟาน รอสซัม (Guido van Rossum) ชาวเนเธอร์แลนด์ ในธันวาคม พ.ศ. 2532 (ค.ศ.1989) ปัจจุบันดูแลโดย มูลนิธิซอฟต์แวร์ไพทอน ซึ่งที่มาของชื่อ Python น่าจะมาจากรายการโทรทัศน์ Monty Python's Flying Circus ที่ทำให้ผู้ใช้รู้สึกสนุกที่ได้ใช้ (fun to use) แต่ผู้สร้างบอกว่าชื่อนี้ไม่ได้มาจากงู แต่โลโก้ของภาษาเป็นรูปงู 2 ตัว
จุดเด่นของไพทอน (Python)
- การเขียนคำสั่งกระชับกว่าภาษาอื่น ที่อ่าน code ได้ง่าย (Readability)
- มี Library ให้เรียกใช้ได้มากมาย
- มีประสิทธิภาพในการประมวลผลเมื่อเปรียบเทียบกับภาษาอื่น
- เป็น OOP และ Functional
- มีระบบตัวแปรเป็นแบบ Dynamic
+ http://raid6.com.au/~onlyjob/posts/arena/

python/ebook
ProgrammingExpert - Python
เทียบเคียงกับภาษาอื่น       ภาษาสำหรับพัฒนาเว็บไซต์มีหลายภาษา เช่น PHP, Perl, Java หรือ Python แล้วภาษา Python ถูกนำมาใช้เป็นเครื่องมือในการสอนนักศึกษาสายคอมพิวเตอร์ ได้อย่างน้อย 3 วิชา คือ 1) การเขียนโปรแกรมเบื้องต้น (Introduction) 2) การเขียนโปรแกรมบนเว็บ (Web-Based Development) และ 3) การเขียนโปรแกรมเชิงวัตถุ (Object-Oriented Programming) แล้วพบว่าสถาบันการศึกษาในไทยหลายแห่งมีความสนใจในภาษา Python เช่น มหิดล และ เกษตรศาสตร์ และ พระจอมเกล้าลาดกระบัง และ มหาวิทยาลัยราชภัฏสงขลา เมื่อดูข้อมูลสถิติความเป็นที่ชื่นชอบ (Popular) ก็ต้องยกให้ Python ร้อยละ 30.3 รองลงมาคือ Java ร้อยละ 22.2 และ C++ เป็นอันดับสามคือร้อยละ 13 ซึ่งสรุปได้ว่า Python เป็นภาษาที่มาแรง ช่วงชิงความเป็นที่ชื่นชอบของนักพัฒนาจนเป็นที่ 1 เมื่อปี 2013 และ 2014
Python บน DOS ranking
+ http://datavirtualizer.com/popularity-vs-productivity-vs-performance/
เริ่มต้นกับ Python
1. ดาวน์โหลดตัวแปลภาษาสำหรับ Windows จาก https://python.org/downloads/
2. เมื่อได้แฟ้ม python-3.4.3.msi ขนาด 23.7 MB แล้วสั่ง run แฟ้มที่ได้
3. กดปุ่ม Next 3 ครั้ง เมื่อติดตั้งเสร็จแล้วก็กด Finish 
4. เปิดโปรแกรม Python 3.4 (command line - 32 bit) ใน Start, Programs, Python 3.4
5. พิมพ์คำสั่ง 9 บรรทัดต่อไปนี้ 
a=5;b=3;
print(a + b);
print(a - b);
print(a * b);
print(a / b);
print(a % b);
print(round(a / b));
print(round((a - 1) / b));
quit();
# ท่านคิดว่าผลลัพธ์จากแต่ละคำสั่งคืออะไร
เกม tetris เขาเขียนกัน 300 กว่าบรรทัดเอง
25 ก.ค.60 มีโอกาสกดถูกใจแฟนเพจ "โปรแกรมเมอร์ไทย Thai programmer"
แล้วพบว่าแอดมินแชร์เกม Tetris ที่มี source code เกม 300 กว่าบรรทัด 
เขียนด้วย python2 โดย Laria Carolin Chabowski
แล้วแชร์ใน github โดย Silvasur ตอนได้ code มาก็จะต้อง run
https://www.facebook.com/programmerthai/
ก็นำมาลอง run ดู พบว่า เล่นได้เลย 
สิ่งที่ต้องทำมีขั้นตอน ดังนี้
1. เปิดเครื่องคอมพิวเตอร์พบว่ามี OS คือ windows 10 home 64 bit 
แล้วสร้างห้องเตรียมเก็บงาน python
ในกรณีนี้ผมสร้างห้อง d:\thaiall.com\python\
2. copy code ของ Laria Carolin Chabowski
มาสร้างแฟ้ม tetris.py ในห้องข้อ 1
https://gist.github.com/silvasur/565419
3. download ตัวแปล python3 จาก python.org
ผมเลือก python-3.6.2-amd64.exe
แล้วก็ install ให้เรียบร้อย
https://www.python.org/downloads/
4. เข้าห้อง C:\Users\ACER\AppData\Local\Programs\Python\Python36\Scripts
แล้วติดตั้ง pygame ซึ่งเป็น library สำหรับเขียนเกม บน python
ด้วย DOS>pip install pygame
5. เกมนี้ เขียนด้วย python2 หากใช้ python3 ต้องแก้ไข 2 จุด
จุดแรก บรรทัดแรก เปลี่่ยนจาก python2 เป็น python3
จุดที่สอง แทนที่ทำว่า xrange ด้วย range ทั้งหมด
6. ใช้ DOS เข้าห้อง d:\thaiall.com\python\
แล้วพิมพ์ DOS>py tetris.py ก็จะเล่นเกมได้เลย
7. เกมนี้มีคนทำเป็นแฟ้ม .exe ไว้ สามารถดาวน์โหลดมาเล่น
โดยไม่ต้องติดตั้งโปรแกรม python หรือ pygame ก็ได้
tetris_py_exefied.zip
การทำให้ python เป็น .exe
ขั้นตอนการ compile .py เป็น .exe ด้วย py2exe มีดังนี้
1. เข้าเว็บไซต์ https://pypi.python.org/pypi/py2exe/
หรือ http://sourceforge.net/project/showfiles.php?group_id=15583
หรือ http://www.py2exe.org/index.cgi/Tutorial
2. สั่งติดตั้ง py2exe ด้วย
DOS>py -3.4 -m pip install py2exe
เลข 3.4 คือ รุ่นของ python ของผมใช้รุ่นนี้ หากท่านใช้รุ่นใหม่กว่า ก็ใช้เลขรุ่นตามที่ลงไว้
3. การสั่ง compile .py เป็น .exe
DOS>py -3.4 -m py2exe.build_exe test.py
---
ขั้นตอนการ compile .py เป็น .exe ด้วย py2exe มีดังนี้
1. อ่านจาก http://www.pyinstaller.org
หรือ https://github.com/pyinstaller/pyinstaller
2. ติดตั้ง pyinstaller
DOS> py -3.6 -m pip install pyinstaller
3. การสร้างตัวติดตั้งจากแฟ้ม .py เป็น .exe
DOS> cd C:\Users\ACER\AppData\Local\Programs\Python\Python36\Scripts
DOS> pyinstaller d:\thaiall.com\python\test.py

App : QPython for Android
เห็นเพื่อน ๆ แชร์เรื่อง Python กันหลายคน กระแสงูใหญ่ตัวนี้ก็มาแรง เมื่อใช้ Smart phone ก็จะสามารถโหลดแอพตัวแปลภาษา Python คือ QPython for Android ซึ่งในแอพมี Editor ในตัวแบบ IDE สามารถ Run แบบ Interpreter ได้ทันทีเมื่อเขียนเสร็จ ผลการทดสอบนำ Code ที่เคยเขียนบน Desktop ไปทดสอบ พบว่า คำสั่ง /(หาร) จะให้ผลต่างกัน เกี่ยวกับเรื่อง Default type หากจะให้ได้ผลหารเป็น Float ต้องทำ Cast ที่ตัวหาร ค่า Default เดิมน่าจะเป็น Integer แต่ใน PC น่าจะมี Default type เป็น Float เพราะไม่ต้องทำ Cast ก็ให้ผล / เป็น Float
+ รวม Code : Pythonic Data Structures and Algorithms
- Array
- Queue
- Stack
- Linked List
- Tree
- Graph
- Search
- Sort
เขียน function เบื้องต้น
def printme(str):
        print("===\n" + str);
        return;
printme("boy");
printme("girl");
printme(str = "child");
การสร้าง function จะขึ้นต้นด้วยคำว่า def
แล้วเปิด function ด้วยเครื่องหมาย :
แล้วปิด function ด้วยคำว่า return
ซึ่งจะต้องประกาศ function ก่อนเรียกใช้
+ http://www.tutorialspoint.com/python/python_functions.htm
การเริ่มต้นกับภาษา python บน DOS กับ Webpage
18 พ.ค.57 ได้ทดสอบแปลภาษา python ใน 2 สภาพแวดล้อม
คือ บน dos ที่ใช้ interpreter รุ่น 3.4 โดยนำมาติดตั้งเอง
และบน web server ในเครื่องบริการของ hypermart.net ใช่รุ่น 2.5 
พบว่าการแสดงคำว่า "สวัสดีชาวโลก" ต้องใช้ syntax แตกต่างกัน
เพราะรุ่น 3 กำหนดให้ใช้ function ทั้งหมด 
เช่น print "x" ก็ต้องเปลี่ยนเป็น print ("x")
ตัวอย่าง script ที่เขียนด้วย Python
1. การใช้บน webserver ที่ติดตั้งรุ่น 2.5
 #!/usr/bin/python
 print "Content-type:text/html\n\n"
 print "Hello, world"
2. การใช้บน DOS ใน windows ที่ติดตั้งรุ่น 3.4
 print ("Hello, world")
+ รวมภาพ : การ config iis ให้ยอมรับ python ผ่าน /cgi-bin
ตัวอย่าง การแสดงผลในเว็บเพจ
hello
#!/usr/bin/python
print ("Content-type:text/html\n\n")
print ("Hello, Python!")
ตัวอย่าง การเขียนบน Smartphone
การใช้คำสั่ง for ทำงานกับตัวเลขใน range เพื่อหาผลรวม
ถ้าสร้างแฟ้ม x.py แล้วสั่งบน DOS> py x.py ก็จะได้ 45
แต่ไม่รับเลข 10 มาอยู่ใน loop
sum=0
for i in range(1,10):
     sum+=i
print(sum)
fruits = ['nut', 'apple',  'orange']
for fruit in fruits:        
     print ('Fruit = ' + fruit)
ตัวอย่าง การสร้างฟังก์ชัน
def f1(n):
 a, b = 0, 1
 while b < n:
  print (b),
  a, b = b, a+b 
f1(20)
# https://docs.python.org/release/1.5.1p1/tut/functions.html
# http://www.tutorialspoint.com/python/python_functions.htm
ตัวอย่าง การติดต่อ mysql
#3.3
import mysql.connector
import sys
conn = mysql.connector.connect(
  host="127.0.0.1",
  user="root",
  passwd="",
  db="mysql")
cursor = conn.cursor()
sql = """select * from user"""
try:
 cursor.execute(sql)
 results = cursor.fetchone()
 print (results[0]) # write 1 field
 results = cursor.fetchone()
 print (results[0]) # write 1 field in next record
 results = cursor.fetchall()
 print (results) # write rest of all recs in next record
 print (results[0]) # write 1 rec 
except mysql.connector.Error as err:
 print (mysql.Error)
sys.exit (1)
print ("unreachable")
# http://dev.mysql.com/doc/connector-python/en/connector-python-example-connecting.html
ตัวอย่าง คลาส (Class) และเมธอด (method)
#py 3.3
class Employee:
   empCount = 0
   def __init__(self, name, salary):
      self.name = name
      self.salary = salary
      Employee.empCount += 1   
   def displayEmployee(self):
      print ("Name : ", self.name,  ", Salary: ", self.salary)
emp1 = Employee("tom", 100)
em = emp1
em.displayEmployee()
emp2 = Employee("boy", 200)
em = emp2
em.displayEmployee()
emp1.displayEmployee()
emp2.displayEmployee()
print ("Total Employee %d" % Employee.empCount)
# http://www.tutorialspoint.com/python/python_classes_objects.htm
หาเลขคู่ด้วย python บน smartphone ราคาประหยัด 28 พ.ค.58 ได้อ่านข้อความใน status ของ ผศ.ดร.ทรงเกียรติ ภาวดี ที่โพสต์สมการ x = i * (1 + i) / 2 สำหรับใช้หาผลรวมจาก 1 ถึง i ว่าไม่ต้องวนลูปแบบเดิม สามารถใช้สมการหาค่าได้เลย เป็นการเลือกใช้อัลกอริทึมที่ถูกต้อง ผมจึงนำแนวคิดนี้มาเปรียบเทียบกับการหาจำนวนเลขคู่ ในเลข 1 ถึง i ว่ามีกี่ตัวด้วย round(i / 2) แล้วเขียนไว้ 3 แบบ คือ การใช้ round การเขียนแบบเดิม และการตรวจสอบเวลาของการประมวลผล หากใช้แบบเดิม โดยทดสอบบน smartphone F-Phone รุ่น F823 ราคา 2900 บาท ซึ่งนักศึกษาก็น่าจะเขียนได้ยามว่าง เช่น รอเรียน นั่งรถเมย์ รออาหาร เป็นต้น
แนะนำเว็บ (Webguide)
+ https://www.python.org/downloads/release/python-340/
+ http://en.wikipedia.org/wiki/Python_%28programming_language%29
+ http://www.tutorialspoint.com/python/ ***
+ http://www.tutorialspoint.com/python/python_basic_syntax.htm
+ http://www.tutorialspoint.com/python/python_basic_operators.htm
+ http://www.tutorialspoint.com/python/python_for_loop.htm 
+ http://www.youtube.com/watch?v=l9LGTzonwQc (3 นาที)
+ https://sites.google.com/site/dotpython/
+ http://dev.mysql.com/downloads/connector/python/
+ http://www.hypermart.net/controlpanel/cgiManagement/python.bml?frame=1 (สำหรับสมาชิก)
+ คลิ๊ป : การ config IIS ให้ยอมรับ python ผ่าน /cgi-bin
+ คลิ๊ป : การเขียน Python บน Smartphone

http://goo.gl/72BPC