6: Function

6-1: Function Call

** ถ้าใช้งานบนมือถือหรือ tablet แนะนำให้ใช้ Chrome หรือ Safari เท่านั้น **

แบบฝึกหัด 6-1 ข้อที่ 1

จงเขียนคำสั่งแสดงคำร้องของเพลง Happy Birthday to You ข้าง ๆ นี้ โดยการเรียกใช้ฟังก์ชัน sing ให้เป็นประโยชน์

def sing(msg, times): for k in range(times): print( msg ) def sing(msg, times): for k in range(times): print( msg ) sing("Happy Birthday to You", 2) sing("Happy Birthday", 2) sing("Happy Birthday to You", 1) msg0 = "น่าจะต้องเรียก sing นะ" msg1 = "น่าจะต้องเรียก sing อีกนะ" msg2 = "ใช้ sing ครั้งแรกน่าจะร้อง Happy Birthday to You สองครั้ง" msg3 = "ใช้ sing ครั้งที่สองน่าจะร้อง Happy Birthday สองครั้ง" msg4 = "ใช้ sing ครั้งสุดท้ายน่าจะร้อง Happy Birthday to You แค่หนึ่งครั้ง" func = Ex().check_function("sing",0, missing_msg=msg0) func.check_args("msg").has_equal_value(incorrect_msg=msg2) func.check_args("times").has_equal_value(incorrect_msg=msg2) func = Ex().check_function("sing",1, missing_msg=msg1) func.check_args("msg").has_equal_value(incorrect_msg=msg3) func.check_args("times").has_equal_value(incorrect_msg=msg3) func = Ex().check_function("sing",2, missing_msg=msg1) func.check_args("msg").has_equal_value(incorrect_msg=msg4) func.check_args("times").has_equal_value(incorrect_msg=msg4)
แบบฝึกหัด 6-1 ข้อที่ 2

จงเขียนคำสั่งในฟังก์ชัน HBD(name) ให้แสดงคำร้องอวยพรวันเกิดระบุชื่อคนด้วย ดังตัวอย่างข้าง ๆ นี้ (สีแดงคือชื่อคน) ภายใน HDB ต้องเรียกใช้ฟังก์ชัน sing ให้เป็นประโยชน์ โดยในโปรแกรมข้างล่างนี้มีฟังก์ชัน sing และมีคำสั่งรับชื่อ แล้วเรียก HBD ให้แสดงคำร้องอวยพรวันเกิดให้แล้ว

___inp___ = ["Lisa"] def input(): t = ___inp___.pop(0) ___inp___.append(t) return t def sing(msg, times): for k in range(times): print( msg ) def HBD(name): sing( ??? ) sing( ??? ) sing( ??? ) name = input() HBD(name) def sing(msg, times): for k in range(times): print( msg ) def HBD(name): sing("Happy Birthday to You", 2) sing("Happy Birthday Dear " + name, 1) sing("Happy Birthday to You", 1) name = input() HBD(name) msg0 = "น่าจะต้องเรียก sing ใน HBD นะ" msg1 = "น่าจะต้องเรียก sing ใน HBD อีกนะ" msg2 = "ใช้ sing ครั้งแรกน่าจะร้อง Happy Birthday to You สองครั้ง" msg3 = "ใช้ sing ครั้งที่สองน่าจะร้อง Happy Birthday Dear ตามด้วยชื่อ หนึ่งครั้ง" msg4 = "ใช้ sing ครั้งสุดท้ายน่าจะร้อง Happy Birthday to You หนึ่งครั้ง" Ex().check_function_def('HBD').check_body().set_context("Jenny").multi( check_function("sing",0, missing_msg=msg0).check_args("msg").has_equal_value(incorrect_msg=msg2), check_function("sing",0).check_args("times").has_equal_value(incorrect_msg=msg2), check_function("sing",1, missing_msg=msg1).check_args("msg").has_equal_value(incorrect_msg=msg3), check_function("sing",1).check_args("times").has_equal_value(incorrect_msg=msg3), check_function("sing",2, missing_msg=msg1).check_args("msg").has_equal_value(incorrect_msg=msg4), check_function("sing",2).check_args("times").has_equal_value(incorrect_msg=msg4) )