หน้าแรก › โจทย์ฟรีรายข้อ › ครูผู้ช่วย วิชาเอกคอมพิวเตอร์
พิจารณาโปรแกรมภาษา Python ต่อไปนี้ ผลลัพธ์ที่แสดงคือข้อใด def…
พิจารณาโปรแกรมภาษา Python ต่อไปนี้ ผลลัพธ์ที่แสดงคือข้อใด def add(x, box=[]): box.append(x) return box print(add(1), add(2, []), add(3))
- ก.[1] [2] [3]
- ข.[1] [2] [1, 3]
- ค.[1, 3] [2] [1, 3]
- ง.[1, 2, 3] [2] [1, 2, 3]
ดูเฉลยและคำอธิบาย
คำตอบ: ค. [1, 3] [2] [1, 3]
ค่าเริ่มต้น box=[] ถูกสร้างครั้งเดียวตอนนิยามฟังก์ชัน add(1) และ add(3) จึงต่อท้ายลิสต์ตัวเดียวกัน ส่วน add(2, []) ใช้ลิสต์ใหม่ที่ส่งเข้าไป และ print ประเมินอาร์กิวเมนต์ครบทุกตัวก่อนแสดง ค่าแรกกับค่าที่สามจึงเป็นออบเจกต์เดียวกันคือ [1, 3]
[1] [2] [3] เข้าใจว่าสร้างลิสต์ใหม่ทุกครั้งที่เรียก · [1] [2] [1, 3] ลืมว่าค่าแรกคือลิสต์เดียวกับที่ถูกแก้ภายหลัง · [1, 2, 3] คิดว่า add(2, []) ไปต่อลิสต์ค่าเริ่มต้นด้วย
GorPass เป็นแนวข้อสอบจำลองที่ทีมงานเขียนและตรวจเทียบแหล่ง ไม่ใช่ข้อสอบของส่วนราชการใด · ดูบันทึกการตรวจและอัปเดตคลัง · พบจุดที่ควรแก้ แจ้งได้ที่ เกี่ยวกับ/ติดต่อ