100 Câu hỏi trắc nghiệm lập trình Python có đáp án
Tổng hợp 100 câu hỏi trắc nghiệm lập trình Python có đáp án đầy đủ nhằm giúp các bạn dễ dàng ôn tập lại toàn bộ các kiến thức. Để ôn tập hiệu quả các bạn có thể ôn theo từng phần trong bộ câu hỏi này bằng cách trả lời các câu hỏi và xem lại đáp án và lời giải chi tiết. Sau đó các bạn hãy chọn tạo ra đề ngẫu nhiên để kiểm tra lại kiến thức đã ôn.
Chọn hình thức trắc nghiệm (50 câu/60 phút)
Chọn phần
-
Câu 1:
Khẳng định nào sau đây về Python là đúng?
A. Python là một ngôn ngữ lập trình cấp cao.
B. Python là một ngôn ngữ thông dịch.
C. Python là ngôn ngữ lập trình hướng đối tượng.
D. Tất cả các đáp án đều đúng.
-
Câu 2:
Kí hiệu nào dùng để xác định các khối lệnh (khối lệnh của hàm, vòng lặp,...) trong Python?
A. Dấu ngoặc nhọn { }
B. Dấu ngoặc vuông [ ]
C. Thụt lề
D. Dầu ngoặc đơn ( )
-
Câu 3:
Khẳng định nào là đúng về chú thích trong Python?
A. Chú thích giúp cho các lập trình viên hiểu rõ hơn về chương trình.
B. Trình thông dịch Python sẽ bỏ qua những chú thích.
C. Có thể viết chú thích trên cùng một dòng với lệnh/biểu thức hoặc viết trên nhiều dòng mà không vấn đề gì cả
D. Tất cả các đáp án trên.
-
Câu 4:
Đâu là quy tắc đúng khi đặt tên cho biến trong Python?
A. Tên biến có thể bắt đầu bằng dấu gạch dưới " _ ".
B. Có thể sử dụng keyword làm tên biến.
C. Tên biến có thể bắt đầu bằng một chữ số.
D. Tên biến có thể có các ký hiệu như !, @, #, $, %,...
-
Câu 5:
n trong đoạn sau là kiểu dữ liệu nào?
n = '5'
A. integer
B. string
C. tuple
D. operator
-
Câu 6:
Output của lệnh sau là:
print(1, 2, 3, 4, sep='*')
A. 1 2 3 4
B. 1234
C. 1*2*3*4
D. 24
-
Câu 7:
Lệnh nào dùng để lấy dữ liệu đầu vào từ người dùng?
A. cin
B. scanf()
C. input()
D. <>
-
Câu 8:
Kết quả của đoạn code dưới đây là:
numbers = [2, 3, 4] print(numbers)
A. 2, 3, 4
B. 2 3 4
C. [2, 3, 4]
D. [2 3 4]
-
Câu 9:
Câu lệnh sử dụng toán tử and trả về kết quả TRUE khi nào?
A. Cả hai toán hạng đều là TRUE.
B. Cả hai toán hàng đều là FALSE.
C. Một trong hai toán hạng là TRUE.
D. Toán hạng đầu tiên là TRUE.
-
Câu 10:
Output của lệnh là:
print(3 >= 3)
A. 3 >= 3
B. True
C. False
D. None
-
Câu 11:
Khẳng định nào là đúng khi nói về đoạn code sau:
def printHello(): print("Hello") a = printHello()
A. printHello() là một hàm và a là một biến. Cả hai đều không phải đối tượng.
B. Cả printHello() và a đều thể hiện chung một đối tượng.
C. printHello() và a là hai đối tượng khác nhau.
D. Lỗi cú pháp. Không thể gán hàm cho một biến trong Python.
-
Câu 12:
Đâu là output của chương trình dưới đây?
def outerFunction(): global a a = 20 def innerFunction(): global a a = 30 print('a =', a) a = 10 outerFunction() print('a =', a)
A. a = 10 a = 30
B. a = 10
C. a = 20
D. a = 30
-
Câu 13:
Khẳng định nào sau đây là đúng?
A. Lớp (class) là một kế hoạch chi tiết cho đối tượng.
B. Chỉ có thể tạo một đối tượng duy nhất từ lớp đã cho.
C. Cả hai đáp án trên đều đúng.
D. Không có đáp án chính xác.
-
Câu 14:
Đâu là kết quả của đoạn code dưới đây?
class Foo: def printLine(self, line = 'Python'): print(line) o1 = Foo() o1.printLine('Java')
A. Python
B. line
C. Java
D. Java Python
-
Câu 15:
Ý nghĩa của hàm __init__() trong Python là gì?
A. Khởi tạo một lớp để sử dụng.
B. Được gọi khi một đối tượng mới được khởi tạo.
C. Khởi tạo và đưa tất cả các thuộc tính dữ liệu về 0 khi được gọi.
D. Không có đáp án đúng.
-
Câu 16:
Đâu là output của chương trình dưới đây?
class Point: def __init__(self, x = 0, y = 0): self.x = x + 1 self.y = y + 1 p1 = Point() print(p1.x, p1.y)
A. 0 0
B. 1 1
C. None None
D. x y
-
Câu 17:
Đoạn code nào sau đây sử dụng tính năng kế thừa của Python?
class Foo: Pass
class Foo(object): pass class Hoo(object) pass
class Foo: pass class Hoo(Foo): pass
D. Không có đáp án chính xác.
-
Câu 18:
Một lớp được thừa hưởng thuộc tính từ hai lớp khác nhau được gọi là gì?
A. Kế thừa đa cấp (Multilevel Inheritance)
B. Đa kế thừa (Multiple Inheritance)
C. Kế thừa phân cấp (Hierarchical Inheritance)
D. Kế thừa (Inheritance)
-
Câu 19:
Khẳng định nào sau đây là đúng?
A. Trong Python, một toán tử có thể có hoạt động khác nhau tùy thuộc vào toán hạng được sử dụng.
B. Bạn có thể thay đổi cách các toán tử hoạt động trong Python.
C. __add () __ được gọi khi toán tử ' + ' được sử dụng.
D. Tất cả các đáp trên đều đúng.
-
Câu 20:
Kết quả của chương trình dưới đây là:
class Point: def __init__(self, x = 0, y = 0): self.x = x self.y = y def __sub__(self, other): x = self.x + other.x y = self.y + other.y return Point(x, y) p1 = Point(3, 4) p2 = Point(1, 2) result = p1 - p2 print(result.x, result.y)
A. 2 2
B. 4 6
C. 0 0
D. 1 1
-
Câu 21:
Mở file với chế độ mode ' a ' có ý nghĩa gì?
A. Mở file ở chế độ chỉ được phép đọc.
B. Mở file ở chế độ ghi.
C. Mở file chế độ ghi tiếp vào cuối file.
D. Mở file để đọc và ghi.
-
Câu 22:
Đoạn code dưới đây có ý nghĩa gì?
f = open("test.txt")
A. Mở file test.txt được phép đọc và ghi vào file.
B. Mở file test.txt và chỉ được phép đọc file.
C. Mở file test.txt và được phép ghi đè vào file
D. Mở file test.txt và được phép ghi tiếp vào file.
-
Câu 23:
Đoạn code nào tự động đóng tệp khi có ngoại lệ xảy ra?
with open("test.txt", encoding = 'utf-8') as f:
try: f = open("test.txt",encoding = 'utf-8') finall f.close()
C. Không có đáp án chính xác
D. Cả A và B đều đúng
-
Câu 24:
Khẳng định nào là đúng về đoạn code dưới đây?
f = open('test.txt', 'r', encoding = 'utf-8') f.read()
A. Chương trình này đọc nội dung của file test.txt.
B. Nếu test.txt có xuống dòng, hàm read() sẽ trả về kí hiệu bắt đầu dòng mới là ‘\ n’.
C. Bạn có thể truyền một tham số kiểu integer cho read()
D. Tất cả các đáp án trên đều đúng.
-
Câu 25:
Đoạn code dưới đây có ý nghĩa gì?
os.listdir()
A. In ra thư mục làm việc hiện tại.
B. In ra tất cả các thư mục (không phải tệp) bên trong thư mục đã cho
C. In ra tất cả các thư mục và tập tin bên trong thư mục đã cho.
D. Tạo một thư mục mới.
-
Câu 26:
Khẳng định nào về ngoại lệ là đúng nhất?
A. Ngoại lệ (Exception) là lỗi phát sinh khi đang thực thi chương trình (runtime error).
B. Lỗi cú pháp (syntax error) cũng là một ngoại lệ.
C. Ngoại lệ được Python dùng để loại bỏ một khối code khỏi chương trình.
D. Tất cả các đáp án trên đều đúng.
-
Câu 27:
Điều gì sẽ xảy ra nếu bạn cố mở một file không tồn tại?
A. Python tự động tạo một file mới dưới tên bạn đang gọi ra.
B. Không có gì xảy ra vì file không tồn tại.
C. Gây ra một ngoại lệ
D. Không có đáp án nào đúng
-
Câu 28:
Đâu là kết quả của đoạn code dưới đây?
number = 5.0 try: r = 10 / number print(r) except: print("Oops! Error occurred.")
A. Oops! Error occurred.
B. 2.0
C. 2.0 Oops! Error occurred.
D. 5.0
-
Câu 29:
Đoạn code sau thực hiện yêu cầu gì?
try: # đoạn code có thể gây ra lỗi pass except(TypeError, ZeroDivisionError): print("Python Quiz")
A. In ra ' Python Quiz ' nếu có ngoại lệ xảy ra (không quan trọng là ngoại lệ gì).
B. In ra ' Python Quiz ' nếu không có ngoại lệ xảy ra.
C. In ra ' Python Quiz ' nếu một trong hai ngoại lệ TypeError và ZeroDivisionError xảy ra.
D. Chỉ in ra ' Python Quiz ' khi cả hai ngoại lệ TypeError và ZeroDivisionError cùng xảy ra
-
Câu 30:
Ngoại lệ nào xảy ra khi phát hiện thấy lỗi không thuộc bất kỳ danh mục nào khác?
A. ReferenceError
B. SystemError
C. RuntimeError
D. LookupError
-
Câu 31:
Kết quả nào là output của đoạn code dưới đây?
def myfunc(): try: print('Monday') finally: print('Tuesday') myfunc()
A. Tuesday
B. Monday Tuesday
C. Tuesday Monday
D. Monday
-
Câu 32:
Kết quả nào là output của đoạn code dưới đây?
try: print("throw") except: print("except") finally: print("finally")
A. finally throw
B. finally except
C. except finally
D. throw finally
-
Câu 33:
Khẳng định nào là đúng về chương trình dưới đây?
class A: def __init__(self): self.a = 1 self.__b = 1 def getY(self): return self.__b obj = A() obj.a = 45 print(obj.a)
A. Chương trình có lỗi xảy ra vì ' __b ' là thuộc tính private, không thể truy cập được từ bên ngoài lớp.
B. Chương trình chạy bình thường và kết quả được in ra là 1.
C. Chương trình có lỗi xảy ra vì ' a ' là thuộc tính private, không thể truy cập được từ bên ngoài lớp.
D. Chương trình chạy bình thường và kết quả được in ra là 45.
-
Câu 34:
Khẳng định nào là đúng về chương trình dưới đây?
class A: def __init__(self): self.x = 1 self.__y = 1 def getY(self): return self.__y a = A() a.x = 45 print(a.x)
A. Chương trình có lỗi xảy ra vì ' x ' là thuộc tính private, không thể truy cập được từ bên ngoài lớp.
B. Chương trình chạy bình thường và kết quả được in ra là 1.
C. Chương trình có lỗi xảy ra vì ' __y ' là thuộc tính private, không thể truy cập được từ bên ngoài lớp.
D. Chương trình chạy bình thường và kết quả được in ra là 45.
-
Câu 35:
Mở file với chế độ mode ' wb ' có ý nghĩa gì?
A. Mở file để ghi.
B. Mở file để đọc và ghi.
C. Mở file để ghi cho dạng nhị phân.
D. Mở file để đọc và ghi cho dạng nhị phân.
-
Câu 36:
Đối tượng dưới đây thuộc kiểu dữ liệu nào?
L = [1, 23, ‘hello’, 1]
A. List
B. Dictionary
C. Tuple
D. Array
-
Câu 37:
Output của lệnh dưới đây là:
print "Hello World"[::-1]
A. dlroW olleH
B. Hello Worl
C. d
D. Error
-
Câu 38:
Kết quả nào là output của đoạn code dưới đây?
list = [ 'Tech', 404, 3.03, 'Beamers', 33.3 ] print list[1:3]
A. [ 'Tech', 404, 3.03, 'Beamers', 33.3 ]
B. [404, 3.03]
C. ['Tech', 'Beamers']
D. None of the above
-
Câu 39:
Đâu không phải là kiểu dữ liệu tiêu chuẩn trong Python?
A. List
B. Dictionary
C. Class
D. Tuple
-
Câu 40:
Đâu là giá trị của colors[2]?
colors = ['red', 'orange', 'yellow', 'green', 'blue', 'indigo', 'violet']
A. orange
B. indigo
C. blue
D. yellow
-
Câu 41:
Đâu là điểm khác biệt giữa tuple và list?
A. Tuple nằm trong dấu ngoặc nhọn, list nằm trong dầu ngoặc vuông.
B. Tuple nằm trong dấu ngoặc vuông, list nằm trong dầu ngoặc nhọn.
C. Tuple là danh sách với dữ liệu kiểu la mã, list là danh sách với kiểu dữ liệu thường.
D. Dữ liệu thuộc kiểu list có thể thay đổi được, dữ liệu thuộc kiểu tuple không thể thay đổi được.
-
Câu 42:
Đâu là output của đoạn code dưới đây?
mylist=[1, 5, 9, int('0')] print(sum(mylist))
A. 16
B. 15
C. 63
D. Không có đáp án đúng.
-
Câu 43:
Kết quả của chương trình được in ra là:
mylist=['a', 'aa', 'aaa', 'b', 'bb', 'bbb'] print(mylist[:-1])
A. [a, aa, aaa, b, bb]
B. ['a', 'aa', 'aaa', 'b', 'bb']
C. ['a', 'aa', 'aaa', 'b', 'bb', 'bbb']
D. Error
-
Câu 44:
Lệnh print in ra kết quả nào cho chương trình dưới đây?
list1 = [1, 3] list2 = list1 list1[0] = 4 print(list2)
A. [4, 3]
B. [1, 3]
C. [1, 4]
D. [1, 3, 4]
-
Câu 45:
Chạy code sau trong Python, kết quả là:
num = '5'*'5'
A. 333
B. 27
C. 9
D. TypeError: can't multiply sequence by non-int of type 'str'
-
Câu 46:
Vòng lặp nào trả về kết quả dưới đây?
11111 22222 33333 44444 55555
for i in range(1, 6): print(i, i, i, i, i)
for i in range(1, 5): print(str(i) * 5)
for i in range(1, 6): print(str(i) * 5)
for i in range(0, 5): print(str(i) * 5)
-
Câu 47:
Điền phần còn thiếu trong đoạn code để được out dưới đây:
55555 44444 33333 22222 11111
for i in range(5, 0, ____ ): print(str(i) * 5)
A. 0
B. None
C. 1
D. -1
-
Câu 48:
Đâu là kết quả của đoạn code dưới đây?
myList = [1, 5, 5, 5, 5, 1] max = myList[0] indexOfMax = 0 for i in range(1, len(myList)): if myList[i] > max: max = myList[i] indexOfMax = i print(indexOfMax)
A. 0
B. 4
C. 1
D. 5
-
Câu 49:
Kết quả nào là output của đoạn code dưới đây?
x = True y = False z = False if not x or y: print(1) elif not x or not y and z: print(2) elif not x or y or not y and x: print(3) else : print(4)
A. 2
B. None
C. 1
D. 3
-
Câu 50:
Theo dõi đoạn code dưới đây và chọn đáp án đúng nhất:
a = [1, 4, 20, 2, 5] x = a[0] for i in a: if i > x: x = i print x
A. x là giá trị trung bình của list.
B. x là giá trị nhỏ nhất của list.
C. x là giá trị lớn nhất của list.
D. x là tổng giá trị các số trong list.
- 1
- 2
- Đề ngẫu nhiên
Phần