ทำให้โค้ดของคุณเข้าใจ ใช้งาน และบำรุงรักษาได้ง่ายขึ้น

หากคุณจำได้ เราใช้ฟังก์ชันในตัวใน บทช่วยสอนล่าสุด เช่น 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 ของเรา