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[…]

Python – Anonymous function

Python – Anonymous function anonymous ฟังก์ชัน คือฟังก์ชันที่ประกาศขึ้นมาโดยไม่ทำการระบุชื่อของฟังก์ชันในการเรียกใช้งาน สำหรับการประกาศฟังก์ชันโดยทั่วไปต้องระบุคีย์เวิร์ด def ไว้หน้าชื่อของฟังก์ชัน เช่น def calculate_price: แต่สำหรับฟังก์ชันแบบ anonymous นั้น จะระบุการประกาศฟังก์ชันโดยใช้คีย์เวิร์ด lambda แทน เราจึงสามารถเรียกฟังก์ชันแบบนี้ว่า lambda ฟังก์ชันได้เช่นเดียวกัน โครงสร้างการใช้งาน anonymous ฟังก์ชัน lambda <ตัวแปร1, ตัวแปร2 …>: <ประโยคคำสั่งของฟังก์ชัน> การสร้างฟังก์ชัน anonymous(lambda ฟังก์ชัน)นี้ เราสามารถทำการกำหนดข้อมูลตัวแปรที่ส่งเข้าไปกี่ตัวก็ได้ขึ้นอยู่กับจุดประสงค์การทำงานของฟังก์ชันที่เราเขียนขึ้นมา แต่สามารถระบุ ประโยคคำสั่ง ได้แค่คำสั่ง(expression)เดียวเท่านั้น โดยโปรแกรมจะทำการประมวลผลข้อมูลที่ป้อนเข้าไปด้วยคำสั่งที่กำหนด แล้วจึงคืนผลลัพท์ออกมา ตัวอย่างการใช้งานของฟังก์ชัน lambda # สร้าง anonymous ฟังก์ชันสำหรับแปลงข้อมูลในหน่วยเซนติเมตร เป็นหน่วยฟุต length_in_foot = lambda length_in_cm: length_in_cm * 0.032808 # กำหนดความยาวในหน่วยเซนติเมตร Read more about Python – Anonymous function[…]

Python – recursive function

การใช้งานฟังก์ชันแบบ recursive ในการใช้งานฟังก์ชันนั้น นอกจากเราจะระบุชุดคำสั่งเพื่อดำเนินการแล้ว เรายังสามารถจะเรียกใช้งานฟังก์ชันอื่นจากในฟังก์ชันได้ และสามารถเรียกใช้ตัวฟังก์ชันตัวเองซ้อนกันได้อีกด้วย ซึ่งการเขียนฟังก์ชันที่มีการเรียกใช้ฟังก์ชันตัวเองนั้นเราจะเรียกการใช้งานแบบนี้ว่า ฟังก์ชัน recursive ตัวอย่างการใช้งาน # สร้างฟังก์ชันสำหรับการคำนวณแฟคทอเรียล(n!) def factorial(n): # ตรวจสอบข้อมูลตัวเลข หากเป็นจำนวนลบ ให้แจ้งข้อผิดพลาด if n < 0: raise ValueError("กรุณาระบุข้อมูลเป็นตัวเลขจำนวนเต็มบวก สำหรับการคำนวณแฟคทอเรียล") # ตรวจสอบข้อมูลตัวเลข หากเป็น 0 ผลลัพท์ของแฟคทอเรียลคือ 1 elif n==0 : return 1 # ตรวจสอบข้อมูลตัวเลข หากเป็นจำนวนเต็มมีค่าตั้งแต่ 1 ขึ้นไป ให้เรียกฟังก์ชันตัวเองซ้อนลงไปเรื่อยๆ เพื่อคำนวณหาแฟคทอเรียล n x (n-1)! elif n > 0: return n*factorial(n-1) n = 6 Read more about Python – recursive function[…]

Python – Function argument

Python – Function argument ในการสร้างฟังก์ชันขึ้นมาใช้งานเอง(user-defined function) บางกรณีฟังก์ชันที่เราสร้างอาจต้องการข้อมูลประกอบเพื่อใช้ในการประมวลผลเพื่อให้ได้ผลลัพท์ตามต้องการ จึงต้องมีการส่งข้อมูลซึ่งอาจเป็นข้อมูลเดียวหรือหลายข้อมูลเข้าไปในฟังก์ชัน เพื่อให้สามารถประมวลผลตามแต่จุดประสงค์การใช้งานของฟังก์ชันนั้นนั้นๆ 1. การสร้างฟังก์ชันแบบจำเป็นต้องระบุข้อมูลให้ครบตามจำนวนข้อมูลที่ฟังก์ชันต้องการและเรียงลำดับตามที่ประกาศเสมอ การสร้างฟังก์ชันในรูปแบบนี้ เราจำเป็นต้องทำการส่งข้อมูลเข้าไปให้ฟังก์ชันแบบเรียงลำดับตามที่กำหนดไว้ตอนประกาศฟังก์ชัน และจำนวนของข้อมูลนั้นต้องเท่ากันกับจำนวนข้อมูลที่ฟังก์ชันต้องการเสมอ หากทำการป้อนข้อมูลเข้าไปไม่ครบหรือเรียงลำดับของข้อมูลที่ส่งเข้าไปผิดลำดับ ก็อาจทำให้โปรแกรมประมวลผลข้อมูลผิดพลาดได้ ตัวอย่างการใช้งาน import math # ฟังก์ชันคำนวณพื้นที่ของสี่เหลี่ยมจัตุรัสโดยรับข้อมูล: ความยาวของด้าน(d) def calculate_square_area(d): square_area = d * d return square_area # ฟังก์ชันคำนวณพื้นที่ของสามเหลี่ยมโดยรับข้อมูล: ความยาวฐาน(b) และความสูง(h) def calculate_triangle_area(b, h): triangle_area = (1.0/2.0) * b * h return triangle_area # ฟังก์ชันคำนวณพื้นที่ของวงกลมโดยรับข้อมูล: รัศมีของวงกลม(r) def calculate_circle_area(d): circle_area = math.pi Read more about Python – Function argument[…]

Python – Function

Python – function ฟังก์ชันคือการจัดกลุ่มของชุดคำสั่งที่ต้องใช้ในการทำงานร่วมกัน เพื่อให้โปรแกรมมีผลลัพท์ตามเป้าหมายที่กำหนดไว้ การสร้างเป็นฟังก์ชันนั้นจะช่วยในการจัดกลุ่มของชุดคำสั่งที่เราเขียนให้แยกเป็นกลุ่มๆ ตามเป้าหมายของการทำงาน ทำให้สะดวกในการเรียกใช้และยังช่วยให้สามารถแก้ไขหรือค้นหาได้สะดวกขึ้น เพราะเมื่อเราทำการเขียนโปรแกรมที่ซับซ้อนขึ้น จำนวนบรรทัดของคำสั่งก็มากขึ้นตาม ทำให้หากไม่ทำการจัดกลุ่มคำสั่งเป็นชุดๆ จะทำให้ลำบากในการทำการแก้ไขหรือเรียกใช้ในภายหลัง การสร้างฟังก์ชันนั้นนอกจากจะช่วยแบ่งคำสั่งเป็นกลุ่มย่อยๆ แล้วยังทำให้เราสามารถเรียกใช้ชุดคำสั่งนั้นซ้ำๆ ได้โดยไม่ต้องเขียนคำสั่งชุดเดิมใหม่อีกด้วย โครงสร้างฟังก์ชัน # ฟังก์ชันที่ไม่มีการส่งข้อมูลเข้าไป และไม่ทำการคืนค่าข้อมูล def <ชื่อฟังก์ชัน<(): <คำสั่งของฟังก์ชัน1> <คำสั่งของฟังก์ชัน2> … # ฟังก์ชันที่มีการส่งข้อมูลเข้าไป แต่ไม่ทำการคืนค่าข้อมูล def <ชื่อฟังก์ชัน<(<ตัวแปร1>, <ตัวแปร2>, …): <คำสั่งของฟังก์ชัน1> <คำสั่งของฟังก์ชัน2> … # ฟังก์ชันที่มีการส่งข้อมูลเข้าไป และมีการคืนค่าข้อมูล def <ชื่อฟังก์ชัน<(<ตัวแปร1>, <ตัวแปร2>, …): <คำสั่งของฟังก์ชัน1> <คำสั่งของฟังก์ชัน2> … return <ผลลัพท์ที่ต้องการส่งกลับไปให้ส่วนที่เรียกใช้ฟังก์ชัน> ตัวอย่างการใช้งานฟังก์ชัน import datetime # ฟังก์ชันสำหรับทำการปรินท์ค่าข้อมูลวันที่ของวันนี้ ซึ่งเป็นฟังก์ชันที่ไม่มีการส่งข้อมูลเข้าไป และไม่มีการคืนค่า def print_current_date(): Read more about Python – Function[…]

Python – Pass

Python – Pass คีย์เวิร์ด pass นั้นคือคำสั่งหนึ่งที่ระบุว่าไม่มีการดำเนินการใดๆ ในบรรทัดนั้น มักจะใช้ในกรณีที่มีการวางโครงสร้างโปรแกรมเอาไว้ แต่ยังไม่ได้ลงรายละเอียดในการระบุคำสั่ง การใช้คีย์เวิร์ด pass นี้ จะต่างกับการใช้คอมเมนท์ตรงที่ หากเป็นการเขียนคอมเมนท์(comment) ตัวแปลภาษาจะไม่ทำการแปลผลโค้ดในส่วนดังกล่าวให้เป็นภาษาที่คอมพิวเตอร์เข้าใจและใช้ดำเนินการ แต่สำหรับการใช้คีย์เวิร์ด pass นั้น ตัวแปลภาษาจะประมวลผลโค้ดส่วนดังกล่าวเป็นภาษาที่คอมพิวเตอร์เข้าใจ ซึ่งตัวคำสั่ง pass เองนั้นทำการระบุว่า ยังไม่ต้องการให้มีการกระทำการใดๆ ตรงบรรทัดนี้ โครงสร้างของ pass # เรียกใช้คีย์เวิร์ด pass pass การใช้งานคีย์เวิร์ด pass สำหรับคลาส สามารถใช้คีย์เวิร์ด pass สำหรับคลาสในส่วนของบล๊อกคำสั่งของคลาส โดยใช้คีย์เวิร์ด pass เพื่อเป็นการบอกว่ายังไม่มีการกำหนดตัวแปร หรือฟังก์ชันใดๆ สำหรับคลาสดังกล่าว ตัวอย่างการใช้งาน class room(): # กำหนดคลาสสำหรับเก็บข้อมูลห้องเรียน แต่ยังไม่มีการระบุรายละเอียดของคำสั่งสามารถเรียกใช้จากคลาสนี้ได้ pass # สร้างออบเจคของคลาส เพื่อจะสามารถเข้าถึงการใช้งานของตัวแปรและฟังก์ชัน r = room() การใช้งานคีย์เวิร์ด Read more about Python – Pass[…]

Python – break และ continue

break และ continue การใช้ break และ continue จะใช้เมื่อต้องการที่จะเพิ่มข้อยกเว้นจากเงื่อนไขการทำงานของลูป เพราะในบางกรณีเราอาจต้องการที่จะข้ามการทำงานบางรอบของลูป หรือต้องการที่จะยุติการทำงานของลูปก่อนจะครบตามเงื่อนไขเดิมที่กำหนดไว้ด้วยข้อยกเว้นบางอย่าง การใช้ break จะยุติการทำงานทั้งหมดของลูปที่บรรจุคำสั่ง break เอาไว้ แต่ในกรณีการใช้ break กับลูปที่ซ้อนกันหลายชั้น(nested-loop) โปรแกรมจะทำการยุติการทำงานเฉพาะแค่ลูปในสุดที่บรรจุคำสั่งนั้นอยู่เท่านั้น โดยที่ลูปชั้นนอกยังคงดำเนินการต่อไป โครงสร้างของ break # โครงสร้างการใช้ break กับ for loop for <data> in <sequence_of_data>: if <test_condition>: break # โครงสร้างการใช้ break กับ while loop while <test_condition1>: if <test_condition2>: break ตัวอย่างการใช้งาน # คะแนนของนักเรียนทั้งหมด student_scores = [90, 40, 71, 52, Read more about Python – break และ continue[…]