วันอังคารที่ 23 มิถุนายน พ.ศ. 2552

Random in Python


>>> import random
>>> random.random() # เป็นการสุ่ม ตัวเลขที่มีทศนิยม (float) ระหว่าง 0.0 <= x < 1.0
0.37444887175646646
>>> random.uniform(1, 10) # เป็นการสุ่ม ตัวเลขที่มีทศนิยม (float)ระหว่าง 1.0 <= x < 10.0
1.1800146073117523
>>> random.randint(1, 10) # เป็นการสุ่ม ตัวเลขจำนวนเต็ม (Integer) ระหว่าง 1 ถึง 10
7
>>> random.randrange(0, 101, 2) # เป็นการสุ่ม ตัวเลขจำนวนเต็ม (Integer) ระหว่าง 1 ถึง 100 แต่จะสุ่มตามเลขที่เพิ่มค่าทีละ 2
26
>>> random.choice('abcdefghij') # สุ่มเลือกตัวอักษร
'c'

>>> items = [1, 2, 3, 4, 5, 6, 7]
>>> random.shuffle(items) # สลับค่าใน list แบบสุ่ม
>>> items
[7, 3, 2, 5, 6, 4, 1]

>>> random.sample([1, 2, 3, 4, 5], 3) # เลือกค่าใน list มา 3 ค่า
[4, 1, 5]



จาก Python Document

วันพฤหัสบดีที่ 18 มิถุนายน พ.ศ. 2552

Regular Expression in Python

วันอังคารที่ 16 มิถุนายน พ.ศ. 2552

วันอาทิตย์ที่ 14 มิถุนายน พ.ศ. 2552

Regular Expression Function

Regular Expression มีฟังก์ชั่นการทำงานดังต่อไปนี้


>>>import re
>>>pat = 'Hello'
>>>raw = 'Hello world. Hello you.'


compile(pat) เป็นการคอมไพล์ข้อความรูปแบบ โดยจะคืนค่ามาเป็น Pattern object


>>>re.compile(pat)
>>><_sre.SRE_Pattern object at 0x01357500>


re.findall(pat,raw) เป็นการค้นหาในส่วนของข้อความและจะคืนข้อความทั้งหมดที่ตรงกับรูปแบบกำหนดในรูปแบบ list


>>>re.findall(pat,raw)
>>>['Hello', 'Hello']


re.finditer(pat,raw) เป็นการค้นหาในส่วนของข้อความและจะคืนข้อความทั้งหมดที่ตรงกับรูปแบบกำหนดเหมือนกับ findall แต่จะคืนในรูปแบบ iterator


>>>re.finditer(pat,raw)
>>>


re.match(pat,raw) เป็นการค้นหาในส่วนของข้อความและจะคืนข้อความในรูปแบบ Match object


>>>re.match(pat,raw)
>>><_sre.SRE_Match object at 0x01FA7BF0>


re.search(pat,raw) เป็นการค้นหาในส่วนของข้อความและจะคืนข้อความในรูปแบบ Match object แต่ต่างจาก match ตรงที่จะรู้ตำแหน่งด้วย


>>>re.search(pat,raw)
>>><_sre.SRE_Match object at 0x01FA7BF0>


re.split(pat,raw) เป็นการตัดแบ่งข้อความด้วยรูปแบบที่ต้องการ


>>>re.split(pat,raw)
>>>['', ' world. ', ' you.']


re.sub(pat, 'new text', raw) เป็นการแทนข้อความที่เรากำหนดตรงตำแหน่งที่เราใส่รูปแบบที่ต้องการ


>>>re.sub(pat,'Sawasdee', raw)
>>>'Sawasdee world. Sawasdee you.'


re.subn(pat,'Sawasdee',raw) เป็นการแทนข้อความที่เรากำหนดตรงตำแหน่งที่เราใส่รูปแบบที่ต้องการ แต่จะคืนเป็น tuple เป็นข้อความใหม่กับ จำนวนข้อความที่ถูกเปลี่ยน


>>>re.subn(pat,'Sawasdee',raw)
>>>('Sawasdee world. Sawasdee you.', 2)


re.template(pat) เป็นการสร้าง object Pattern ตามที่รูปแบบที่เราต้องการ เหมือนการ compile


>>>re.template(pat)
>>><_sre.SRE_Pattern object at 0x013576A0>