ข้อสอบ Python ชุดที่ 2 (30 ข้อ) พร้อมเฉลย

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

แบบทดสอบ Python
ข้อสอบ 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.9
True
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 จะทำงานเสมอไม่ว่าจะเกิดข้อผิดพลาดหรือไม่

Scroll to Top