42 câu hỏi và câu trả lời phỏng vấn Python trong thời gian thực [2022]

Spread the love

Bạn đang chuẩn bị cho các cuộc phỏng vấn Python? Hay chỉ tò mò muốn biết bạn biết bao nhiêu Python? Không vấn đề gì. Ở đây chúng tôi sẽ giải đáp các vấn đề của bạn bằng các câu hỏi và câu trả lời.

Bài viết sẽ giúp bạn hiểu loại câu hỏi mà bạn có thể gặp phải trong các cuộc phỏng vấn. Hoặc giúp bạn đánh giá kỹ năng Python của mình. Hãy chắc chắn rằng bạn đã trả lời các câu hỏi trước khi xem câu trả lời để đánh giá chính xác bản thân. Không cần thêm bất kỳ lời khuyên nào nữa, chúng ta hãy đi sâu vào các câu hỏi.

Các câu hỏi được chia thành các phần khác nhau dựa trên loại chủ đề. Mỗi phần có các câu hỏi cùng với các câu trả lời được sắp xếp. Bạn có thể sửa đổi câu trả lời bằng ngôn ngữ của riêng bạn với cùng ý nghĩa. Vì vậy, người phỏng vấn sẽ không cảm thấy rằng bạn đang đọc một cái gì đó.

Mục lục

Ngôn ngữ Python

# 1. Python là gì?

Python là một ngôn ngữ lập trình cấp cao, có mục đích chung được thông dịch. Chúng tôi có thể xây dựng hầu hết mọi loại ứng dụng bằng Python với các thư viện và khuôn khổ của bên thứ ba. Python là một trong những ngôn ngữ lập trình phổ biến nhất trong các công nghệ tiên tiến như AI, Khoa học dữ liệu, v.v.

# 2. Sự khác biệt chính giữa trình thông dịch và trình biên dịch là gì?

Trình thông dịch dịch từng câu lệnh một thành mã máy, trong khi trình biên dịch dịch toàn bộ mã tại một thời điểm thành mã máy.

# 3. Python là ngôn ngữ nhập tĩnh hay ngôn ngữ nhập động?

Python là một ngôn ngữ được gõ động.

#4. Ý bạn là gì bởi ngôn ngữ được nhập động?

Các ngôn ngữ được nhập động kiểm tra các loại biến tại thời điểm chạy. Một số ngôn ngữ được nhập động là Python, JavaScript, Ruby, v.v.

Phần thưởng: Các ngôn ngữ được nhập kiểu tĩnh kiểm tra các loại biến tại thời điểm biên dịch. Một số ngôn ngữ được nhập tĩnh là C ++, C, Java, v.v.,

# 5. Đưa ra một số ứng dụng của Python.

Python có cú pháp đơn giản và dễ học. Nó có thể trông giống với tiếng Anh. Cộng đồng các nhà phát triển Python rất lớn. Chúng tôi có thể tìm thấy nhiều gói của bên thứ ba để làm việc với các kiểu phát triển ứng dụng khác nhau. Khi nói đến sự phát triển, chúng ta có thể tạo các ứng dụng web, ứng dụng GUI, ứng dụng CLI, v.v.,

Một trong những ứng dụng phổ biến nhất của Python là tự động hóa. Chúng tôi có thể dễ dàng tạo tập lệnh bằng Python để tự động hóa các tác vụ như dọn dẹp đĩa, gửi thư, nhận dữ liệu về giá sản phẩm, v.v.,

Python là một trong những ngôn ngữ phổ biến nhất được sử dụng trong lĩnh vực Khoa học dữ liệu.

# 6. Bạn đã xây dựng những ứng dụng nào bằng Python?

Tôi đã viết nhiều tập lệnh tự động hóa để loại bỏ các tác vụ lặp đi lặp lại và nhàm chán. Và các tập lệnh để nhận thông tin về giá sản phẩm, tình trạng còn hàng, v.v.

Tôi cũng đã làm việc với các framework như Django, Flask để xây dựng các ứng dụng web. Và xây dựng một số ứng dụng web bằng cả Django và Flask.

Lưu ý: Câu trả lời trên là một ví dụ. Câu trả lời của bạn có thể hoàn toàn khác với câu trên. Cố gắng giải thích các lĩnh vực khác nhau mà bạn đã làm việc bằng Python. Hiển thị các ứng dụng nếu chúng có sẵn.

Loại dữ liệu

# 7. Các kiểu dữ liệu tích hợp trong Python là gì?

Có nhiều kiểu dữ liệu tích hợp sẵn trong Python. Chúng là int, float, complex, bool, list, tuple, set, dict, str.

  Chia sẻ trạng thái tiêu điểm trên iPhone có nghĩa là gì?

Lưu ý: Bạn không cần phải nói tất cả các kiểu dữ liệu có trong Python. Đề cập đến một số trong số chúng mà bạn thường sử dụng. Người phỏng vấn có thể đặt câu hỏi dựa trên câu trả lời của bạn.

#số 8. Sự khác biệt giữa danh sách và tuple là gì?

Cả danh sách và tuple đều được sử dụng để lưu trữ tập hợp các đối tượng. Sự khác biệt chính giữa danh sách và tuple là “danh sách là đối tượng có thể thay đổi được trong khi tuple là đối tượng bất biến”.

# 9. Các kiểu dữ liệu có thể thay đổi và bất biến là gì?

Các kiểu dữ liệu có thể thay đổi có thể được thay đổi sau khi tạo chúng. Một số đối tượng có thể thay đổi trong Python là list, set, dict.

Không thể thay đổi kiểu dữ liệu bất biến sau khi tạo. Một số đối tượng bất biến trong Python là str, tuple.

# 10. Giải thích một số phương pháp của danh sách.

1. append – phương thức được sử dụng để thêm một phần tử vào danh sách. Nó thêm phần tử vào cuối danh sách.

>>> a = [1, 2]
>>> a.append(3)
>>> a
[1, 2, 3]

2. pop – phương thức được sử dụng để xóa một phần tử khỏi danh sách. Nó sẽ xóa phần tử cuối cùng nếu chúng tôi không cung cấp bất kỳ chỉ mục nào làm đối số hoặc xóa phần tử tại chỉ mục nếu chúng tôi cung cấp đối số.

>>> a = [1, 2, 3, 4, 5]
>>> a.pop()
5
>>> a
[1, 2, 3, 4]
>>> a.pop(1)
2
>>> a
[1, 3, 4]

3. remove – phương thức được sử dụng để xóa một phần tử khỏi danh sách. Chúng ta cần cung cấp phần tử làm đối số mà chúng ta muốn xóa khỏi danh sách. Nó loại bỏ sự xuất hiện đầu tiên của phần tử khỏi danh sách.

>>> a = [1, 2, 2, 3, 4]
>>> a = [1, 2, 3, 2, 4]
>>> a.remove(1)
>>> a
[2, 3, 2, 4]
>>> a.remove(2)
>>> a
[3, 2, 4]

4. sort – phương pháp được sử dụng để sắp xếp danh sách theo thứ tự tăng dần hoặc giảm dần.

>>> a = [3, 2, 4, 1]
>>> a.sort()
>>> a
[1, 2, 3, 4]
>>> a.sort(reverse=True)
>>> a
[4, 3, 2, 1]

5. đảo ngược – phương pháp được sử dụng để đảo ngược các phần tử danh sách.

>>> a = [3, 2, 4, 1]
>>> a.reverse()
>>> a
[1, 4, 2, 3]

Lưu ý: Có những phương pháp khác như clear, insert, count, v.v … Bạn không cần phải giải thích mọi phương pháp trong danh sách cho người phỏng vấn. Chỉ cần giải thích hai hoặc ba phương pháp mà bạn thường sử dụng.

# 11. Giải thích một số phương thức của chuỗi

1. split – phương pháp được sử dụng để tách chuỗi tại các điểm mong muốn. Kết quả là nó trả về danh sách. Theo mặc định, nó chia chuỗi tại các khoảng trắng. Chúng ta có thể cung cấp dấu phân cách làm đối số cho phương thức.

>>> a = "This is techpoe.com"
>>> a.split()
['This', 'is', 'Geekflare']
>>> a = "1, 2, 3, 4, 5, 6"
>>> a.split(", ")
['1', '2', '3', '4', '5', '6']

2. join – phương thức được sử dụng để kết hợp danh sách các đối tượng chuỗi. Nó kết hợp các đối tượng chuỗi với dấu phân cách mà chúng tôi cung cấp.

>>> a = ['This', 'is', 'Geekflare']
>>> ' '.join(a)
'This is techpoe.com'
>>> ', '.join(a)
'This, is, techpoe.com'

Lưu ý: Một số phương thức khác của chuỗi là: viết hoa, isalnum, isalpha, isdigit, under, upper, center, v.v.,

# 12. Lập chỉ mục tiêu cực trong danh sách là gì?

Chỉ mục được sử dụng để truy cập phần tử từ danh sách. Việc lập chỉ mục thông thường của danh sách bắt đầu từ 0.

Tương tự như lập chỉ mục thông thường, lập chỉ mục phủ định cũng được sử dụng để truy cập các phần tử từ danh sách. Tuy nhiên, lập chỉ mục phủ định cho phép chúng ta truy cập chỉ mục từ cuối danh sách. Thời điểm bắt đầu lập chỉ mục âm là -1. Và nó tiếp tục tăng lên như -2, -3, -4, v.v., cho đến hết danh sách.

>>> a = [1, 2, 3, 4, 5]
>>> a[-1]
5
>>> a[-3]
3
>>> a[-5]
1

# 13. Giải thích một số phương pháp của dict

1. items – phương thức trả về cặp key: value của từ điển dưới dạng danh sách các bộ giá trị.

>>> a = {1: 'techpoe.com', 2: 'techpoe.com Tools', 3: 'techpoe.com Online Compiler'}
>>> a.items()
dict_items([(1, 'Geekflare'), (2, 'Geekflare Tools'), (3, 'Geekflare Online Compiler')])

2. pop – phương thức được sử dụng để loại bỏ cặp key: value khỏi từ điển. Nó chấp nhận khóa làm đối số và xóa nó khỏi từ điển.

>>> a = {1: 2, 2: 3}
>>> a.pop(2)
3
>>> a
{1: 2}

Lưu ý: Một số phương thức khác của dict là: get, key, value, clear, v.v.

# 14. Cắt trong Python là gì?

Slicing được sử dụng để truy cập mảng con từ kiểu dữ liệu trình tự. Nó trả về dữ liệu từ kiểu dữ liệu trình tự dựa trên các đối số mà chúng tôi cung cấp. Nó trả về cùng một kiểu dữ liệu với kiểu dữ liệu nguồn.

Slicing chấp nhận ba đối số. Chúng là chỉ mục bắt đầu, chỉ mục kết thúc và bước tăng dần. Cú pháp cắt lát có thể thay đổi[start:end:step]. Đối số không bắt buộc đối với việc cắt. Bạn có thể chỉ định một dấu hai chấm trống (:) trả về toàn bộ dữ liệu dưới dạng kết quả.

>>> a = [1, 2, 3, 4, 5]
>>> a[:]
[1, 2, 3, 4, 5]
>>> a[:3]
[1, 2, 3]
>>> a[3:]
[4, 5]
>>> a[0:5:2]
[1, 3, 5]

# 15. Những kiểu dữ liệu nào cho phép cắt?

Chúng ta có thể sử dụng phương pháp cắt trên các kiểu dữ liệu list, tuple và str.

# 16. Các toán tử giải nén trong Python là gì? Làm thế nào để sử dụng chúng?

Các toán tử * và ** là các toán tử giải nén trong Python.

Toán tử giải nén * được sử dụng để gán nhiều giá trị cho các giá trị khác nhau tại một thời điểm từ các kiểu dữ liệu trình tự.

>>> items = [1, 2, 3]
>>> a, b, c = items
>>> a
1
>>> b
2
>>> c
3
>>> a, *b = items
>>> a
1
>>> b
[2, 3]

Toán tử giải nén ** được sử dụng với các kiểu dữ liệu dict. Việc giải nén trong từ điển không hoạt động giống như việc giải nén với các kiểu dữ liệu trình tự.

Việc giải nén trong từ điển chủ yếu được sử dụng để sao chép các mục key: value từ từ điển này sang từ điển khác.

>>> a = {1:2, 3:4}
>>> b = {**a}
>>> b
{1: 2, 3: 4}
>>> c = {3:5, 5:6}
>>> b = {**a, **c}
>>> b
{1: 2, 3: 5, 5: 6}

Lưu ý: Bạn có thể tham khảo bài viết này để biết thêm thông tin về các nhà mạng này.

  Cách đo độ cao trên iPhone của bạn

Điều kiện và vòng lặp

# 17. Python có câu lệnh switch không?

Không, Python không có câu lệnh chuyển đổi.

# 18. Làm cách nào để bạn triển khai chức năng của câu lệnh switch trong Python?

Chúng ta có thể triển khai chức năng của câu lệnh switch bằng cách sử dụng câu lệnh if và elif.

>>> if a == 1:
...     print(...)
... elif a == 2:
...     print(....)

# 19. Câu lệnh break và continue là gì?

break – câu lệnh break được sử dụng để kết thúc vòng lặp đang chạy. Việc thực thi mã sẽ nhảy ra bên ngoài vòng lặp ngắt.

>>> for i in range(5):
...     if i == 3:
...             break
...     print(i)
...
0
1
2

continue – câu lệnh continue được sử dụng để bỏ qua việc thực thi đoạn mã còn lại. Đoạn mã sau câu lệnh continue không thực thi trong lần lặp hiện tại và việc thực thi sẽ chuyển sang lần lặp tiếp theo.

>>> for i in range(5):
...     if i == 3:
...             continue
...     print(i)
...
0
1
2
4

# 20. Khi nào mã trong else được thực thi với các vòng lặp while và for?

Mã bên trong khối else với các vòng lặp while và for được thực thi sau khi thực hiện tất cả các lần lặp. Và mã bên trong khối khác không thực thi khi chúng ta phá vỡ các vòng lặp.

# 21. Danh sách và từ điển hiểu là gì?

Danh sách và từ điển hiểu là đường cú pháp cho vòng lặp for.

>>> a = [i for i in range(10)]
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> a = {i: i + 1 for i in range(10)}
>>> a
{0: 1, 1: 2, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}
>>>

# 22. Hàm phạm vi hoạt động như thế nào?

Hàm phạm vi trả về chuỗi số từ điểm bắt đầu đến điểm dừng với số bước tăng dần. Cú pháp của hàm phạm vi là phạm vi (bắt đầu, dừng[, step]).

Đối số dừng là bắt buộc. Các đối số bắt đầu và bước là tùy chọn. Giá trị mặc định của start và step lần lượt là 0 và 1.

>>> list(range(10))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> list(range(1, 10))
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> list(range(1, 10, 2))
[1, 3, 5, 7, 9]
>>>

Chức năng

# 23. Các tham số và đối số là gì?

Tham số là tên được liệt kê trong định nghĩa hàm.

Đối số là các giá trị được truyền cho hàm trong khi gọi.

# 24. Các loại đối số khác nhau trong Python là gì?

Chủ yếu có bốn loại lập luận. Chúng là đối số vị trí, đối số mặc định, đối số từ khóa và đối số tùy ý.

Đối số vị trí: các đối số bình thường mà chúng ta xác định trong các hàm do người dùng định nghĩa được gọi là đối số vị trí. Tất cả các đối số vị trí là bắt buộc trong khi gọi hàm.

>>> def add(a, b):
...     return a + b
...
>>> add(1, 2)
3
>>> add(1)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: add() missing 1 required positional argument: 'b'
>>>

Các đối số mặc định: chúng ta có thể cung cấp giá trị cho các đối số trong chính định nghĩa hàm dưới dạng giá trị mặc định. Khi người dùng không chuyển giá trị, hàm sẽ xem xét giá trị mặc định.

>>> def add(a, b=3):
...     return a + b
...
>>> add(1, 2)
3
>>> add(1)
4

Đối số từ khóa: chúng ta có thể chỉ định tên của đối số trong khi gọi hàm và gán giá trị cho chúng. Các đối số từ khóa giúp chúng ta tránh sắp xếp thứ tự bắt buộc trong các đối số vị trí.

>>> def add(a, b):
...     print("a ", a)
...     print("b ", b)
...     return a + b
...
>>> add(b=4, a=2)
a  2
b  4
6

Đối số tùy ý: chúng ta sử dụng các đối số tùy ý để thu thập một loạt các giá trị tại một thời điểm mà chúng ta không biết số lượng đối số mà hàm sẽ nhận được. Chúng tôi * và ** toán tử trong định nghĩa hàm để thu thập các đối số.

>>> def add(*args):
...     return sum(args)
...
>>> add(1, 2, 3, 4, 5)
15
>>> def dict_args(**kwargs):
...     print(kwargs)
...
>>> dict_args(a="techpoe.com", b='techpoe.com Tools', c="techpoe.com Online Compiler")
{'a': 'techpoe.com', 'b': 'techpoe.com Tools', 'c': 'techpoe.com Online Compiler'}

# 25. Hàm lambda là gì?

Các hàm Lambda là các hàm ẩn danh nhỏ trong Python. Nó có các biểu thức đơn và chấp nhận nhiều đối số.

>>> add = lambda a, b: a + b
>>> add(1, 3)
4

# 26. Sự khác biệt giữa hàm bình thường và hàm lambda là gì?

Chức năng của cả hàm bình thường và hàm lambda là tương tự nhau. Tuy nhiên, chúng ta cần viết thêm một số mã trong các hàm bình thường so với các hàm lambda cho cùng một chức năng.

Các hàm lambda rất hữu ích khi có một biểu thức duy nhất.

# 27. Từ khóa pass dùng để làm gì?

Từ khóa pass được sử dụng để đề cập đến một khối trống trong mã. Python không cho phép chúng ta rời khỏi các khối mà không có bất kỳ mã nào. Vì vậy, câu lệnh pass cho phép chúng ta xác định các khối trống (khi chúng ta quyết định điền mã sau này).

>>> def add(*args):
...
...
  File "<stdin>", line 3

    ^
IndentationError: expected an indented block
>>> def add(*args):
...     pass
...
>>>

# 28. Hàm đệ quy là gì?

Bản thân việc gọi hàm được gọi là hàm đệ quy.

Các toán tử đóng gói trong Python là gì? Làm thế nào để sử dụng chúng?

Các toán tử đóng gói được sử dụng để thu thập nhiều đối số trong các hàm. Chúng được gọi là đối số tùy ý.

Lưu ý: bạn có thể tham khảo bài viết này để biết thêm thông tin về các toán tử đóng gói trong Python.

# 29. OOP bằng Python

Từ khóa nào được sử dụng để tạo các lớp trong Python?

Từ khóa class được sử dụng để tạo các lớp trong Python. Chúng ta nên làm theo trường hợp pascal để đặt tên các lớp trong Python như một phương pháp tiêu chuẩn công nghiệp.

>>> class Car:
...     pass
...

# 30. Làm thế nào để khởi tạo một lớp trong Python?

Chúng ta có thể tạo một thể hiện của một lớp trong Python bằng cách gọi nó giống như hàm. Chúng ta có thể truyền các thuộc tính bắt buộc cho đối tượng theo cách giống như cách chúng ta làm đối với các đối số của hàm.

>>> class Car:
...     def __init__(self, color):
...             self.color = color
...
>>> red_car = Car('red')
>>> red_car.color
'red'
>>> green_car = Car('green')
>>> green_car.color
'green'
>>>

# 31. Tự trong Python là gì?

Bản thân đại diện cho đối tượng của lớp. Nó được sử dụng để truy cập các thuộc tính đối tượng và phương thức bên trong lớp cho đối tượng cụ thể.

  12 nền tảng để tạo trang web danh mục đầu tư của bạn trong vài phút

# 32. Phương thức __init__ là gì?

__Init__ là phương thức hàm tạo tương tự như các hàm tạo trong các ngôn ngữ OOP khác. Nó thực thi ngay lập tức khi chúng ta tạo một đối tượng cho lớp. Nó được sử dụng để khởi tạo dữ liệu ban đầu cho ví dụ.

# 33. Docstring trong Python là gì?

Các chuỗi tài liệu hoặc chuỗi doc được sử dụng để ghi lại một khối mã. Chúng cũng được sử dụng làm bình luận nhiều dòng.

Các chuỗi doc này được sử dụng trong các phương thức của một lớp để mô tả chức năng của một phương thức nào đó. Và chúng ta có thể thấy phương thức docstring bằng phương thức trợ giúp.

>>> class Car:
...     def __init__(self, color):
...             self.color = color
...
...     def change_color(self, updated_color):
...             """This method changes the color of the car"""
...             self.color = updated_color
...
>>> car = Car('red')
>>> help(car.change_color)
Help on method change_color in module __main__:

change_color(updated_color) method of __main__.Car instance
    This method changes the color of the car

>>>

# 34. Phương pháp dunder hay ma thuật là gì?

Các phương thức có hai dấu gạch dưới tiền tố và hậu tố được gọi là phương thức dunder hoặc phương thức ma thuật. Chúng chủ yếu được sử dụng để ghi đè các phương thức. Một số phương thức mà chúng ta có thể ghi đè trong các lớp là __str__, __len__, __setitem__, __getitem__, v.v.,

>>> class Car:
...     def __str__(self):
...             return "This is a Car class"
...
>>> car = Car()
>>> print(car)
This is a Car class
>>>

Lưu ý: Có rất nhiều phương thức khác mà bạn có thể ghi đè. Chúng rất hữu ích khi bạn muốn tùy chỉnh mã chuyên sâu. Khám phá tài liệu để biết thêm thông tin.

# 35. Làm thế nào để bạn triển khai kế thừa trong Python?

Chúng ta có thể truyền lớp cha cho lớp con như một đối số. Và chúng ta có thể gọi lớp cha phương thức init trong lớp con.

>>> class Animal:
...     def __init__(self, name):
...             self.name = name
...
>>> class Animal:             e):
...     def __init__(self, name):
...             self.name = name
...
...     def display(self):
...             print(self.name)
>>> class Dog(Animal):        e):ame)
...     def __init__(self, name):
...             super().__init__(name)
...
>>> doggy = Dog('Tommy')
>>> doggy.display()
Tommy
>>>

# 36. Làm cách nào để truy cập lớp cha bên trong lớp con trong Python?

Chúng ta có thể sử dụng super () để chỉ lớp cha bên trong lớp con. Và chúng ta có thể truy cập các thuộc tính và phương thức với nó.

Điều khoản khác

# 37. Làm thế nào để sử dụng nhận xét một dòng và nhiều dòng trong Python?

Chúng tôi sử dụng hàm băm (#) cho các nhận xét đơn dòng. Và ba dấu ngoặc kép đơn (“‘bình luận”‘) hoặc ba dấu ngoặc kép (“” “bình luận” “”) cho các bình luận nhiều dòng.

# 38. Đối tượng trong Python là gì?

Mọi thứ trong Python đều là một đối tượng. Tất cả các kiểu dữ liệu, hàm và lớp đều là đối tượng.

# 39. Sự khác biệt giữa is và == là gì?

Toán tử == được sử dụng để kiểm tra xem hai đối tượng có cùng giá trị hay không. Toán tử is được sử dụng để kiểm tra xem hai đối tượng có tham chiếu đến cùng một vị trí bộ nhớ hay không.

>>> a = []
>>> b = []
>>> c = a
>>> a == b
True
>>> a is b
False
>>> a is c
True
>>>

# 40. Sao chép nông và sâu là gì?

Shallow Copy: nó tạo ra bản sao chính xác như bản gốc mà không làm thay đổi các tham chiếu của các đối tượng. Bây giờ, cả đối tượng được sao chép và đối tượng gốc đều tham chiếu đến cùng một tham chiếu đối tượng. Vì vậy, thay đổi một đối tượng sẽ ảnh hưởng đến đối tượng khác.

Phương pháp sao chép từ mô-đun sao chép được sử dụng cho sao chép nông.

>>> from copy import copy
>>> a = [1, [2, 3]]
>>> b = copy(a)
>>> a[1].append(4)
>>> a
[1, [2, 3, 4]]
>>> b
[1, [2, 3, 4]]

Deep Copy: nó sao chép đệ quy các giá trị của đối tượng gốc vào đối tượng mới. Chúng ta phải sử dụng chức năng cắt lát hoặc in sâu từ mô-đun sao chép để sao chép sâu.

>>> from copy import deepcopy
>>> a = [1, [2, 3]]
>>> b = deepcopy(a)
>>> a[1].append(4)
>>> a
[1, [2, 3, 4]]
>>> b
[1, [2, 3]]
>>> b[1].append(5)
>>> a
[1, [2, 3, 4]]
>>> b
[1, [2, 3, 5]]
>>>

# 41. Trình lặp là gì?

Trình lặp là các đối tượng trong Python ghi nhớ trạng thái lặp lại của chúng. Nó khởi tạo dữ liệu bằng phương thức __iter__ và trả về phần tử tiếp theo bằng phương thức __next__.

Chúng ta cần gọi tiếp theo (trình lặp) để lấy phần tử tiếp theo từ trình lặp. Và chúng ta có thể chuyển đổi một kiểu dữ liệu trình tự thành một trình vòng lặp bằng cách sử dụng phương thức tích hợp sẵn của iter.

>>> a = [1, 2]
>>> iterator = iter(a)
>>> next(iterator)
1
>>> next(iterator)
2
>>> next(iterator)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
StopIteration
>>>

# 42. Máy phát điện là gì?

Trình tạo là các hàm trả về một trình lặp giống như một đối tượng trình tạo. Nó sử dụng lợi nhuận để tạo ra dữ liệu.

>>> def numbers(n):
...     for i in range(1, n + 1):
...             yield i
...
>>> _10 = numbers(10)
>>> next(_10)
1
>>> next(_10)
2
>>> next(_10)
3
>>> next(_10)
4

Kết luận 👨‍💻

Các câu hỏi không có giới hạn, như chúng ta thấy trong bài viết này. Bài viết này chỉ ra cách các loại câu hỏi khác nhau có thể được hỏi từ các chủ đề khác nhau trong Python. Tuy nhiên, nó không chỉ giới hạn trong tập hợp các câu hỏi mà chúng ta đã thảo luận trong bài viết này.

Một cách để chuẩn bị trong khi học là tự vấn bản thân về các chủ đề khác nhau. Cố gắng tạo các loại câu hỏi khác nhau từ một khái niệm. Và tự mình trả lời chúng. Bằng cách này, bạn có thể sẽ không ngạc nhiên bởi những câu hỏi trong cuộc phỏng vấn. Bạn cũng có thể xem trình biên dịch Python trực tuyến để thực hành mã.

Tất cả những điều tốt nhất cho Cuộc phỏng vấn Python sắp tới của bạn! 👍

x