เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

ฟังก์ชันซ้อนใน (Nested Functions) I

ในวิดีโอที่ผ่านมา คุณได้เรียนรู้เรื่องการซ้อนฟังก์ชันไว้ภายในฟังก์ชัน ซึ่งเป็นวิธีที่ช่วยให้ไม่ต้องเขียนโค้ดคำนวณซ้ำกันหลายครั้ง การนิยาม nested function ไม่มีอะไรซับซ้อน เพียงใช้ def เหมือนฟังก์ชันปกติ แล้ว embed ไว้ภายในฟังก์ชันอื่น

ในแบบฝึกหัดนี้ ให้นิยามฟังก์ชันซ้อนใน inner() ไว้ภายในฟังก์ชัน three_shouts() โดย inner() จะทำหน้าที่ต่อ string เข้ากับ !!! จากนั้น three_shouts() จะ return tuple ที่มี 3 elements ซึ่งแต่ละ element คือ string ที่ผ่านการต่อด้วย !!! โดยใช้ inner() ลองทำได้เลย!

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

Python เบื้องต้น: การเขียนฟังก์ชัน

ดูคอร์ส

คำแนะนำการฝึกหัด

  • กำหนด function header ของฟังก์ชันซ้อนใน โดยตั้งชื่อว่า inner() และมีพารามิเตอร์ 1 ตัวชื่อ word
  • กำหนด return value โดยแต่ละ element ใน tuple ต้องเป็นการเรียกใช้ inner() และส่งพารามิเตอร์จาก three_shouts() เป็น argument ในแต่ละครั้ง

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# Define three_shouts
def three_shouts(word1, word2, word3):
    """Returns a tuple of strings
    concatenated with '!!!'."""

    # Define inner
    def ____(____):
        """Returns a string concatenated with '!!!'."""
        return word + '!!!'

    # Return a tuple of strings
    return (____, ____, ____)

# Call three_shouts() and print
print(three_shouts('a', 'b', 'c'))
แก้ไขและรันโค้ด