คำแนะนำ: ข้อสอบชุดนี้เหมาะสำหรับผู้ที่ต้องการทดสอบความเข้าใจเกี่ยวกับภาษา Python ตั้งแต่พื้นฐานจนถึงระดับกลาง

- ส่วนที่ 1: พื้นฐาน Python (ข้อ 1 – 10)
- ส่วนที่ 2: ฟังก์ชันและโครงสร้างข้อมูล (ข้อ 11 – 20)
- ส่วนที่ 3: OOP และการจัดการข้อผิดพลาด (ข้อ 21 – 30)
ส่วนที่ 1: พื้นฐาน Python (ข้อ 1 – 10)
ข้อ 1: คำสั่ง type(10.5) จะให้ผลลัพธ์เป็นอะไร?
a) int
b) float
c) str
d) bool
เฉลย: b) float
ข้อ 2: ค่าของตัวแปร result คืออะไร?
result = 10 // 3
a) 3.33
b) 3
c) 4
d) 3.0
เฉลย: b) 3
// คือการหารแบบปัดเศษลง
ข้อ 3: bool([]) จะให้ค่าผลลัพธ์เป็นอะไร?
a) True
b) False
c) Error
d) None
เฉลย: b) False
ค่าที่ว่าง เช่น [], "", 0, None จะถูกแปลงเป็น False
ข้อ 4: โค้ดนี้แสดงผลอะไร?
x = 5
y = "5"
print(x + int(y))
a) 10
b) "55"
c) Error
d) "5 5"
เฉลย: a) 10
ใช้ int(y) แปลง "5" เป็นตัวเลขก่อนบวก
ข้อ 5: คำสั่ง range(2, 10, 2) สร้างลำดับตัวเลขอะไร?
a) [2, 4, 6, 8, 10]
b) [2, 4, 6, 8]
c) [2, 3, 4, 5, 6, 7, 8, 9]
d) Error
เฉลย: b) [2, 4, 6, 8]
ข้อ 6: ค่าของ x คืออะไร?
x = [1, 2, 3]
x.append([4, 5])
a) [1, 2, 3, 4, 5]
b) [1, 2, 3, [4, 5]]
c) Error
d) None
เฉลย: b) [1, 2, 3, [4, 5]]
ข้อ 7: 5 in [1, 2, 3, 4] ให้ค่าผลลัพธ์เป็นอะไร?
a) True
b) False
c) Error
d) None
เฉลย: b) False
ข้อ 8: ผลลัพธ์ของ print(bool("False")) คืออะไร?
a) True
b) False
c) Error
d) None
เฉลย: a) True
สตริงที่ไม่ว่างเปล่าจะถือเป็น True
ข้อ 9: คำสั่ง list("Python") ให้ผลลัพธ์เป็นอะไร?
a) ['Python']
b) ['P', 'y', 't', 'h', 'o', 'n']
c) Error
d) None
เฉลย: b) [‘P’, ‘y’, ‘t’, ‘h’, ‘o’, ‘n’]
ข้อ 10: โค้ดนี้แสดงผลอะไร?
x = "Hello"
print(x[::-1])
a) "olleH"
b) "Hello"
c) Error
d) "oHlle"
เฉลย: a) “olleH”
[::-1] ใช้สำหรับกลับสตริง
ส่วนที่ 2: ฟังก์ชันและโครงสร้างข้อมูล (ข้อ 11 – 20)
ข้อ 11: ผลลัพธ์ของโค้ดนี้คืออะไร?
def multiply(a, b=2):
return a * b
print(multiply(5))
a) 10
b) 5
c) None
d) Error
เฉลย: a) 10
ใช้ค่าเริ่มต้น (default argument) ที่ b=2 ดังนั้น multiply(5) คือ 5 * 2 = 10
ข้อ 12: ผลลัพธ์ของโค้ดนี้คืออะไร?
def add(a, b, c=5):
return a + b + c
print(add(2, 3))
a) 5
b) 10
c) 15
d) Error
เฉลย: b) 10
add(2, 3) จะใช้ c=5 ตามค่าเริ่มต้น ผลรวมคือ 2 + 3 + 5 = 10
ข้อ 13: ผลลัพธ์ของโค้ดนี้คืออะไร?
def show(*args):
for item in args:
print(item)
show("Python", 3.9, True)
a) "Python"3.9True
b) ('Python', 3.9, True)
c) Error
d) None
เฉลย: a)
*args รับอาร์กิวเมนต์หลายตัวในรูปแบบทูเพิลและวนลูปแสดงค่าทั้งหมด
ข้อ 14: ผลลัพธ์ของโค้ดนี้คืออะไร?
def greet(name, msg="สวัสดี"):
return f"{msg}, {name}!"
print(greet("Alice"))
print(greet("Bob", "Hello"))
a)
สวัสดี, Alice!
Hello, Bob!
b)
สวัสดี, Alice!
สวัสดี, Bob!
c)
Hello, Alice!
Hello, Bob!
d) Error
เฉลย: a)
greet("Alice") ใช้ข้อความเริ่มต้น "สวัสดี" ส่วน greet("Bob", "Hello") ใช้ "Hello" ที่ส่งเข้าไป
ข้อ 15: ผลลัพธ์ของโค้ดนี้คืออะไร?
nums = [1, 2, 3, 4, 5]
squared = [x**2 for x in nums if x % 2 == 0]
print(squared)
a) [1, 4, 9, 16, 25]
b) [4, 16]
c) [2, 4]
d) Error
เฉลย: b) [4, 16]
List comprehension จะเก็บค่ากำลังสองของเลขคู่ (2 และ 4) จาก nums
ข้อ 16: ผลลัพธ์ของโค้ดนี้คืออะไร?
numbers = (1, 2, 3)
x, y, z = numbers
print(x, y, z)
a) (1, 2, 3)
b) 1 2 3
c) (x, y, z)
d) Error
เฉลย: b) 1 2 3
การ unpacking ทูเพิลทำให้ x=1, y=2, z=3
ข้อ 17: ผลลัพธ์ของโค้ดนี้คืออะไร?
fruits = {"apple", "banana", "cherry"}
fruits.add("banana")
print(len(fruits))
a) 2
b) 3
c) 4
d) Error
เฉลย: b) 3
set ไม่เก็บค่าที่ซ้ำกัน แม้จะ add("banana") ซ้ำ แต่จำนวนยังเป็น 3
ข้อ 18: ผลลัพธ์ของโค้ดนี้คืออะไร?
colors = {"red": 1, "green": 2}
colors["blue"] = 3
print(colors)
a) {'red': 1, 'green': 2}
b) {'red': 1, 'green': 2, 'blue': 3}
c) {'blue': 3}
d) Error
เฉลย: b) {‘red’: 1, ‘green’: 2, ‘blue’: 3}
การเพิ่ม key ใหม่ลงใน dictionary ด้วย colors["blue"] = 3
ข้อ 19: ผลลัพธ์ของโค้ดนี้คืออะไร?
def square(num):
return num ** 2
result = list(map(square, [1, 2, 3, 4]))
print(result)
a) [1, 2, 3, 4]
b) [1, 4, 9, 16]
c) [2, 4, 6, 8]
d) Error
เฉลย: b) [1, 4, 9, 16]
map() จะนำแต่ละค่าในลิสต์ไปผ่านฟังก์ชัน square()
ข้อ 20: ผลลัพธ์ของโค้ดนี้คืออะไร?
nums = [1, 2, 3, 4, 5]
even = filter(lambda x: x % 2 == 0, nums)
print(list(even))
a) [1, 2, 3, 4, 5]
b) [2, 4]
c) [1, 3, 5]
d) Error
เฉลย: b) [2, 4]
filter() จะเก็บค่าในลิสต์ที่เงื่อนไขเป็น True ซึ่งคือเลขคู่
ส่วนที่ 3: OOP และการจัดการข้อผิดพลาด (ข้อ 21 – 30)
ข้อ 21: ข้อใดอธิบาย self ใน Python ได้ถูกต้องที่สุด?
a) เป็นพารามิเตอร์ที่ใช้แทนตัวแปรภายนอก
b) เป็นคำสำคัญ (keyword) ของ Python
c) เป็นการอ้างถึงอินสแตนซ์ของคลาสในเมธอด
d) เป็นตัวแปรสำหรับเก็บค่าเริ่มต้นของคลาส
เฉลย: c) เป็นการอ้างถึงอินสแตนซ์ของคลาสในเมธอด
ข้อ 22: ผลลัพธ์ของโค้ดนี้คืออะไร?
class Animal:
species = "สัตว์"
dog = Animal()
print(dog.species)
a) Animal
b) "สัตว์"
c) None
d) Error
เฉลย: b) “สัตว์”
species เป็น Class Attribute ทุกอินสแตนซ์ที่สร้างจากคลาสจะใช้ค่าร่วมกัน
ข้อ 23: ผลลัพธ์ของโค้ดนี้คืออะไร?
class A:
def show(self):
print("A")
class B(A):
def show(self):
print("B")
obj = B()
obj.show()
a) A
b) B
c) AB
d) Error
เฉลย: b) B
คลาส B สืบทอดจาก A แต่ show() ใน B จะ Override เมธอดของ A
ข้อ 24: ผลลัพธ์ของโค้ดนี้คืออะไร?
class X:
pass
x1 = X()
x2 = X()
print(x1 == x2)
a) True
b) False
c) Error
d) None
เฉลย: b) False
อินสแตนซ์ของคลาสเดียวกัน ไม่เท่ากัน ถ้าเป็นคนละอ็อบเจ็กต์
ข้อ 25: คำสั่ง super() ใช้เพื่ออะไร?
a) สร้างอินสแตนซ์ใหม่
b) เรียกใช้เมธอดของคลาสลูก
c) เรียกใช้เมธอดของคลาสแม่
d) จัดการข้อผิดพลาด
เฉลย: c) เรียกใช้เมธอดของคลาสแม่
ข้อ 26: ผลลัพธ์ของโค้ดนี้คืออะไร?
class Parent:
def display(self):
print("จาก Parent")
class Child(Parent):
pass
obj = Child()
obj.display()
a) จาก Parent
b) จาก Child
c) Error
d) None
เฉลย: a) จาก Parent
คลาสลูกที่ไม่มีเมธอด display() จะเรียกจากคลาสแม่โดยอัตโนมัติ
ข้อ 27: โค้ดนี้ทำงานได้หรือไม่?
class Circle:
def __init__(self, radius):
self.radius = radius
def area(self):
return 3.14 * self.radius ** 2
c = Circle(5)
print(c.area())
a) 78.5
b) 25
c) Error
d) None
เฉลย: a) 78.5
ฟังก์ชัน __init__() ใช้กำหนดค่าเริ่มต้นให้กับอินสแตนซ์ และ area() คำนวณพื้นที่วงกลมได้ถูกต้อง
ข้อ 28: ผลลัพธ์ของโค้ดนี้คืออะไร?
try:
x = 5 / 0
except ZeroDivisionError:
print("หารด้วยศูนย์ไม่ได้!")
a) 5
b) หารด้วยศูนย์ไม่ได้!
c) Error
d) None
เฉลย: b) หารด้วยศูนย์ไม่ได้!
except จับข้อผิดพลาด ZeroDivisionError และแสดงข้อความแทนการหยุดโปรแกรม
ข้อ 29: โค้ดนี้จะจับข้อผิดพลาดได้หรือไม่?
try:
num = int("abc")
except ValueError:
print("ไม่สามารถแปลงเป็นจำนวนเต็มได้")
a) abc
b) Error
c) ไม่สามารถแปลงเป็นจำนวนเต็มได้
d) None
เฉลย: c) ไม่สามารถแปลงเป็นจำนวนเต็มได้
int("abc") ทำให้เกิด ValueError และถูกจับได้โดย except
ข้อ 30: ผลลัพธ์ของโค้ดนี้คืออะไร?
try:
x = 10 / 2
except ZeroDivisionError:
print("หารด้วยศูนย์ไม่ได้")
else:
print("ผลลัพธ์ถูกต้อง:", x)
finally:
print("จบการทำงาน")
a)
ผลลัพธ์ถูกต้อง: 5.0
จบการทำงาน
b) Error
c) หารด้วยศูนย์ไม่ได้
d) ไม่มีค่าใดถูกต้อง
เฉลย: a)
else จะทำงานเมื่อไม่มีข้อผิดพลาด และ finally จะทำงานเสมอไม่ว่าจะเกิดข้อผิดพลาดหรือไม่


