ทำให้โค้ดของคุณเข้าใจ ใช้งาน และบำรุงรักษาได้ง่ายขึ้น
หากคุณจำได้ เราใช้ฟังก์ชันในตัวใน บทช่วยสอนล่าสุด เช่น print() หรือ type() แต่คุณสามารถสร้างฟังก์ชันของคุณเองได้ — เรียกว่าฟังก์ชันที่ผู้ใช้กำหนดหรือ UDF
ฟังก์ชัน สามารถถือเป็นกฎที่กำหนดชุดอินพุตให้กับชุดเอาต์พุตดังที่แสดงด้านล่าง
ในบทช่วยสอนนี้ คุณจะได้เรียนรู้เพิ่มเติมเกี่ยวกับการกำหนดและการใช้ฟังก์ชันของคุณเอง
เมื่อใดและเพราะเหตุใดจึงต้องใช้ฟังก์ชันในโค้ดของคุณ
โปรแกรมเมอร์ส่วนใหญ่ทำงานที่มีขนาดใหญ่พอที่จะแบ่งออกเป็นงานย่อยได้
แทนที่จะเขียนชุดคำสั่งชุดใหญ่เพียงชุดเดียว คุณสามารถแบ่งโปรแกรมออกเป็นฟังก์ชันเล็กๆ หลายๆ ฟังก์ชันได้ ซึ่งช่วยให้คุณสามารถ “แบ่งและพิชิต” ปัญหาการเขียนโปรแกรมได้
อีกเหตุผลหนึ่งในการใช้ฟังก์ชันคือการลดจำนวนบรรทัดที่คุณเขียน
หากคุณกำลังจะใช้โค้ดหลายครั้งในแอปพลิเคชันของคุณ คุณคงไม่อยากคัดลอกและวางบรรทัดเดิมหลายๆ ครั้งในโค้ดของคุณ มันไม่มีประสิทธิภาพและดูน่าเกลียด :) โปรดจำประโยคต่อไปนี้ไว้ในใจ:
แห้ง — อย่าทำซ้ำตัวเอง
การกำหนดและการเรียกใช้ฟังก์ชัน
ฟังก์ชันคือกลุ่มของโค้ดที่ทำงาน โดยขึ้นต้นด้วยตัวระบุ def ตามด้วย ชื่อฟังก์ชัน และวงเล็บ () โดยมี เครื่องหมายโคลอน ':'ที่ท้ายบรรทัด
ต้องตั้งชื่อและสร้างฟังก์ชันเช่นเดียวกับตัวแปรก่อนจึงจะสามารถใช้งานได้โดยใช้ตัวระบุ def
- ทุกคำสั่งภายในฟังก์ชันของคุณจะต้องเยื้อง (ช่องว่าง 4 ช่องหรือหนึ่งแท็บ)
- หากฟังก์ชันของคุณต้องการ อินพุต อย่างน้อย 1 รายการ (เรียกว่า อาร์กิวเมนต์) ในการคำนวณ คุณจะต้องวางไว้ภายในวงเล็บ()
- คำสั่ง return ออกจากฟังก์ชันที่ส่งคืนศูนย์ หรือเอาต์พุตตั้งแต่หนึ่งรายการขึ้นไป
เมื่อคุณเรียกใช้ฟังก์ชันที่คุณบอกว่าคุณ “เรียกใช้” ฟังก์ชันนั้น เมื่อคำนวณฟังก์ชันแล้ว Python จะกลับไปที่บรรทัดโดยตรงหลังจากการเรียกใช้ฟังก์ชันครั้งแรก
ฝึกฝน
ฟังก์ชั่นเมนูเครื่องดื่ม
ตัวอย่างเช่น พิจารณาว่าคุณถูกขอให้เขียนโปรแกรมฟังก์ชัน Python สำหรับเมนูเครื่องดื่มที่ร้านอาหาร สมมติว่าเครื่องดื่มแก้วเล็กราคา 1.50 ดอลลาร์ เครื่องดื่มขนาดกลางราคา 2.50 ดอลลาร์ และเครื่องดื่มขนาดใหญ่ราคา 3.50 ดอลลาร์
ราคาเครื่องดื่มจะขึ้นอยู่กับขนาดของเครื่องดื่ม ดังนั้นราคาเครื่องดื่มจึงอาจพิจารณาจากขนาด
วิธีง่ายๆ คือจับคู่ขนาดกับตัวเลข 1,2 และ 3 ราคาเครื่องดื่ม Y เท่ากับ 0.5 + X
X เท่ากับ 1 หากเครื่องดื่มมีขนาดเล็ก 2 หากเครื่องดื่มขนาดกลาง และ 3 หากขนาดใหญ่
def get_drink_price(size):
price = size + 0.5
return price
get_drink_price(1) #Returs 1.5
get_drink_price(2) #Returs 2.5
get_drink_price(3) #Returs 3.5
เมื่อโค้ดข้างต้นถูกดำเนินการ มันจะให้ผลลัพธ์ราคาที่ถูกต้อง
เจาะลึกลงไปอีกขั้นหนึ่งและกำหนดอาร์กิวเมนต์ขนาดเป็น S, M หรือ L อย่างถูกต้อง
def get_drink_price(reminder='Please try S, M or L'): ok = input('Choose your drink size ?\n') if ok in ('s', 'S'): return 1.5 elif ok in ('m', 'M'): return 2.5 elif ok in ('l', 'L'): return 3.5 else: print(reminder) get_drink_price() #Enter s, m or l to get the price of the drink
การเรียกใช้ฟังก์ชันจากไฟล์อื่น — โมดูล
เมื่อโปรแกรมของคุณมีความยาวมากขึ้น คุณอาจต้องการแบ่งออกเป็นหลายไฟล์เพื่อให้ง่ายต่อการบำรุงรักษา หรือที่เรียกว่า โมดูล คุณอาจต้องการใช้ฟังก์ชันที่มีประโยชน์ซึ่งคุณเขียนไว้ในหลายโปรแกรมโดยไม่ต้องคัดลอกคำจำกัดความลงในแต่ละโปรแกรม
โมดูลคือไฟล์ที่มีคำจำกัดความและคำสั่งของ Python ชื่อไฟล์คือชื่อโมดูลที่มีส่วนต่อท้าย .py
การแปลงอุณหภูมิจากเซลเซียสเป็นฟาเรนไฮต์
สคริปต์นี้แปลงอุณหภูมิระหว่างฟาเรนไฮต์เป็นเซลเซียส หากต้องการสร้างตัวแปลงหลามสำหรับเซลเซียสและฟาเรนไฮต์ คุณต้องค้นหาก่อนว่าจะใช้สูตรใด ค้นหา Google อย่างรวดเร็วและคุณพร้อมที่จะไป
(°F — 32) x 5/9 = °C หรือในภาษาอังกฤษธรรมดา ให้ลบ 32 ก่อนแล้วคูณด้วย 5 แล้วหารด้วย 9
ตัวอย่างเช่น ใช้โปรแกรมแก้ไขข้อความที่คุณชื่นชอบเพื่อสร้างไฟล์ชื่อ utils.py
ในไดเร็กทอรีปัจจุบันโดยมีเนื้อหาดังต่อไปนี้:
def convert_fahrenheit_to_celsius(fahrenheit): celsius = float(fahrenheit - 32) * (5 / 9) return celsius
def convert_celsius_to_fahrenheit(celsius): fahrenheit = (float(celsius) * 9 / 5 + 32) return fahrenheit
ฟังก์ชันทั้งสองสามารถใช้งานได้โดยสคริปต์แยกกัน ตราบใดที่ชื่อไฟล์และฟังก์ชันถูกนำเข้าในสคริปต์แยกกันก่อน
จำเป็นอย่างยิ่งที่ไฟล์ซึ่งมีคำจำกัดความของฟังก์ชันจะลงท้ายด้วยนามสกุล .py หากไม่มีนามสกุล .py ไฟล์ที่มีการกำหนดฟังก์ชันไว้จะไม่สามารถนำเข้าได้
ตอนนี้คุณสามารถนำเข้าฟังก์ชันของคุณจากไฟล์ utils.py โดยใช้รหัสใดรหัสหนึ่งต่อไปนี้
นำเข้าฟังก์ชันทั้งหมดภายในไฟล์ .py
ตอนนี้ให้ป้อนล่าม Python และนำเข้าโมดูลนี้ด้วยคำสั่งต่อไปนี้:
import utils #Import all module functions utils.convert_fahrenheit_to_celsius()
นี่ไม่ได้ป้อนชื่อของฟังก์ชันที่กำหนดไว้ใน utils
โดยตรง มันป้อนเฉพาะชื่อโมดูล utils
ที่นั่น การใช้ชื่อโมดูลคุณสามารถเข้าถึงฟังก์ชันต่างๆ ได้โดยใช้สัญลักษณ์ '.':
นำเข้าฟังก์ชันเฉพาะในไฟล์ Python
มีตัวแปรของคำสั่ง import
ที่นำเข้าชื่อจากโมดูลลงในตารางสัญลักษณ์ของโมดูลที่นำเข้าโดยตรง ตัวอย่างเช่น:
from utils import convert_fahrenheit_to_celsius() from utils import * #Import all utils functions
convert_fahrenheit_to_celsius()
โมดูลสามารถมีคำสั่งปฏิบัติการได้ตลอดจนคำจำกัดความของฟังก์ชัน คำสั่งเหล่านี้มีวัตถุประสงค์เพื่อเริ่มต้นโมดูล พวกเขาจะถูกดำเนินการเฉพาะ ครั้งแรก ที่พบชื่อโมดูลในคำสั่งนำเข้า
ข้อมูลเพิ่มเติมเกี่ยวกับโมดูลในบทช่วยสอนถัดไป :)
บทสรุป
โปรแกรมเมอร์มักจะจัดโปรแกรมให้เป็นโค้ดที่เล็กลงและสามารถจัดการได้มากขึ้นโดยการเขียนฟังก์ชัน (UDF) คลาส และโมดูลของตนเอง
ฟังก์ชันมีประโยชน์สองประการ:
- อนุญาตให้โค้ดชิ้นเดียวกันทำงานหลายครั้ง
- แบ่งโปรแกรมขนาดยาวออกเป็นส่วนประกอบเล็กๆ ที่สามารถนำกลับมาใช้ใหม่ได้
- โปรแกรมเมอร์คนอื่นสามารถแชร์และใช้งานได้
ภาษาการเขียนโปรแกรมทั้งหมดมาพร้อมกับไลบรารีฟังก์ชันมาตรฐานหลายชุดที่ออกแบบมาเพื่อช่วยให้งานของคุณเป็นโปรแกรมเมอร์ง่ายขึ้น
หวังว่าทุกคนจะสนุกกับการอ่านบทช่วยสอนนี้ ขอบคุณสำหรับการอ่าน. เช่นเคย ไว้คราวหน้า! 😀
เนื้อหาเพิ่มเติมได้ที่ PlainEnglish.io ลงทะเบียนเพื่อรับ จดหมายข่าวรายสัปดาห์ฟรี ของเรา ติดตามเราบน Twitter และ LinkedIn ลองดู ความไม่ลงรอยกันของชุมชน ของเรา และเข้าร่วม Talent Collective ของเรา