November 11, 2011

Python: ตัวสร้างตัววนซ้ำ และกำรดำเนินการระดับบิต

ถึงตอนนี้ เราน่าจะวน for กันจนชินไปแล้ว ซึ่งจะเห็นว่าเราสามารถใช้ตัวแปร (เรียกว่า iterator) ได้หลากหลาย เช่น string, list, dictionary, file หรือจะใส่เป็นฟังก์ชัน range() เข้าไปก็ได้ ซึ่งถ้าเราอยากรู้ว่า range() นั้นมีหน้าตาลำดับเป็นยังไง ให้จับมันสร้าง list ดูครับ

แน่นอนว่าเราสามารถผ่าน range() แบบต่างๆ เข้าไปวน for ได้เช่นเคยครับ



อีกเทคนิคหนึ่งที่น่าสนใจ คือ generator expressions ซึ่งมีวิธีประกาศคล้ายการวน for มาก



เนื่องจาก Python ออกแบบมาให้เป็นภาษาระดับสูง การลงไปเล่นกับ bit จะค่อนข้างยุ่งยากแปลกกว่าปรกติ ความต่างจากภาษาอื่นๆ ที่ชัดเจนคือมันไม่มี overflow ครับ

เพื่อให้อ่านค่าได้ง่ายขึ้น เราอาจใช้ฟังก์ชันเหล่านี้ได้

ถ้าตัดเรื่องความแปลกๆ ของขนาด bit ออกไป ที่เหลือก็เหมือนๆ ภาษาอื่นเลยครับ

แต่เนื่องจากไม่มี circular shift ดังนั้นเราจึงต้องประยุกต์ท่านี้มาใช้ครับ

No comments:

Post a Comment