Tag Archives: python

PyICU

หลังจากพยายามนั่งทำ Binding ของ libthai ให้เป็น Python อยู่หลายวัน พบว่ามีคนทำ PyICU อยู่ก่อนแล้ว T_T แต่ก็นับว่าได้ความรู้การใช้งาน Python ระดับล่างๆ ได้ดีขึ้นเยอะ ถึงตอนนี้โครงการ ZWSP คงเห็นทางเสร็จทันปลายปี

Bug

As I’m working in my personal project about Thai language. I try to learn GUI programming with wxPython anf face some problem in following code. [ftf w="400" h="300" def="python.xml"]#!/usr/bin/env python — coding: utf-8 — generated by wxGlade 0.4 on Tue Mar 21 20:06:06 2006 import wx import codecs class MainFrame(wx.Frame): def init(self, *args, **kwds): # […]

Bug

ด้วยเหตุผลบางประการ เวลาพิมพ์ตัวอักษรที่ wxPython ไม่ชอบ เช่น “ฟ” มันจะทำให้ EVT_TEXT เดี๊ยงสนิท ไม่ทำงานอีกเลยจนกว่าจะลบตัวที่มันไม่ชอบออกหมด ไม่รู้ว่าบั๊กหรือคนใช้โง่เองกันแน่ฟ่ะ

Decimal

เรื่องหนึ่งที่โปรแกรมเมอร์มือใหม่มักจะไม่ระวังกันคือ การใช้ค่าเลขทศนิยมในคอมพิวเตอร์นั้นเป็นฐานสอง ซึ่งไม่ตรงตัวกับการใช้เลขทศนิยมในฐานสิบทั่วๆ ไป ในการเขียนโปรแกรมหนึ่งๆ ที่มีการเปรียบเทียบค่าเลขทศนิยมจึงอาจจะดูดีในการทดสอบ เช่นว่า print (0.05 + 0.05 == 0.1) True เมื่อการทำงานในขั้นต้นทำงานดี โปรแกรมเมอร์อาจจะเชื่อว่าส่วนนี้ทำงานถูกต้องดี จนกระทั่งการทำงานในแบบที่คล้ายๆ กันมีการทำซ้ำจำนวนมากๆ เช่น d1 = 0.0 for i in range(1000): d1 += 0.0001 print repr(d1) 1.0000000000000007 print (d1 == 1.0) False ถึงตอนนี้โปรแกรมก็เริ่มทำงานไม่เป็นไปตามที่เราคิด และโปรแกรมเมอร์จำนวนมากก็เริ่มกุมขมับว่าทำไมมันไม่เวิร์ค ขณะที่โปรแกรมเมอร์อีกกลุ่มหนึ่งที่เข้าใจปัญหานี้ดี ก็ต้องใช้เทคนิคสารพัดเพื่อที่จะแปลงการปัดค่าทศนิยมอย่างนี้ให้ถูกต้อง ใน Python 2.4 เป็นต้นมา มีการอิมพลีเมนต์เอกสาร PEP-327 ซึ่งเป็นสเปคของเลขทศนิยมฐานสิบ ที่ทำงานในส่วนนี้ได้ถูกต้องกว่า อย่างในตัวอย่างต่อไปนี้ dec1 = Decimal(“0.0″); for i […]