wayground logo

Free Printable Worksheets

Font size

S
M
L
XL
Worksheets

HP12_OOPwithPython

Total questions: 100

Worksheet time: 55mins

Name
Class
Date
1.

Để thiết lập môi trường Python ta lựa chọn đường dẫn trang web nào?

2.

Để kiểm tra phiên bản Python trên Windows, khi đã mở cmd, tiếp tục ta gõ lệnh nào rồi mới nhấn Enter?

a)

python -- verson

b)

python -- vesion

c)

python -- version

d)

python - version

3.

Nhà phát triển có thể cài đặt Python trên nền tảng nào?

a)

Tất cả đáp án

b)

Unix

c)

Linux

d)

Windows

4.

Các nhà phát triển có thể chạy mã Python thông quan Giao diện người dùng đồ họa (GUI) hoặc thông qua dòng lệnh còn được gọi là:

a)

Trình dịch

b)

Trình thông dịch tương tác

c)

Trình tương tác

d)

Trình tương tác dịch

5.

Trong OOP Python gồm:

a)

Kế thừa, Đa hình, Trừu tượng, Đóng gói

b)

Kế thừa, Đa hình, Trừu tượng, Minh bạch

c)

Kế thừa, Đa hình, Trừu tượng, Đa kế thừa

d)

Kế thừa, Đa hình, Minh bạch, Đa kế thừa

6.

Để nhận biến đó là một lớp, ta thông qua từ khóa nào?

a)

def

b)

class

c)

module

d)

if

7.

Phương thức '__init__ ' dùng để làm gì?

a)

Là một hàm trống trong class

b)

Là một đối tượng cho lớp con

c)

Là tác vụ khởi tạo cần thiết mà muốn làm trên đối tượng

d)

Là phép tính trong class

8.

Hàm getattr(obj, name[, default]) dùng để làm gì?

a)

Nó giúp truy cập các thuộc tính của một đối tượng.

b)

Nó kiểm tra xem một thuộc tính có tồn tại hay không.

c)

Nó đặt một thuộc tính. Nó tạo ra một thuộc tính nếu nó không tồn tại

d)

Xóa một thuộc tính

9.

Hàm hasattr(obj, name) dùng để làm gì?

a)

Nó giúp truy cập các thuộc tính của một đối tượng

b)

Nó kiểm tra xem một thuộc tính có tồn tại hay không

c)

Nó đặt một thuộc tính. Nó tạo ra một thuộc tính nếu nó không tồn tại

d)

Xóa một thuộc tính

10.

Hàm setattr(obj, name, value) dùng để làm gì?

a)

Nó giúp truy cập các thuộc tính của một đối tượng

b)

Nó kiểm tra xem một thuộc tính có tồn tại hay không

c)

Nó đặt một thuộc tính. Nó tạo ra một thuộc tính nếu nó không tồn tại

d)

Xóa một thuộc tính

11.

Hàm delattr(obj, name) dùng để làm gì?

a)

Nó giúp truy cập các thuộc tính của một đối tượng

b)

Nó kiểm tra xem một thuộc tính có tồn tại hay không

c)

Nó đặt một thuộc tính. Nó tạo ra một thuộc tính nếu nó không tồn tại

d)

Xóa một thuộc tính

12.

Để tạo một class trống, trong khối lệnh class ta sử dụng:

a)

pass

b)

break

c)

continue

d)

None

13.

OOP là một phong cách lập trình trong đó người lập trình sử dụng các:

a)

Lớp

b)

Đối tượng

c)

Lớp và đối tượng

d)

Phương thức và đối tượng

14.

Thuộc tính có sẵn của một lớp, Object.__dict__ dùng để:

a)

Là một từ điển chứ không gian tên của lớp

b)

Giữ chuỗi tài liệu lớp. Giá trị là không nếu chuỗi không được xác định

c)

Chứa tên lớp

d)

Chứa tên mô đun trong lớp được xác định. Trong chế độ tương tác, thuộc tính này là '__main__'

15.

Thuộc tính có sẵn của một lớp, Object.__doc__ dùng để:

a)

Là một từ điển chứ không gian tên của lớp

b)

Giữ chuỗi tài liệu lớp. Giá trị là không nếu chuỗi không được xác định

c)

Chứa tên lớp

d)

Chứa tên mô đun trong lớp được xác định. Trong chế độ tương tác, thuộc tính này là '__main__'

16.

Thuộc tính có sẵn của một lớp, Object.__name__ dùng để:

a)

Là một từ điển chứ không gian tên của lớp

b)

Giữ chuỗi tài liệu lớp. Giá trị là không nếu chuỗi không được xác định

c)

Chứa tên lớp

d)

Chứa tên mô đun trong lớp được xác định. Trong chế độ tương tác, thuộc tính này là '__main__'

17.

Thuộc tính có sẵn của một lớp, Object.__module__ dùng để:

a)

Là một từ điển chứ không gian tên của lớp

b)

Giữ chuỗi tài liệu lớp. Giá trị là không nếu chuỗi không được xác định

c)

Chứa tên lớp

d)

Chứa tên mô đun trong lớp được xác định. Trong chế độ tương tác, thuộc tính này là '__main__'

18.

Thuộc tính có sẵn của một lớp, Object.__bases__ dùng để:

a)

Là một từ điển chứ không gian tên của lớp

b)

Giữ chuỗi tài liệu lớp. Giá trị là không nếu chuỗi không được xác định

c)

Giữ một bộ trống của các lớp cơ sở. Chúng được xếp theo thứ tự xuất hiện trong danh sách các lớp cơ sở

d)

Chứa tên mô đun trong lớp được xác định. Trong chế độ tương tác, thuộc tính này là '__main__'

19.

Đâu thể hiện tính kế thừa lớp:

a)

class(A)

b)

class A

c)

class A(B)

d)

None

20.

Lớp cha được gọi là siêu lớp khi:

a)

Khi không có lớp con

b)

Khi có 1 hoặc nhiều lớp con kế thừa

c)

Khi có 1 lớp con kế thừa

d)

Khi có nhiều lớp con kế thừa

21.

Python có cung cấp một hàm có tên là issubclass() dùng đề:

a)

biết rằng lớp được xét này có phải là lớp con của một lớp khác hay không

b)

biết rằng lớp con của một lớp khác hay không

c)

biết rằng lớp được xét này có phải là lớp cha của một lớp khác hay không

d)

Không đáp án

22.

Đâu là thể hiện đa kế thừa trong Python:

a)

Class A(BC)

b)

Class A(B)(C)

c)

Class (A)BC

d)

Class A(B,C)

23.

Hàm super() dùng để:

a)

truy cập lớp cha, từ lớp con

b)

truy cập tới các thành viên của lớp con, từ lớp cha

c)

truy cập tới các thành viên của lớp cha, từ lớp con

d)

truy cập tới một đối tượng sau của lớp cha, từ lớp con

24.

Method resolution order (MRO), hàm mro() dùng khi:

a)

trình tự kế thừa của lớp

b)

trình tự sắp xếp của lớp

c)

trình tự lớp

d)

Không đáp án

25.

Lựa chọn đáp án thích hợp cho dòng code đang trống:

a)

b)

c)

d)

26.

Lựa chọn đáp án thích hợp cho dòng code đang trống:

a)

emCount = 1

b)

empCount = 0

c)

empCount +=0

d)

Không có đáp án

27.

Mục đích dòng code được chú thích dùng để làm gì?

a)

Không có mục đích

b)

Biến thông thường

c)

Để ẩn dữ liệu

d)

Một phương thức

28.

%s trong đoạn code dùng để làm gì?

a)

Thay thế chuỗi

b)

Thay thế số

c)

Thay thế cả chuỗi và số

d)

Không có đáp án

29.

%d trong đoạn code dùng để làm gì?

a)

Thay thế chuỗi

b)

Thay thế số

c)

Thay thế cả chuỗi và số

d)

Không có đáp án

30.

OUTPUT (Đầu ra) của chương trình sau là:

a)

[<class '__main__.C'>, <class '__main__.A'>, <class '__main__.B'>, <class 'object'>]

b)

[<class '__main__.C'>, <class '__main__.B'>, <class 'object'>]

c)

[<class '__main__.C'>, <class '__main__.A'>, <class '__main__.B'>]

d)

Không có đáp án

31.

Hàm nào sau đây được sử dụng để trả về chiều dài của một chuỗi trong Python?

a)

len()

b)

size()

c)

length()

d)

str_len()

32.

Từ khóa nào được sử dụng để định nghĩa một hàm trong Python?

a)

function

b)

def

c)

declare

d)

func

33.

Từ khóa nào được sử dụng để trả về giá trị từ một hàm?

a)

return

b)

yield

c)

output

d)

exit

34.

Một hàm trong Python không bắt buộc phải có:

a)

Tên

b)

Tham số

c)

Giá trị trả về

d)

Dấu ngoặc đơn

35.

Đoạn mã sau sẽ in ra gì?

a)

8

b)

3

c)

Lỗi biên dịch

d)

None

36.

Kết quả của đoạn mã sau là gì?

a)

6

b)

20

c)

Error

d)

None

37.

Trong Python, tham số truyền vào hàm mặc định là:

a)

Truyền tham chiếu (by reference)

b)

Truyền giá trị (by value)

c)

Truyền cả giá trị và tham chiếu

d)

Không xác định

38.

Hàm lambda trong Python là:

a)

Hàm ẩn danh

b)

Hàm tích hợp sẵn

c)

Hàm tái sử dụng

d)

Hàm không có tham số

39.

Kết quả của đoạn mã sau là gì?

a)

8

b)

53

c)

None

d)

Error

40.

Lệnh nào sau đây sai khi gọi một hàm?

a)

my_func()

b)

my_func(arg1, arg2)

c)

my_func[]

d)

my_func(10)

41.

Hàm nào dùng để kiểm tra kiểu dữ liệu của một đối tượng trong Python?

a)

check()

b)

type()

c)

datatype()

d)

instance()

42.

Hàm dir() trong Python dùng để làm gì?

a)

Hiển thị danh sách thuộc tính và phương thức của một đối tượng

b)

Kiểm tra kiểu dữ liệu của một đối tượng

c)

Hiển thị giá trị của một biến

d)

Tìm đường dẫn của file

43.

Kết quả của đoạn mã sau là gì?

a)

13

b)

25

c)

14

d)

None

44.

Đoạn mã nào tạo ra một hàm multiply nhận hai tham số và trả về tích của chúng?

a)

multiply(a, b) = a * b

b)

def multiply(a, b): return a * b

c)

def multiply(a, b): a * b

d)

def multiply(a, b): print(a * b)

45.

Hàm isinstance(obj, cls) trong Python dùng để:

a)

Kiểm tra kiểu dữ liệu của obj

b)

Kiểm tra xem obj có phải là instance của cls không

c)

Kiểm tra xem obj có thuộc module cls không

d)

Tất cả đều đúng

46.

Đoạn mã sau sẽ in ra gì?

a)

1 5

b)

5 1

c)

Lỗi biên dịch

d)

Không xác định

47.

Kết quả của đoạn mã sau là gì?

a)

[1] [2]

b)

[1] [1, 2]

c)

[1] [1]

d)

None

48.

Kết quả của đoạn mã sau là gì?

a)

Hello, Alice

b)

Hello, Guest

c)

Alice

d)

None

49.

Để gọi hàm bằng cách truyền từ khóa thay vì thứ tự tham số, cú pháp đúng là:

a)

my_func(10, 20)

b)

my_func(a=10, b=20)

c)

my_func(10, b=20)

d)

my_func(a:10, b:20)

50.

Hàm nào sau đây không phải là hàm tích hợp sẵn trong Python?

a)

print()

b)

sum()

c)

factorial()

d)

max()

51.

Đoạn mã sau in ra kết quả gì?

a)

15

b)

10

c)

Error

d)

None

52.

Cú pháp đúng để định nghĩa một hàm nhận số lượng tham số tùy ý là gì?

a)

def my_func(*args):

b)

def my_func(args*):

c)

def my_func(**args):

d)

def my_func(args):

53.

Đoạn mã sau in ra gì?

a)

[2, 4, 6]

b)

[1, 2, 3]

c)

<map object>

d)

Lỗi biên dịch

54.

Đoạn mã nào sau đây đúng để định nghĩa hàm trong Python?

a)

def my_func(): pass

b)

def my_func(): return

c)

function my_func() {}

d)

def my_func: return None

55.

Những cách nào sau đây có thể dùng để gọi hàm my_func(a, b)?

a)

my_func(10, 20)

b)

my_func(a=10, b=20)

c)

my_func(10, b=20)

d)

my_func(a:10, b:20)

56.

Trong các cách sau, cách nào đúng để xử lý tham số mặc định của hàm?

a)

def my_func(a, b=10): pass

b)

def my_func(a=10, b): pass

c)

def my_func(a, b=10, c=20): pass

d)

def my_func(a=10, b=20): pass

57.

Những đoạn mã nào sẽ trả về một tuple rỗng?

a)

tuple()

b)

()

c)

tuple([])

d)

tuple(0)

58.

Những từ khóa nào có thể dùng để thoát khỏi một hàm?

a)

return

b)

exit()

c)

break

d)

yield

59.

Những kiểu tham số nào Python hỗ trợ trong định nghĩa hàm?

a)

Tham số vị trí (positional arguments)

b)

Tham số mặc định (default arguments)

c)

Tham số từ khóa (keyword arguments)

d)

Tham số không giới hạn (*args và **kwargs)

60.

Những lỗi nào có thể xảy ra khi định nghĩa hoặc gọi hàm trong Python?

a)

SyntaxError

b)

TypeError

c)

NameError

d)

KeyError

61.

Những cách nào dưới đây dùng để lấy giá trị trả về từ một hàm?

a)

Sử dụng return trong hàm.

b)

Sử dụng biến để lưu kết quả gọi hàm.

c)

Sử dụng từ khóa yield.

d)

Không sử dụng return, mặc định hàm trả về None.

62.

Đoạn mã nào dưới đây dùng để truyền tham số từ khóa vào hàm?

a)

my_func(a=5, b=10)

b)

my_func(5, 10)

c)

my_func(a:5, b:10)

d)

my_func(5, b=10)

63.

Những cách nào sau đây có thể định nghĩa một hàm lambda?

a)

lambda x, y: x + y

b)

lambda x: x * 2

c)

lambda x: x + y (với y không được định nghĩa trước)

d)

lambda: 10

64.

Trong Python, tham số mặc định có thể được:

a)

Là một giá trị cố định như int, str.

b)

Là một danh sách hoặc từ điển.

c)

Là một giá trị tính toán từ hàm khác.

d)

Là một đối tượng không thay đổi trong mọi lần gọi hàm.

65.

Những cách nào sau đây là đúng để trả về nhiều giá trị từ một hàm?

a)

Sử dụng một tuple.

b)

Sử dụng một list

c)

Sử dụng từ khóa return nhiều lần trong một hàm.

d)

Sử dụng một dictionary

66.

Những cách nào có thể dùng để gọi một hàm trong Python?

a)

Dùng tên hàm kèm cặp ngoặc tròn, ví dụ: my_func()

b)

Gán hàm cho một biến, sau đó gọi biến đó, ví dụ:f = my_func; f()

c)

Gọi hàm bằng cách sử dụng tham số mặc định, ví dụ: my_func(param1=10)

d)

Gọi hàm mà không cần tên hàm

67.

Đoạn mã nào dưới đây dùng để xác định nếu một tham số là tùy chọn?

a)

Tham số có giá trị mặc định, ví dụ:def my_func(a, b=10):

pass

b)

Tham số được truyền qua *args

c)

Tham số được truyền qua **kwargs

d)

Không cần tham số nào

68.

Đoạn mã dưới đây sẽ in ra kết quả gì?

a)

15

b)

Lỗi vì x không được định nghĩa trong inner

c)

Lỗi vì outer() chưa được gọi

d)

Lỗi vì func không phải là một hàm

69.

Những đoạn mã nào sử dụng decorators đúng cách?

a)

b)

c)

d)

70.

Hàm nào dưới đây là một hàm nặc danh (anonymous function) trong Python?

a)

lambda x: x + 1

b)

def add_one(x):

return x + 1

c)

def anonymous(x):

return x + 1

d)

Không có hàm nào

71.

Class trong Python được sử dụng để làm gì?

a)

Tạo các đối tượng.

b)

Tạo biến toàn cục.

c)

Viết hàm chính.

d)

Tạo chuỗi.

72.

Phương thức nào được gọi khi một đối tượng được khởi tạo?

a)

'__new__()'

b)

'__init__()'

c)

'__start__()'

d)

'__object__()'

73.

Cú pháp nào đúng để định nghĩa một lớp trong Python?

a)

class MyClass {}

b)

class MyClass()

c)

class MyClass:

d)

def MyClass:

74.

Thuộc tính của một lớp trong Python được khai báo bên trong:

a)

Hàm init.

b)

Hàm bất kỳ.

c)

Ngoài các hàm trong lớp.

d)

Tất cả các phương án trên.

75.

Từ khóa nào được dùng để truy cập một thuộc tính của lớp?

a)

this

b)

self

c)

cls

d)

super

76.

Lệnh nào dưới đây khởi tạo một đối tượng từ lớp Car?

a)

Car()

b)

car = Car

c)

car = Car()

d)

Car.init()

77.

Thuộc tính nào của một lớp được chia sẻ bởi tất cả các đối tượng?

a)

Thuộc tính cục bộ.

b)

Thuộc tính đối tượng.

c)

Thuộc tính lớp.

d)

Thuộc tính riêng tư.

78.

Lệnh nào được dùng để tạo thuộc tính riêng tư trong Python?

a)

_attribute

b)

__attribute

c)

private attribute

d)

protected attribute

79.

Phương thức nào được sử dụng để gọi hàm của lớp cha?

a)

parent.method()

b)

super.method()

c)

base.method()

d)

cls.method()

80.

Phương thức tĩnh (static method) trong Python được định nghĩa với:

a)

@classmethod

b)

@staticmethod

c)

@staticmethods

d)

@method_static

81.

Câu lệnh nào dùng để kiểm tra xem một đối tượng là instance của một lớp?

a)

type()

b)

isinstance()

c)

classof()

d)

issubclass()

82.

Phương thức nào được sử dụng để trả về chuỗi biểu diễn của đối tượng?

a)

'__str__()'

b)

'__repr__()'

c)

'__print__()'

d)

'__show__()'

83.

Khi gọi del obj, phương thức nào sẽ được thực thi?

a)

'__delete__()'

b)

'__del__()'

c)

'__remove__()'

d)

'__destroy__()'

84.

Phương thức repr() trong Python được sử dụng để:

a)

Trả về chuỗi in ra cho lập trình viên.

b)

Trả về chuỗi in ra cho người dùng.

c)

Xóa một đối tượng.

d)

Khởi tạo đối tượng.

85.

Trong Python, kế thừa đa cấp được thực hiện như thế nào?

a)

Một lớp kế thừa từ nhiều lớp cha.

b)

Một lớp con kế thừa từ một lớp cha và lớp đó lại kế thừa từ lớp khác.

c)

Sử dụng từ khóa multiinherit.

d)

Sử dụng từ khóa @inherit.

86.

Phương thức nào không thể bị ghi đè (override)?

a)

Phương thức lớp.

b)

Phương thức tĩnh.

c)

Hàm không định danh

d)

Tất cả đều có thể bị ghi đè.

87.

Phương thức @classmethod được sử dụng khi:

a)

Truy cập thuộc tính tĩnh.

b)

Không dùng thuộc tính của lớp.

c)

Truy cập và thay đổi thuộc tính lớp.

d)

Truy cập thuộc tính riêng tư.

88.

Câu nào đúng khi nói về self trong lớp?

a)

Là từ khóa bắt buộc trong mọi phương thức.

b)

Tham chiếu đến đối tượng hiện tại.

c)

Là từ khóa để truy cập các phương thức lớp.

d)

Là từ khóa để khởi tạo thuộc tính lớp.

89.

Làm thế nào để kiểm tra xem một lớp là lớp con của lớp khác?

a)

issubclass()

b)

isinstance()

c)

type()

d)

class()

90.

Khi một thuộc tính bắt đầu bằng dấu gạch dưới (_attribute), nó được coi là:

a)

Thuộc tính công khai.

b)

Thuộc tính được bảo vệ (protected).

c)

Thuộc tính riêng tư (private).

d)

Thuộc tính tĩnh (static).

91.

Làm thế nào để tạo một lớp trừu tượng trong Python?

a)

Sử dụng module abc và khai báo phương thức với @abstractmethod.

b)

Sử dụng module math và khai báo phương thức với @mathmethod.

c)

Sử dụng từ khóa abstract khi định nghĩa lớp.

d)

Không thể tạo lớp trừu tượng trong Python.

92.

Kế thừa trong Python được thể hiện như thế nào?

a)

Sử dụng ký hiệu :.

b)

Sử dụng từ khóa inherit.

c)

Đặt lớp cha trong dấu ngoặc tròn (ParentClass).

d)

Đặt lớp cha trong dấu ngoặc vuông [ParentClass].

93.

Phương thức nào trả về danh sách các thuộc tính của một đối tượng?

a)

dir()

b)

getattr()

c)

hasattr()

d)

listattr()

94.

Khi gọi hasattr(obj, 'attribute'), lệnh này sẽ:

a)

Trả về True nếu đối tượng obj có thuộc tính attribute.

b)

Thêm thuộc tính attribute vào đối tượng obj.

c)

Xóa thuộc tính attribute của đối tượng obj.

d)

Kiểm tra kiểu dữ liệu của thuộc tính attribute.

95.

Từ khóa pass trong định nghĩa lớp được sử dụng để:

a)

Bỏ qua định nghĩa lớp.

b)

Kết thúc lớp.

c)

Định nghĩa một lớp rỗng.

d)

Kế thừa một lớp cha.

96.

Sử dụng từ khóa super() trong Python có nghĩa là:

a)

Gọi đến lớp cha của lớp hiện tại.

b)

Gọi đến lớp con của lớp hiện tại.

c)

Gọi một phương thức tĩnh.

d)

Gọi một phương thức riêng tư.

97.

Khi nào cần sử dụng từ khóa self trong phương thức của một lớp?

a)

Khi truy cập các thuộc tính của đối tượng hiện tại.

b)

Khi muốn tạo một biến cục bộ trong phương thức.

c)

Khi muốn gọi một phương thức khác của cùng lớp.

d)

Khi truy cập thuộc tính lớp mà không cần khởi tạo đối tượng.

98.

Điểm khác nhau giữa @classmethod và @staticmethod trong Python là gì?

a)

@classmethod nhận tham số đầu tiên là cls.

b)

@staticmethod không nhận tham số self hay cls.

c)

@classmethod có thể truy cập thuộc tính của lớp.

d)

@staticmethod chỉ được dùng để truy cập thuộc tính đối tượng.

99.

Phương thức init() trong Python có các chức năng nào?

a)

Khởi tạo các thuộc tính của đối tượng.

b)

Định nghĩa hành vi của đối tượng khi khởi tạo.

c)

Thực thi code khi lớp được định nghĩa.

d)

Tạo đối tượng của lớp.

100.

Khi định nghĩa một lớp trong Python, điều nào sau đây là đúng?

a)

Bạn có thể định nghĩa nhiều hàm (phương thức) bên trong lớp

b)

Bạn có thể định nghĩa cả thuộc tính công khai và riêng tư.

c)

Bạn bắt buộc phải định nghĩa ít nhất một phương thức.

d)

Lớp có thể được định nghĩa mà không chứa bất kỳ nội dung nào.