31 ตุลาคม 2557

Published ตุลาคม 31, 2557 by with 0 comment

เว็บบอร์ด Python เปิดแล้วครับ

ไม่กี่วันก่อนหน้านี้ ผมได้ทำการเปิดบอร์ด Python แล้วครับ ผู้อ่านสามารถเข้าไปโพสต์และแสดงความคิดเห็นได้เลยครับ สามารถ Login โดยใช้ Facebook หรือ Google+ ได้เลยครับ เว็บบอร์ด http://forum.wannaphong.com/
ขอบคุณครับ
Read More
Published ตุลาคม 31, 2557 by with 0 comment

ประมวลผล XML อย่างมีประสิทธิภาพใน Python ด้วยโมดูล lxml

  โมดูล lxml  เป็นโมดูลใน Python โมดูลหนึ่งสำหรับประมวลผล XML อย่างมีประสิทธิภาพ ใช้งานง่ายที่สุดในบรรดาโมดูลสำหรับจัดการ XML ใน Python และเป็น Pythonic ที่รวม libxml2/libxslt กับ ElementTree API ทำให้สนับสนุนทั้ง XPath, RelaxNG, XML Schema, XSLT, C14N และอื่น ๆ อีกมากมาย ใช้ BSD license สนับสนุนทั้ง Python 2 , Python 3
Read More
Published ตุลาคม 31, 2557 by with 2 comments

โมดูลเครือข่าย Network ใน Python

บทความนี้ผมจะพาทุกท่านไปรู้จักกับโมดูลด้านเครือข่าย Network ใน Python ครับ
Read More

29 ตุลาคม 2557

Published ตุลาคม 29, 2557 by with 0 comment

ใช้โปรโตคอล XMPP ใน Python

 XMPP (ย่อมาจาก Extensible Messaging and Presence Protocol) คือ โปรโตคอลหนึ่งที่ใช้ในการสื่อสารข้อมูลแบบคลเอนท์-เซิร์ฟเวอร์ (Client-Server) ทำงานลักษณะการส่งข้อความด่วน โดยสนับสนุนข้อความที่รับส่งเป็นภาษา XML โดยไม่มี server ตัวกลางหรือที่เรียกว่า  decentralized (no central authoritative server)  การที่เราจะนำโปรโตคอล XMPP มาใช้ใน Python
Read More

28 ตุลาคม 2557

Published ตุลาคม 28, 2557 by with 0 comment

พัฒนาเกมบน Python ด้วย pyglet

  สวัสดีทุกท่านครับ ในการพัฒนาเกมด้วยภาษา Python ปัจจุบันมี Python Game Libraries หลากหลายให้เลือก อ่านเพิ่มเติมที่ กระทู้:พัฒนาเกมด้วย Python pyglet เป็นอีก Python Game Libraries หนึ่งที่สามารถนำมาสร้างเกมได้ รองรับหลาย platform โดยเรียกใช้ OpenGL อีกทอดหนึ่ง
Read More

26 ตุลาคม 2557

Published ตุลาคม 26, 2557 by with 0 comment

สร้างฟอรั่มด้วย Misago


สวัสดีทุกท่านครับ หลังจากบทความก่อน ๆ ผมได้พาทุกท่านไปรู้จักกับ CMS ที่เขียนด้วย Django บน Python ครับ บทความนี้ผมจะพาผู้อ่านไปรู้จักกับ Web Board CMS อีกตัวนึ่งที่เขียนด้วย Django บน Python ครับ นั่นคือ Misago
Read More

24 ตุลาคม 2557

Published ตุลาคม 24, 2557 by with 0 comment

SciPy เครื่องมือทางคณิตศาสตร์ วิทยาศาสตร์ วิศวกรรม

สวัสดีครับทุกท่านครับ บทความนี้ผมจะพาทุกท่านไปรู้จักกับ SciPy
SciPy  เครื่องมือทางคณิตศาสตร์ วิทยาศาสตร์ วิศวกรรมที่เขียนบนภาษา Python เป็นชุดรวมเครื่องมือทางด้านนี้เลยครับ ประกอบไปด้วย
  • NumPy
  • SciPy library
  • Matplotlib
  • pandas ให้โครงสร้างข้อมูลที่มี ประสิทธิภาพสูง ใช้งานง่าย
  • SymPy สำหรับพีชคณิตสัญลักษณ์คณิตศาสตร์และคอมพิวเตอร์
  • IPython
  • nose เป็น framework สำหรับทดสอบโค้ดในภาษา Python
สำหรับการติดตั้ง
ใน Ubuntu หรือตะกูล Debian ใช้คำสั่ง
sudo apt-get install python-numpy python-scipy python-matplotlib ipython ipython-notebook python-pandas python-sympy python-nose
สำหรับบน Windows เข้าไปโหลดได้ที่ http://www.lfd.uci.edu/~gohlke/pythonlibs/#scipy ครับ
SciPy  ถือเป็นเครื่องมือทางคณิตศาสตร์ วิทยาศาสตร์ วิศวกรรมที่เขียนบนภาษา Python ที่ตอบโจทย์ได้อย่างดี ลองไปใช้กันดูนะครับ
เอกสารการใช้งาน SciPy http://www.scipy.org/docs.html
ขอบคุณครับ
Read More

13 ตุลาคม 2557

Published ตุลาคม 13, 2557 by with 3 comments

compile python ไฟล์ .py

สวัสดีทุกท่านครับ บทความนี้จะพาทุกท่านไป compile python ไฟล์ .py กันครับ ในบางครั้งเราต้องการนำโปรแกรมที่เราเขียนไปเผยแพร่ต่อ แต่เราไม่ต้องการเปิดโค้ด เราจึงต้อง compile python ไฟล์ .py จะได้ไฟล์นามสกุล .pyc ครับ
Read More

12 ตุลาคม 2557

Published ตุลาคม 12, 2557 by with 1 comment

ใช้ virtualenv แก้ปัญหา Python หลายเวชั่น

virtualenv เป็นเครื่องมือหนึ่งที่ใช้แยก environment ของแต่ละงาน Python ออกจากกัน เป็น environment เสมือน เพราะในบางครั้งคุณต้องการใช้ Python หลายเวชั่น ถ้าติดตั้งทุก version ในเครื่อง จะทำให้เกิดปัญหาการตีกันของ library ซึ่ง virtualenv สามารถช่วยแก้ไขปัญหานี้ได้อย่างดี
Read More
Published ตุลาคม 12, 2557 by with 0 comment

Django บน Python ตอนที่ 9: Session เบื้องต้น

สวัสดีทุกท่านครับ บทความนี้เราจะมาเรียนรู้เรื่อง Session เบื้องต้นใน Django บน Pythonกันครับ
Read More

11 ตุลาคม 2557

Published ตุลาคม 11, 2557 by with 0 comment

เขียน GUI บน Text Mode ด้วย Urwid

หลาย ๆ ท่านคงอยากจะย้อนยุคไปเขียนเขียน GUI บน Text Mode กันบ้าง แต่ด้วยการเขียนโปรแกรมปัจจุบันทันสมัยไปแล้วครับ วันนี้ผมจะแนะนำ Urwid สำหรับใช้เขียน GUI บน Text Mode ในภาษา Python กันครับ
Read More

8 ตุลาคม 2557

Published ตุลาคม 08, 2557 by with 0 comment

Django บน Python ตอนที่ 8: Admin Site

สวัสดีครับทุกท่าน บทความนี้จะพูดถึงเรื่อง Admin Site ใน Django ครับ
Read More

7 ตุลาคม 2557

Published ตุลาคม 07, 2557 by with 0 comment

Django บน Python ตอนที่ 7: Template

Template เป็นแม่แบบสำหรับหน้าเว็บเพจ โดยสามารถเขียนในรูปแบบ HTML ได้ ช่วยให้เราสามารถปรับแต่งได้อย่างอิสระ โดย Template จะถูกเรียกนำมาใช้งานร่วมกับ Views โดยจะทำการประมวลผลร่วมกับคำสั่งต่าง ๆ และ models ของ  Django ในภาษา Python แล้วจะส่งหน้าเว็บเพจออกมาในรูปแบบ HTML
Read More
Published ตุลาคม 07, 2557 by with 0 comment

Django บน Python ตอนที่ 6: models

สวัสดีครับทุกท่าน บทความนี้จะพาทุกท่านไปรู้กับและเขียน models ใน Django บน Python ครับ
models (โมเดล) เป็นแบบจำลอง เป็นส่วนขยายความสามารถของโปรแกรมในคอมพิวเตอร์ ในการเขียนโปรแกรมในภาษาต่าง ๆ จะมี lib มาให้ แต่อาจจะไม่เพียงต่อหรือตอบสนองการใช้งาน จึงต้องเขียน models ขึ้นมาเพิ่ม
Read More
Published ตุลาคม 07, 2557 by with 0 comment

Django บน Python ตอนที่ 5: Views และ URLconfs

หลักการทำงานของ Views และ URLconfs ใน Django
หลักการทำงานของ Views และ URLconfs ใน Django
สวัสดีทุกท่านครับ บทความนี้ผมจะพูดถึงเรื่อง Views และ URLconfs ครับ
Views คือ หน้าแสดงผลบนเว็บ เป็นไฟล์ที่กำหนดการแสดงผลลัพธ์บนเว็บเพจ คือไฟล์ View.py ใน Django
ส่วน URLconfs คือ ไฟล์การตั้งค่าลิงค์ของเว็บเพจใน Django คือไฟล์ urls.py
Read More

5 ตุลาคม 2557

Published ตุลาคม 05, 2557 by with 0 comment

Django บน Python ตอนที่ 4: ตั้งค่าให้รองรับภาษาไทยและโซนเวลาไทย

หน้า Login admin
สวัสดีทุกท่านครับ บทความนี้เราจะพาทุกท่านไป ตั้งค่าให้รองรับภาษาไทยและโซนเวลาไทย โดยอันที่จริงแล้ว Django รองรับภาษาไทยมาตั้งแต่ต้น โดยมีขั้นตอนง่าย ๆ ดังนี้ครับ
Read More
Published ตุลาคม 05, 2557 by with 0 comment

Django บน Python ตอนที่ 3: ตั้งค่ากับฐานข้อมูลและหน้า admin

Published ตุลาคม 05, 2557 by with 0 comment

Django บน Python : ตอนที่ 2 เริ่มต้น

หลังจากที่ผมได้แนะนำเริ่มต้นกับ Django บน Python ไปแล้วครับ บทความนี้เราจะเริ่มต้นกันครับ หากท่านใดยังไม่ได้ต้องติดตั้ง Django ให้ใช้คำสั่ง
pip install django django-nose 
ครับ
Read More
Published ตุลาคม 05, 2557 by with 0 comment

ใช้ pip ติดตั้งโมดูลง่ายกว่าเยอะ

สวัสดีครับทุกท่าน หลังจากที่ Python มี pip ทำให้การติดตั้งโมดูลเป็นไปได้อย่างสะดวก รวดเร็วยิ่งขึ้น ทั้ง Python 2 , 3 บทความนี้ท่านใดใช้ pip ติดตั้งโมดูลได้แล้ว สามารถข้ามไปได้เลยนะครับ  pip จะมาพร้อมกับ Python 2.7 กับ Python 3.4 + นะครับ สำหรับท่านใดที่ใช้รุ่นเก่ากว่านี้ให้ทำตามนี้ครับ https://pip.pypa.io/en/latest/installing.html
Read More

3 ตุลาคม 2557

Published ตุลาคม 03, 2557 by with 0 comment

เลือก Python Web Framework อย่างไรให้เหมาะสม

สวัสดีครับทุกท่าน จากบทความที่ผ่าน ๆ มา ผมได้แนะนำ Python Web Framework  ไปหลายตัว แต่ละตัวต่างมีจุดเด่นที่ไม่เหมือนกัน จึงเกิดคำถามเกิดขึ้นว่า Python Web Framework ตัวไหนเหมาะสมกับงานอะไร บทความนี้จะพาผู้อ่านไป เลือกงานที่เหมาะกับ Python Web Framework แต่ละตัวกันครับ
Read More
Published ตุลาคม 03, 2557 by with 0 comment

Flask web framework

Flaskเป็น web framework ที่ถูกพัฒนาในภาษา Python ถือว่าเป็น microframework ที่มีประสิทธิภาพอีกอันหนึ่งครับ ใช้ BSD licensed ด้วย ไม่ต้องกลัวเมื่อนำไปดัดแปลงพัฒนาต่อ
Read More

1 ตุลาคม 2557

Published ตุลาคม 01, 2557 by with 0 comment

Python Regular Expressions

สวัสดีครับทุกท่าน บทความนี้จะพูดถึงเรื่อง Python Regular Expressions กันครับ Regular Expressions (RegEx) คือ วิธีการตรวจสอบข้อมูล โดยกำหนดรูปแบบของสตริงที่ต้องการตรวจสอบที่เรียกว่า แพตเทิร์น(Pattern) มีต้นกำเนิดมาจากภาษา Perl ครับ

รูปแบบแพตเทิร์น(Pattern) ใน Python

Anchors
^ เริ่มต้นของสตริงหรือเริ่มต้นของบรรทัดในรูปแบบหลายบรรทัด
\A จุดเริ่มต้นของสตริง
$ สิ้นสุดของสตริงหรือจุดสิ้นสุดของเส้นในรูปแบบหลายบรรทัด
\Z สิ้นสุดของสตริง
\b ขอบเขตคำ
+ ตรงกับอย่างน้อยหนึ่งอักขระก่อนหน้านี้
* มีหรือไม่ก็ได้
| คือ "หรือ" , "OR"
haracter Classes
. (จุด) แทนตัวอักษรใด ๆ 1 ตัว ยกเว้นตัวอักษรขึ้นบรรทัดใหม่
\s เว้นบรรทัด
\S ไม่ได้เว้นบรรทัด
\B ไม่ขอบเขตคำ
< จุดเริ่มต้นของคำ
> สุดท้ายของคำ
\b ตรงกับขอบเขต string
\d แทนตัวเลข 0 ถึง 9
\D ตัวอักษรที่ไม่ใช่ตัวเลข
\w คำ
\W ไม่ใช่คำ
{จำนวนที่ซ้ำ} ระบุว่าต้องการการซ้ำซ้อนทั้งหมดกี่ตัว
อักขระพิเศษ
\n บรรทัดใหม่
\t Tab

กลุ่ม

(? ... ) Passive (ไม่จับ) กลุ่ม
[abc] ช่วง (A หรือ B หรือ C)
[^abc] ไม่ใช่ a หรือ b หรือ c
[a-z]    ใช้แทน a - z ตัวพิมพ์เล็ก
[a-z0-9]    ใช้แทน a-z ตัวพิมพ์เล็กและแทนเลข 0 - 9
[A-Z]    ใช้แทน A - Z ตัวพิมพ์ใหญ่
[A-Z0-9]    ใช้แทน A - Z ตัวพิมพ์ใหญ่และแทนเลข 0 - 9
[0-9]    ใช้แทนช่วง 0 - 9
ที่ผมยกมาด้านบนเป็นรูปแบบแพตเทิร์น(Pattern) ใน Python ที่ใช้กันบ่อย ๆ ครับ สำหรับเรื่อง รูปแบบแพตเทิร์น(Pattern) ไปศึกษารายละเอียดย่อย ๆ ได้ที่ http://www.cheatography.com/davechild/cheat-sheets/regular-expressions/
ในการใช้ Regular Expressions ใน  Python เราต้องใช้โมดูลที่มากับตัว Python ที่มีชื่อว่า re

findall

findall() เป็นฟังก์ชั่นที่มีประสิทธิภาพที่สุดในโมดูล re เราจะใช้ findall() ในการค้นหารูปแบบในตัวอย่างนี้

ผลลัพธ์
['Barack Obama', 'Bill Gates']

match

re.match()  ตรวจสอบว่า Regular Expressions ตรงที่จุดเริ่มต้นของสตริง เมื่อพบจะคืนค่า match object ออกมา ถ้าไม่พบจะคืนค่า None ออกมา ดังตัวอย่างต่อไปนี้
>>> import re
>>> m = p.match('tempo')
>>> m  
<_sre.SRE_Match object; span=(0, 5), match='tempo'>
ถ้าไม่พบข้อความ
>>> import re
>>> p.match("")
>>> print(p.match(""))
None

search

re.search() ใช้ค้นหารูปแบบภายในสตริงที่กำหนด ดังตัวอย่างต่อไปนี้
import re
print(re.search(r'\d\d\d', 'Your number is <b>123</b>').group(0))
ผลลัพธ์
123

การใช้ re.search() กับการเช็คเงื่อนไข if else
หากต้องการเช็คเงื่อนไข if else ว่าถ้าในสตริงมีรูปแบบที่ตรงกับรูปแบบ re ที่กำหนดไว้ ให้ทำเงื่อนไขใน if หากไม่ใช่ ให้ทำเงื่อนไขใน else สามารถทำได้โดยใช้โค้ดต่อไปนี้
ตัวอย่างเช่น หากกำหนดรูปแบบให้ค้นหา 0 - 9 หากพบให้แสดงเป็น 1 หากไม่พบ ให้แสดงเป็น 0
เขียนรูปแบบ re ได้เป็น [0-9]
ได้โค้ดดังนี้

ผลลัพธ์
1

sub

re.sub() เป็นคำสั่งที่ใช้แทนที่ตัวอักษรในสตริง ไม่ว่าจะเป็นคำหรือประโยค ดังตัวอย่างต่อไปนี้
import re
a = "คน เดิน ด้วย เครื่องบิน"
b = re.sub("เดิน", "บิน", a)
print(b)
ผลลัพธ์
คน บิน ด้วย เครื่องบิน

compile

re.compile() เป็นคำสั่งที่ใช้รวบรวมรูปแบบ (Pattern) เป็นวัตถุเก็บรูปแบบที่ต้องการ ดังตัวอย่างต่อไปนี้
import re
regex = re.compile(r'([a-z]+)', re.I)
print(regex.findall("123hello456world789"))
ผลลัพธ์
['hello', 'world']

split

re.split เป็นคำสั่งที่ใช้แยกสตริงตามที่กำหนด เราสามารถนำมาใช้ได้กับ Regular Expressions ดังตัวอย่างต่อไปนี้
>>> import re
>>> re.split('\W+','This... is a test.')
['This', 'is', 'a', 'test', '']
จบแล้วครับสำหรับเรื่อง Python Regular Expressions ครับ เวลาเรียกใช้ re ต่าง ๆ อย่าลืม import re กับตรวจสอบรูปแบบ Regular Expressions ให้ถูกต้องด้วยนะครับ
สำหรับท่าใดที่อยากลองเขียน Regular Expressions ดู สามารถเข้าไปลองเขียนเล่นได้ที่ http://re-try.appspot.com/ 
ติดตามบทความต่อไปนะครับ
ขอบคุณครับ
Read More