ฟังก์ชั่น
จนถึงตอนนี้ เราได้เขียนโค้ดทั้งหมดของเราใน app.py แต่เมื่อโปรแกรมของเราเติบโตขึ้น เราต้องการวิธีที่ดีกว่าในการจัดระเบียบโค้ดของเรา เราจำเป็นต้องแบ่งโค้ดของเราออกเป็นส่วนย่อยที่เล็กกว่า จัดการได้มากขึ้น และสามารถบำรุงรักษาได้มากขึ้น ซึ่งเราเรียกว่าฟังก์ชัน ฟังก์ชันนี้เป็นคอนเทนเนอร์สำหรับโค้ดสองสามบรรทัดที่ทำงานเฉพาะ
ตัวอย่างเช่น คุณได้เรียนรู้เกี่ยวกับฟังก์ชันในตัวบางอย่างใน Python . แล้ว print()
และ input()
. แต่ละหน้าที่มีวัตถุประสงค์และรู้วิธีปฏิบัติงานเฉพาะอย่าง ดังนั้น เมื่อเราสร้างโปรแกรมที่ซับซ้อนขนาดใหญ่ เราควรแบ่งโค้ดของเราออกเป็นชิ้นเล็กๆ ที่นำกลับมาใช้ใหม่ได้ เช่น ฟังก์ชัน
ให้เราเข้าใจแนวคิดนี้ด้วยการสร้างโปรแกรมสำหรับพิมพ์ข้อความทักทาย
print('Hi there!')
print('Welcome aboard!')
ที่นี่เรามีโปรแกรมง่ายๆ ที่มีโค้ดเพียงสองบรรทัด ทีนี้ สมมติว่า เราต้องการมันในโปรแกรมอื่น เพื่อให้มันอยู่ในฟังก์ชันที่เราสามารถนำกลับมาใช้ใหม่ได้
ให้ฉันแนะนำคำหลักที่สงวนไว้ def
ใน Python ซึ่งย่อมาจาก define และใช้สำหรับกำหนดฟังก์ชัน
def greet_user():
print('Hi there!')
print('Welcome aboard!')
ตอนนี้บล็อกของรหัสนี้จะกำหนดฟังก์ชัน "greet_user
” ด้วยบรรทัดของรหัสหลังจากนั้น เมื่อใดก็ตามที่เรียกใช้ฟังก์ชันนี้ สองบรรทัดนี้จะถูกดำเนินการ ลองใช้สิ่งนี้:
print('start')
greet_user()
print('finish')
โปรแกรมจะดำเนินการตามลำดับ หมายความว่าคุณจะต้องกำหนดฟังก์ชันก่อนที่จะเรียกใช้ในโปรแกรม
พารามิเตอร์
ฟังก์ชันที่กำหนดไว้ทำงานแตกต่างไปจากฟังก์ชันในตัวของ Python เล็กน้อย ตัวอย่างเช่น ในกรณีของ print()
เป็นฟังก์ชันที่ใช้ข้อมูลบางอย่างที่เราต้องการพิมพ์ แต่ฟังก์ชัน Greet ของเราไม่รับข้อมูลใดๆ จะดีกว่าไหมถ้าคุณสามารถส่งชื่อของผู้ใช้ที่นี่ แล้วแทนที่จะพูดว่า "สวัสดี" คุณสามารถพิมพ์ชื่อของผู้ใช้ได้
คุณสามารถทำได้โดยการเพิ่มพารามิเตอร์ภายในวงเล็บของฟังก์ชันที่กำหนด ให้ผมแสดง:
def greet_user(name):
print('Hi there!')
print('Welcome aboard!')
ตอนนี้ “name
” ภายในวงเล็บจะทำหน้าที่เป็นตัวแปรท้องถิ่นและเราสามารถส่งชื่อผู้ใช้เมื่อเรียกมัน
greet_user('Shahbaz')
ตอนนี้พารามิเตอร์ชื่อถูกตั้งค่าเป็น “Shahbaz
” มาปรับเปลี่ยนโปรแกรมใช้งานกันเถอะ
def greet_user(name):
print(f'Hi {name}')
print('Welcome aboard!')
print('start')
greet_user('Shahbaz')
print('finish')
สิ่งสำคัญที่ควรทราบคือ "ชื่อ" ในบรรทัดแรกเรียกว่า Parameter ในขณะที่ชื่อที่ระบุเช่น Shahbaz เรียกว่าอาร์กิวเมนต์
ไปข้างหน้าและเรียกใช้โปรแกรมนี้
ด้วยพารามิเตอร์เหล่านี้ เราสามารถรับข้อมูลในฟังก์ชันของเราได้
เอาล่ะ มาทำอะไรที่น่าสนใจกัน สมมติว่าคุณต้องการเพิ่มชื่ออื่นในข้อความทักทาย มันง่าย
def greet_user(name):
print(f'Hi {name}')
print('Welcome aboard!')
print('start')
greet_user('Shahbaz')
greet_user('Aayush')
print('finish')
โปรดทราบว่าเมื่อฟังก์ชันมีพารามิเตอร์ เราจำเป็นต้องส่งค่าสำหรับพารามิเตอร์นั้น หากคุณลบชื่อออกจากฟังก์ชันและเรียกใช้โปรแกรม เราจะได้รับข้อผิดพลาด คุณยังสามารถใช้พารามิเตอร์หลายตัวในฟังก์ชันเดียว โดยคั่นด้วยเครื่องหมายจุลภาค
ตัวอย่างเช่น greet_user(first_name, last_name):
. อาร์กิวเมนต์จะถูกจัดรูปแบบในทำนองเดียวกัน
อาร์กิวเมนต์คำหลัก
จนถึงตอนนี้ เราได้เรียนรู้ว่าเมื่อใดก็ตามที่เรากำหนดพารามิเตอร์สำหรับฟังก์ชันของเรา เราควรระบุค่าเสมอ ไม่เช่นนั้นเราจะเกิดข้อผิดพลาด ในโปรแกรมสุดท้าย อาร์กิวเมนต์ 'Shahbaz'
และ 'Bhatti'
เรียกว่าอาร์กิวเมนต์ตำแหน่งซึ่งหมายถึงตำแหน่งหรือลำดับในโปรแกรม
ใน Python เรามีอาร์กิวเมนต์อีกประเภทหนึ่งที่เรียกว่า อาร์กิวเมนต์คำหลัก ซึ่งตำแหน่งไม่สำคัญ ให้ฉันแสดงให้คุณเห็นว่าพวกเขาทำงานอย่างไร
ดูโปรแกรมสุดท้าย เราสามารถปรับเปลี่ยนได้ดังนี้
def greet_user(first_name, last_name):
print(f'Hi {first_name} {last_name}')
print('Welcome aboard!')
print('start')
greet_user(first_name='Shahbaz', last_name='Bhatti')
print('finish')
ตอนนี้ first_name
และ last_name
คือพารามิเตอร์ของคีย์เวิร์ด คุณสามารถเปลี่ยนสถานที่และผลลัพธ์จะเหมือนกัน
ไม่ได้หมายความว่าเราควรใช้อาร์กิวเมนต์คำหลักเสมอ ส่วนใหญ่เราใช้อาร์กิวเมนต์ตำแหน่ง แต่ในบางสถานการณ์ อาร์กิวเมนต์ของคีย์เวิร์ดเหล่านี้ช่วยเราปรับปรุงความสามารถในการอ่านโค้ดของเรา
มีอีกสิ่งหนึ่งที่คุณต้องรู้เกี่ยวกับอาร์กิวเมนต์ของคำหลัก อาร์กิวเมนต์ของคีย์เวิร์ดควรอยู่หลังอาร์กิวเมนต์ตำแหน่งเสมอ
ส่งคืนใบแจ้งยอด
จนถึงตอนนี้ เราได้เรียนรู้วิธีสร้างฟังก์ชันและส่งข้อมูลโดยใช้พารามิเตอร์ ตอนนี้ มาเรียนรู้วิธีสร้างฟังก์ชันที่คืนค่า สิ่งนี้มีประโยชน์อย่างยิ่ง หากคุณกำลังทำการคำนวณบางอย่าง และคุณต้องการส่งคืนผลลัพธ์ให้กับใครก็ตามที่ใช้ฟังก์ชันของคุณ ให้ผมแสดง.
มากำหนดฟังก์ชันที่จะคำนวณกำลังสองของตัวเลขกัน
def square(number):
return number*number
เราใช้คำสั่ง return เพื่อส่งคืนหมายเลขนี้นอกฟังก์ชัน ทีนี้ ถ้าเราเรียกฟังก์ชันนี้ มันจะคืนค่าเหมือนกับ input()
การทำงาน. มาพิมพ์บนเทอร์มินัลกันเถอะ
คุณสามารถโต้แย้งว่าสามารถรับผลลัพธ์เดียวกันได้โดยไม่ต้องใช้คำสั่งส่งคืน ลองตรวจสอบดู
เราเห็นสองสิ่ง เลข 9 และไม่มี เกิดอะไรขึ้นที่นี่?
เมื่อล่าม Python รันโค้ดนี้ อันดับแรกจะเรียกใช้ฟังก์ชันสแควร์และตัวควบคุมจะย้ายไปยังฟังก์ชัน ที่นี่เราคำนวณกำลังสองของตัวเลขที่กำหนดแล้วพิมพ์ลงบนเทอร์มินัล
ตามค่าเริ่มต้น ฟังก์ชันทั้งหมดจะคืนค่า none ดังนั้นหากเราไม่มีคำสั่ง return ที่นี่ โดยค่าเริ่มต้น Python จะคืนค่า none none เป็นอ็อบเจ็กต์ที่แสดงถึงการไม่มีค่า มันเหมือนกับไม่มีอะไรหรือเป็นโมฆะใน C, C++, Java และ Javascript
สรุป!
ฉันหวังว่าคุณจะเข้าใจถึงความสำคัญของฟังก์ชัน
สิ่งเหล่านี้เป็นส่วนสำคัญของการเรียนรู้ Python หากคุณวางแผนที่จะเขียนโปรแกรมขนาดใหญ่และซับซ้อนระหว่างอาชีพการเขียนโค้ดของคุณ
เขียนความเห็น