Python – Dictionary

Python – Dictionary การเก็บชุดข้อมูลชนิดดิกชันนารี การเก็บชุดข้อมูลชนิดดิกชันนารี(Dictionary) เป็นการเก็บชุดข้อมูลในรูปแบบหนึ่ง ซึ่งข้อมูลภายในชุดข้อมูลไม่มีการเรียงลำดับ จะมีความแตกต่างจากรูปแบบการเก็บชุดข้อมูลแบบอื่นๆ โดยการเก็บข้อมูลแบบอื่นเช่นลิสต์(list), เซต(set) นั้น เราจะทำเพียงเก็บค่าของข้อมูลนั้นๆ เอาไว้เช่น ลิสต์ของข้อมูลอุณหภูมิ, เซตของข้อมูลชื่อผลไม้ แต่สำหรับชุดข้อมูลชนิดดิกชันนารี่ ข้อมูลหนึ่งนั้นจะประกอบไปด้วยชื่อข้อมูล(key)ไว้สำหรับอ้างอิงข้อมูล และ ค่าของข้อมูล(value) ถูกเก็บอยู่ด้วยกัน เนื่องการเก็บชุดข้อมูลชนิดดิกชันนารี(Dictionary) ในข้อมูลแต่ละตัวจะมีทั้งชื่อข้อมูล(key)และค่าของข้อมูล(value) ทำให้ชนิดข้อมูลชนิดนี้มีคุณสมบัติที่ทำให้สามารถค้นหาข้อมูลที่ต้องการโดยอ้างถึงจากชื่อข้อมูล(key)นั้นได้ด้วย ตัวอย่างข้อมูล เป็นชุดข้อมูลชนิดดิกชันนารีสำหรับเก็บข้อมูลหนังสือเล่มหนึ่ง โดยเมื่อทำการออกแบบระบบสำหรับเก็บข้อมูลและทำการระบุคุณลักษณะข้อมูล จะได้รูปแบบข้อมูลหนังสือแต่ละเล่มมีคุณลักษณะดังนี้: ชื่อหนังสือ(name) เลข isbn(isbn) ชื่อผู้แต่ง(author) ชื่อผู้วาดภาพประกอบ(illustrator) ชื่อผู้แปล(translator) น้ำหนัก(weight) ขนาด(size) สำนักพิมพ์(publisher) วันที่จัดพิมพ์(publish_date) จำนวนหน้า(pages) ประเภทหนังสือ(category) ราคา(price) ซึ่งเมื่อต้องการสร้างชุดข้อมูลชนิดดิกชันนารีเพื่อระบุข้อมูลของหนังสือเล่มหนึ่ง จะได้เป็นรูปแบบของชุดข้อมูลชนิดดิกชันนารีดังนี้ # -*- coding: utf-8 -*- import json # สร้างฟังก์ชันสำหรับปรินต์ค่าชุดข้อมูลชนิดดิกชันนารี def print_dictionary(data): # ทำการปรินต์ค่า Read more about Python – Dictionary[…]

Python – Set

Python – Set การเก็บข้อมูลชนิดเซต เซต(Set) เป็นรูปแบบของการเก็บข้อมูลชนิดหนึ่ง โดยจะมีการเก็บข้อมูลเป็นกลุ่มของข้อมูล ซึ่งภายในกลุ่มนี้จะไม่มีลำดับของข้อมูล เนื่องจากเป็นกลุ่มข้อมูลที่ไม่มีลำดับของข้อมูลสำหรับอ้างอิง ดังนั้นข้อมูลแต่ละตัวจึงจำเป็นต้องไม่ซ้ำกันและข้อมูลแต่ละตัวภายในเซตนั้นจะทำการเปลี่ยนแปลงไม่ได้ แต่ตัวเซตของกลุ่มข้อมูลนั้นสามารถทำการเปลี่ยนแปลงได้โดยการเพิ่มข้อมูลหรือลบข้อมูลออก เราสามารถใช้ข้อมูลชนิดเซตเพื่อดำเนินการต่างๆ เช่น การรวมข้อมูล(union), การเลือกข้อมูลที่ซ้ำกัน(intersection), การเลือกข้อมูลเฉพาะข้อมูลที่ต่างจากอีกกลุ่มข้อมูล(difference), การเลือกข้อมูลจากทุกเซตเฉพาะข้อมูลที่เซตนั้นๆ มีแตกต่างจากเซตอื่น(symmetric difference), etc. วิธีการสร้างเซตของข้อมูล เราสามารถสร้างเซตของข้อมูลโดยการนำข้อมูลทั้งหมดมาวางไว้ภายในเครื่องหมาย {} แล้วทำการแยกข้อมูลแต่ละตัวด้วยเครื่องหมาย “,” หรืออาจจะสร้างข้อมูลประเภทนี้โดยใช้ฟังก์ชัน set() ในการสร้างข้อมูล กลุ่มข้อมูลในเซตนั้นไม่ได้มีการจำกัดจำนวนและยังสามารถบรรจุข้อมูลได้หลายชนิดภายในเซตเดียวกัน เช่น ตัวเลขจำนวนเต็ม(integer), ตัวเลขทศนิยม(float), tuple, ข้อความ(string), etc. แต่ข้อมูลที่บรรจุภายในเซตนั้นไม่สามารถบรรจุข้อมูลประเภทที่แก้ไขข้อมูลได้(mutable) เช่น ลิสต์(list), เซต(set) หรือ ดิกชันนารี(dictionary) การสร้างเซตของข้อมูลโดยใช้เครื่องหมาย {} เราสามารถสร้างเซตของข้อมูลโดยการนำข้อมูลทั้งหมดมาวางไว้ภายในเครื่องหมาย {} แล้วทำการแยกข้อมูลแต่ละตัวด้วยเครื่องหมาย “,” ตัวอย่างการใช้งาน # กำหนดตัวแปรชนิดเซต เพื่อทำการเก็บข้อมูลชื่อผลไม้ โดยข้อมูลภายใน # เป็นข้อมูลประเภทข้อความ(string) fruits Read more about Python – Set[…]

Python – String

Python – String string คือชุดของอักขระที่ถูกนำมาจัดกลุ่มเพื่อใช้งานร่วมกัน โดยกลุ่มอักขระดังกล่าวอาจประกอบกันกลายเป็นประโยค วลี หรือกลุ่มคำที่มีหรือไม่มีความหมายก็เป็นได้ ถ้าแปลตรงตัว string ในภาษาไทยจะแปลได้ว่า สายอักขระ(อ้างอิง) ในบทนี้จะเรียกข้อมูลชนิดนี้ว่าข้อความ(string) ซึ่งอาจจะมีความหมายไม่ตรงนัก แต่เพื่อให้เข้าใจง่ายขึ้นและมองเห็นภาพชัดขึ้นเมื่อกล่าวถึงข้อมูลชนิดนี้ ภาษาที่ใช้ในคอมพิวเตอร์ ไม่ได้ทำงานจากภาษาของอักขระโดยตรง แต่จะทำงานร่วมกันคำสั่งหรือข้อมูลที่ถูกแปรผลเป็นไบนารี่ ถึงแม้เราอาจจะเห็นข้อมูลที่เราพิมพ์ลงไปอยู่ในรูปอักขระบนหน้าจอคอมพิวเตอร์ แต่ระบบภายในนั้น จะต้องแปรผลให้เป็นข้อมูลในรูปไบนารี่ 0, 1 เพื่อจะทำงานร่วมกับคอมพิวเตอร์ต่อไปได้ การแปลภาษาจากอักขระไปเป็นข้อมูลที่คอมพิวเตอร์สามารถเข้าใจเราอาจะเรียกได้ว่าการ encoding และในทางกลับกันการแปรผลกลับจากข้อมูลในภาษาคอมพิวเตอร์ กลับเป็นอักขระเรียกว่าการ decoding โดยการ encoding ที่นิยมใช้กันจะเป็น “ASCII” และ “unicode” สำหรับข้อความที่ใช้ใน python นั้น จะเป็นลำดับข้อมูลในรูปแบบของ unicode character ซึ่งรองรับการทำงานร่วมกับอักขระในหลายภาษาให้ทำงานร่วมกันได้ การสร้างข้อมูลชนิดข้อความ(string) การสร้างข้อมูลชนิดข้อความ(string) นี้จะเป็นการใช้ชุดของอักขระ แล้วครอบไว้ด้วยเครื่องหมาย single quote(‘), double qoute(“) หรือ triple quote(”’) โดย triple Read more about Python – String[…]

Python – Tuple

Python – Tuple การเก็บข้อมูลแบบ tuple นั้นคล้ายกันกับลิสต์ ความแตกต่างกันตรง tuple นั้นเมื่อทำการกำหนดค่าลงไปให้กับตัวแปรแล้วจะไม่สามารถเปลี่ยนแปลงได้อีก แต่ลิสต์สามารถเปลี่ยนแปลงได้ ข้อได้เปรียบของ tuple เมื่อเทียบกับลิสต์ เนื่องจาก tuple เป็นการเก็บข้อมูลแบบไม่สามารถแก้ไขข้อมูลได้(immutable) การเข้าถึงข้อมูลนั้นจะเร็วกว่าการเข้าถึงข้อมูลในลิสต์ ทำให้ได้เปรียบในเรื่องประสิทธิภาพ เนื่องจาก tuple บรรจุข้อมุลที่ไม่สามารถแก้ไขได้ จึงสามารถใช้ tuple เป็นคีย์(key) สำหรับการเก็บข้อมูลแบบ dictionary แต่ในสำหรับลิสต์นั้นไม่สามารถใช้งานแบบนี้ได้ ถ้าต้องการเก็บข้อมูลที่ไม่ต้องการให้ข้อมูลเปลี่ยนแปลง การใช้งาน tuple จะช่วยป้องกันการแก้ไขข้อมูลได้ การสร้างข้อมูลชนิด tuple การสร้างข้อมูล tuple ในกรณีที่มีข้อมูลมากกว่า 1 ตัว การสร้างข้อมูลชนิด tuple ทำได้โดย นำข้อมูลทั้งหมดมาคั่นด้วยเครื่องหมาย “,” แล้วครอบไว้ด้วยเครื่องหมาย “()” เพื่อระบุขอบเขต โดยเครื่องหมาย “()” สามารถจะใส่หรือไม่ใส่ก็ได้จะสามารถสร้างข้อมูลได้เหมือนกัน สำหรับการระบุข้อมูลใน tuple นั้น จะสามารถจะบรรจุข้อมูลได้ไม่จำกัดจำนวน และสามารถจะบรรจุข้อมูลต่างชนิดกันได้(จำนวนเต็ม, จำนวนทศนิยม, Read more about Python – Tuple[…]

Python – List

Python – List การเก็บข้อมูลประเภทลิสต์นั้น เป็นการเก็บข้อข้อมูลแบบมีลำดับของข้อมูลและสามารถอ้างอิงถึงข้อมูลตามลำดับดังกล่าว โดยในลิสต์เดียวกันสามารถจะบรรจุข้อมูลหลายประเภทรวมกันได้ การสร้างลิสต์ การสร้างลิสต์นั้นทำได้โดยการนำข้อมูลมาเรียงกันเป็นลำดับแล้วครอบด้วยเครื่องหมาย “[]” ซึ่งข้อมูลแต่ละตัว แยกออกจากกันด้วยเครื่องหมาย “,” โดยข้อมูลภายในลิสต์นั้นจะสามารถประกอบด้วยข้อมูลต่างประเภทกันได้ เช่น จำนวนเต็ม(integer), เลขทศนิยม(float), ข้อความ(string),… ตัวอย่างการใช้งาน # สร้างตัวแปรเพื่อเก็บข้อมูลประเภทลิสต์ สำหรับเก็บคะแนน ซึ่งยังไม่เก็บข้อมูลใดๆ scores = [] # สร้างตัวแปรเพื่อเก็บข้อมูลประเภทลิสต์ สำหรับเก็บคะแนน ซึ่งเก็บคะแนนที่เป็นจำนวนเต็ม scores = [85, 62, 70] # สร้างตัวแปรเพื่อเก็บข้อมูลประเภทลิสต์ สำหรับเก็บคะแนน ซึ่งเก็บข้อมูลหลายประเภทซึ่งในตัวอย่างทำการเก็บข้อมูลประเภทจำนวนเต็ม, เลขทศนิยม และข้อความ scores = [85, 62, 70, “NA”, 90.5, 66, 50] สำหรับการเก็บข้อมูลของลิสต์นั้น สามารถที่จะบรรจุข้อมูลประเภทลิสต์ซ้อนอยู่ภายในลิสต์ได้อีกด้วย ซึ่งจะเรียกว่า nested ลิสต์ ตัวอย่างการใช้งาน Read more about Python – List[…]

Python – Numbers, Type Conversion and Mathematics

Python – Numbers, Type Conversion and Mathematics ข้อมูลประเภท number การประกาศข้อมูลในรูปแบบของตัวเลขนั้น สามารถรองรับการใช้ของมูลตัวเลขที่เป็นชนิดต่างๆ ดังนี้ จำนวนเต็ม(integer): int เลขทศนิยม(floating point): float จำนวนเชิงซ้อน(complex): complex หากจะทำการระบุตัวแปรให้เป็นมีชนิดข้อมูลตัวเลขประเภทนี้ จะต้องระบุตัวแปรให้อยู่ในคลาสที่เหมาะสมกับข้อมูลนั้นๆ(int, float หรือ complex) สำหรับเลขจำนวนเต็มและเลขทศนิยมนั้นจะแตกต่างกันตรงเลขระบุทศนิยม ตัวอย่างเช่น 5 เป็นจำนวนเต็ม และ 5.0 เป็นเลขทศนิยม สำหรับจำนวนเชิงซ้อนนั้นจะเขียนให้อยู่ในรูป x + yj ซึ่งส่วนของ x จะเป็นจำนวนจริง(real) และ y จะเป็นจำนวนจินตภาพ(imaginary) หากต้องการทราบชนิดของข้อมูล เราสามารถใชัฟังก์ชัน “type()” เพื่อจะตรวจสอบว่าตัวแปรหรือค่าใดๆ นั้นมาจากคลาสใด และสามารถใช้ฟังก์ชัน “isinstance()” เพื่อทำการตรวจสอบว่าข้อมูลหรือตัวแปรดังกล่าวตรงกับคลาสที่ระบุหรือไม่ ตัวอย่างการใช้งาน # สร้างตัวแปรสำหรับเก็บข้อมูลปริมาณของสินค้า โดยทำการเก็บข้อมูลเป็นจำนวนเต็ม และทำการตรวจสอบชนิดของข้อมูลที่ตัวแปรดังกล่าวเก็บไว้ amount Read more about Python – Numbers, Type Conversion and Mathematics[…]

Python – packages

Python – packages การจัดเก็บข้อมูลลงคอมพิวเตอร์ก็เหมือนการจัดเก็บข้อมูลในรูปแบบอื่น เมื่อมีข้อมูลเยอะขึ้น มีทรัพยากรเยอะขึ้น เราก็จำเป็นต้องมีการจัดหมวดหมู่ของข้อมูลให้เป็นระเบียบ เพื่อที่จะช่วยให้เราสามารถทำงานได้สะดวกและรวดเร็วขึ้น การจัดหมวดหมู่และแยกย่อยไฟล์ที่เรามีอยู่ ทำให้เราสามารถสืบค้นไฟล์เหล่านั้นได้รวดเร็วขึ้นและไม่จำเป็นต้องเสียเวลาในการสร้างข้อมูลใหม่หากมีข้อมูลดังกล่าวจัดเก็บอยู่แล้ว เมื่อเราจะต้องทำการจัดระเบียบข้อมูล เราก็สามารถเริ่มต้นจากทำการจัดรูปแบบโดยการจัดกลุ่มของไฟล์แยกย่อยเป็นโฟลเดอร์และภายในโฟลเดอร์ดังกล่าวก็อาจจะมีไฟล์หรือโฟลเดอร์อื่นๆ ซ้อนกันไปเรื่อยๆ ตามความเกี่ยวเนื่องกันของข้อมูล สำหรับไฟล์ที่ทำงานในลักษณะใกล้เคียงกันก็ถูกจัดวางไว้ในโฟลเดอร์เดียวกัน ตัวอย่างเช่น เราเก็บไฟล์ที่บันทึกรูปภาพไว้ในโฟลเดอร์ชื่อว่า “pictures” และภายในโฟลเดอร์ดังกล่าวเราอาจจะมีโฟลเดอร์ย่อย ที่ระบุชื่อปีที่ทำการบันทึกรูปภาพ pictures —-2012 ——–January ————IMG_0001.JPG ————IMG_0002.JPG ————IMG_0003.JPG ————IMG_0004.JPG ————IMG_0005.JPG ——–February ——–March ——–April —-2013 —-2014 —-2015 โดยจากตัวอย่าง จะทำการจัดเก็บไฟล์รูปภาพไว้ในโฟลเดอร์ pictures โดยในโฟลเดอร์ pictures นั้นก็สร้างโฟลเดอร์ย่อยโดยแยกรูปภาพตามปีคริสตศักราช(ค.ศ.) และในโฟลเดอร์ย่อยนั้น ข้อมูลรูปภาพแต่ละปีก็ยังแยกย่อยการเก็บข้อมูลรูปภาพ ตามเดือนที่ภาพถูกบันทึกไว้ จากการจัดเก็บข้อมูลในคอมพิวเตอร์ ด้วยรูปแบบเดียวกันนี้ เรานำวิธีดังกล่าวมาใช้จัดการ “package” ใน python ยิ่งโปรแกรมมีความสามารถมากขึ้นและทำงานซับซ้อนขึ้น จำนวนคำสั่ง, ตัวแปร, ฟังก์ชันและจำนวนไฟล์ที่บรรจุคำสั่งก็จะมีจำนวนมากขึ้นตามไปด้วย การจัดกลุ่มไฟล์ที่บรรจุคำสั่งออกเป็นโฟลเดอร์ย่อยๆ ตามลักษณะการทำงานนั้น Read more about Python – packages[…]

Python – modules

Python – modules ในการออกแบบโปรแกรมที่มีขนาดใหญ่ขึ้น การจัดระบบของตัวแปร, คำสั่ง, ฟังก์ชันให้อยู่ในรูปแบบที่สืบค้นได้สะดวกนั้นก็มีส่วนสำคัญ การแยกส่วนต่างๆ ของการทำงานที่ซับซ้อนออกเป็นส่วนย่อยๆ แล้วจัดกลุ่มการทำงานเหล่านั้นให้เหมาะสม จะทำให้ลดความซ้ำซ้อนในการเขียนโปรแกรมและใช้เวลาน้อยในการสืบค้นชุดคำสั่งที่ทำงานแบบเดียวกัน โมดูล(modules) ใช้อ้างถึงไฟล์ที่บรรจุชุดคำสั่ง ซึ่งชุดคำสั่งเหล่านั้นจะถูกรวบรวมไว้ให้อยู่ในที่เดียวกันเพื่อทำงานและเพื่อประมวลผลร่วมกัน ตัวอย่างเช่น ทำการสร้างไฟล์ที่ชื่อ “degree_converter.py” เพื่อให้ไฟล์ดังกล่าวทำการรวบรวมคำสั่งและฟังก์ชันสำหรับทำการแปลงข้อมูลอุณหภูมิในหน่วยต่างๆ โดยไฟล์ดังกล่าวนั้นสามารถจัดเป็นหนึ่งโมดูลได้ โดยชื่อของโมดูลก็คือ “degree_converter” ชื่อเดียวกับชื่อไฟล์ การที่เราทำการแบ่งโปรแกรมใหญ่ออกเป็นโมดูลย่อยๆ ทำให้เราสามารถจัดกลุ่มฟังก์ชันเหล่านั้น ให้การทำงานประเภทเดียวกันอยู่ในกลุ่มเดียวกัน การจัดระเบียบดังกล่าวนั้น นอกจากจะทำให้ผู้พัฒนาเอง สามารถค้นหาคำสั่งหรือฟังก์ชันที่ต้องการเรียกใช้ได้ง่ายและเร็วขึ้นแล้ว ยังทำให้สามารถสามารถนำเข้าโมดูลและจะเรียกใช้ฟังก์ชันเหล่านั้นซ้ำได้เรื่อยๆ โดยไม่ต้องเขียนฟังก์ชันหรือคำสั่งแบบเดิมซ้ำใหม่ทุกครั้ง โดยเราสามารถจะประกาศชุดฟังก์ชันที่ใช้บ่อยๆ ลงในโมดูล และเมื่อต้องการใช้โมดูลเหล่านั้นก็สามารถที่จะใช้คีย์เวิร์ด import เพื่อนำเข้าโมดูลนั้นและเรียกใช้ตัวแปรหรือฟังก์ชันที่มีโดยไม่ต้องทำการเขียนชุดฟังก์ชันดังกล่าวซ้ำลงไปใหม่ในโปรแกรมใหม่ที่เราสร้างขึ้นมา ตัวอย่างการเรียกใช้งานโมดูลทั่วไป สร้างโมดูลสำหรับแปลงอุณหภูมิ โดยสร้างไฟล์ “degree_converter.py” #!/usr/bin/env python # -*- coding: utf-8 -*- #ฟังก์ชันสำหรับแปลงอุณหภูมิจากหน่วยองศาเซลเซียสเป็นองศาฟาเรนต์ไฮต์ def convert_temperature_to_fahrenheit(degree_celcius): degree_fahrenheit = degree_celcius * (9.0/5.0) + Read more about Python – modules[…]

Python – คีย์เวิร์ด global

Python – คีย์เวิร์ด global เราใช้คีย์เวิร์ด global เพื่ออนุญาติให้สามารถทำการเปลี่ยนแปลงค่าตัวแปรที่อยู่ด้านนอกข้อมูลใน scope ปัจจุบัน จะถูกใช้สำหรับสร้าง global variables และเปลี่ยนค่าตัวแปรใน local context กฏการใช้คีย์เวิร์ด global เมื่อสร้างตัวแปรขึ้นภายในฟังก์ชัน ตัวแปรนั้นจะเป็น local variable โดยอัตโนมัติ เมื่อสร้างตัวแปรขี้นนอกฟังก์ชัน ตัวแปรนั้นจะเป็น global variable โดยอัตโนมัติ โดยไม่ต้องใช้คีย์เวิร์ด global จำเป็นต้องใช้คีย์เวิร์ด global เมื่อต้องการทั้งอ่าน/เขียน ตัวแปร global ภายในฟังก์ชัน หากใช้คีย์เวิร์ด global ภายนอกฟังก์ชัน จะไม่มีผลใดๆ เพิ่มเติม การใช้คีย์เวิร์ด global ตัวอย่างการใช้งาน การเรียกดูของมูล global variable จากภายในฟังก์ชัน # สร้างฟังก์ชันสำหรับคำนวณหาระยะทางที่วัตถุเคลื่อนที่ไป โดยทราบความเร็วคงที่ของวัตถุ และระยะเวลาที่ใช้ในการเดินทาง(ในกรณีที่วัตถุดังกล่าวไม่เคลื่อนที่โดยมีความเร่ง) อ้างอิงจากสมการ s = v Read more about Python – คีย์เวิร์ด global[…]

Python – การใช้งาน global, local, nonlocal

Python – การใช้งาน global, local, nonlocal รู้จักกับ Global Variables โดยทั่วไปแล้วตัวแปรที่ประกาศภายนอกฟังก์ชันหรือใน global scope จะเรียกตัวแปรนั้นว่าเป็น global variable และขอบเขตที่สามารถจะเรียกใช้ตัวแปรนี้ จะถูกเรียกดูข้อมูลได้ทั้งภายในและภายนอกฟังก์ชัน แต่จะสามารถแก้ไขตัวแปรนี้ได้ใน global scope เท่านั้นไม่สามารถทำการแก้ไขได้ภายในฟังก์ชันได้ ตัวอย่างการใช้งาน # ฟังก์ชันสำหรับคำนวณเลขยกกำลัง # ตัวอย่างเช่น 10^3 = 10 x 10 x 10 def calculate_power(power): total = 1 for i in range(1, power+1): total *= base return total # กำหนดค่าของฐานเป็น 10 ซึ่งตัวแปร base เป็น global Read more about Python – การใช้งาน global, local, nonlocal[…]