Câu hỏi phỏng vấn về hàm trong Python

Câu lệnh python nào sau đây sẽ không bị trình thông dịch python bỏ qua, nhưng trình thông dịch không làm gì trong thời gian chạy vì mục đích sử dụng của câu lệnh là đóng vai trò thay thế hoặc trình giữ chỗ?

Show

def f9():
    '''This is a docstring'''
    # This is a comment
    pass
    yield

Câu hỏi phỏng vấn về hàm trong Python
'''Đây là một chuỗi tài liệu'''

Câu hỏi phỏng vấn về hàm trong Python
# Đây là một bình luận

Câu hỏi phỏng vấn về hàm trong Python
vượt qua

Câu hỏi phỏng vấn về hàm trong Python
sản lượng

Python được phát triển bởi Guido van Rossum và được phát hành lần đầu tiên vào ngày 20 tháng 2 năm 1991. Nó là một trong những ngôn ngữ lập trình được yêu thích và sử dụng rộng rãi nhất và được giải thích một cách tự nhiên do đó mang lại sự linh hoạt trong việc kết hợp ngữ nghĩa động. Nó cũng là một ngôn ngữ mã nguồn mở và miễn phí với cú pháp rất đơn giản và rõ ràng. Điều này giúp các nhà phát triển dễ dàng tìm hiểu python. Python cũng hỗ trợ lập trình hướng đối tượng và được sử dụng phổ biến nhất để thực hiện lập trình đa năng.  

Do tính chất đơn giản và khả năng đạt được nhiều chức năng với ít dòng mã hơn, mức độ phổ biến của python đang tăng lên rất nhiều. Python cũng được sử dụng trong Học máy, Trí tuệ nhân tạo, Phát triển web, Quét web và nhiều lĩnh vực khác do khả năng hỗ trợ tính toán mạnh mẽ bằng các thư viện mạnh mẽ. Do đó, có nhu cầu rất lớn đối với các nhà phát triển python ở Ấn Độ và trên toàn thế giới. Các công ty sẵn sàng cung cấp các đặc quyền và lợi ích tuyệt vời cho các nhà phát triển này.  

Trong bài viết này, chúng ta sẽ xem các câu hỏi và câu trả lời phỏng vấn về trăn thường gặp nhất sẽ giúp bạn trở nên xuất sắc và nhận được những lời mời làm việc tuyệt vời

Chúng tôi đã phân loại chúng thành các phần sau

 

Bảng cheat Python. Khái niệm cơ bản đến nâng cao

 

Hoàn thành cuộc phỏng vấn công nghệ tiếp theo của bạn với sự tự tin

Tham gia một cuộc phỏng vấn giả miễn phí, nhận phản hồi và đề xuất ngay lập tức⚡️💡

Sự kiện . Được cung cấp bởi

Không còn sự kiện nào để hiển thị

Xem tất cả

Xem tất cả

Không còn sự kiện nào để hiển thị

Xem tất cả

Xem tất cả

Không còn sự kiện nào để hiển thị

Xem tất cả

Xem tất cả

Không còn sự kiện nào để hiển thị

Xem tất cả

Xem tất cả

Câu hỏi phỏng vấn Python dành cho người mới

1. Trăn là gì?

Python là ngôn ngữ lập trình đa năng, thông dịch, cấp cao. Là một ngôn ngữ có mục đích chung, nó có thể được sử dụng để xây dựng hầu hết mọi loại ứng dụng với các công cụ/thư viện phù hợp. Ngoài ra, python hỗ trợ các đối tượng, mô-đun, luồng, xử lý ngoại lệ và quản lý bộ nhớ tự động giúp mô hình hóa các vấn đề trong thế giới thực và xây dựng các ứng dụng để giải quyết các vấn đề này

Lợi ích của việc sử dụng Python

  • Python là ngôn ngữ lập trình đa năng có cú pháp đơn giản, dễ học, nhấn mạnh khả năng đọc và do đó giảm chi phí bảo trì chương trình. Hơn nữa, ngôn ngữ này có khả năng viết kịch bản, hoàn toàn là nguồn mở và hỗ trợ các gói của bên thứ ba khuyến khích mô đun hóa và tái sử dụng mã
  • Cấu trúc dữ liệu cấp cao của nó, kết hợp với kiểu gõ động và liên kết động, thu hút một cộng đồng lớn các nhà phát triển để triển khai và Phát triển ứng dụng nhanh

2. Ngôn ngữ gõ động là gì?

Trước khi hiểu một ngôn ngữ gõ động, chúng ta nên tìm hiểu về gõ là gì. Đánh máy đề cập đến kiểm tra loại trong ngôn ngữ lập trình. Trong một ngôn ngữ được gõ mạnh, chẳng hạn như Python, "1" + 2 sẽ dẫn đến lỗi loại vì các ngôn ngữ này không cho phép "ép buộc kiểu" (chuyển đổi kiểu dữ liệu ngầm). Mặt khác, một ngôn ngữ gõ yếu, chẳng hạn như Javascript, sẽ chỉ xuất ra kết quả là "12"

Kiểm tra loại có thể được thực hiện ở hai giai đoạn -

  • Tĩnh - Kiểu dữ liệu được kiểm tra trước khi thực hiện
  • Động - Các kiểu dữ liệu được kiểm tra trong quá trình thực thi

Python là một ngôn ngữ được thông dịch, thực thi từng dòng câu lệnh theo từng dòng và do đó, việc kiểm tra kiểu được thực hiện nhanh chóng trong quá trình thực thi. Do đó, Python là một ngôn ngữ được gõ động

Câu hỏi phỏng vấn về hàm trong Python

3. Ngôn ngữ thông dịch là gì?

Một ngôn ngữ được giải thích thực thi từng dòng câu lệnh của nó. Các ngôn ngữ như Python, Javascript, R, PHP và Ruby là những ví dụ điển hình của ngôn ngữ Thông dịch. Các chương trình được viết bằng ngôn ngữ thông dịch chạy trực tiếp từ mã nguồn, không có bước biên dịch trung gian

Bạn có thể tải xuống phiên bản PDF của Câu hỏi phỏng vấn Python

Tải xuống PDF Tải xuống PDF  

tải PDF


Tải xuống yêu cầu của bạn đã sẵn sàng
nhấn vào đây để tai

4. PEP 8 là gì và tại sao nó quan trọng?

PEP là viết tắt của Đề xuất cải tiến Python. PEP là một tài liệu thiết kế chính thức cung cấp thông tin cho cộng đồng Python hoặc mô tả một tính năng mới cho Python hoặc các quy trình của nó. PEP 8 đặc biệt quan trọng vì nó ghi lại các nguyên tắc về kiểu dáng cho Mã Python. Rõ ràng việc đóng góp cho cộng đồng mã nguồn mở Python yêu cầu bạn tuân theo các nguyên tắc về phong cách này một cách chân thành và nghiêm túc

5. Phạm vi trong Python là gì?

Mọi đối tượng trong Python hoạt động trong một phạm vi. Phạm vi là một khối mã trong đó một đối tượng trong Python vẫn có liên quan. Không gian tên xác định duy nhất tất cả các đối tượng bên trong một chương trình. Tuy nhiên, các không gian tên này cũng có một phạm vi được xác định cho chúng, nơi bạn có thể sử dụng các đối tượng của chúng mà không cần bất kỳ tiền tố nào. Một vài ví dụ về phạm vi được tạo trong quá trình thực thi mã trong Python như sau

  • Phạm vi cục bộ đề cập đến các đối tượng cục bộ có sẵn trong chức năng hiện tại
  • Phạm vi toàn cầu đề cập đến các đối tượng có sẵn trong suốt quá trình thực thi mã kể từ khi bắt đầu
  • Phạm vi cấp mô-đun đề cập đến các đối tượng toàn cầu của mô-đun hiện tại có thể truy cập trong chương trình
  • Phạm vi ngoài cùng đề cập đến tất cả các tên tích hợp có thể gọi được trong chương trình. Các đối tượng trong phạm vi này được tìm kiếm lần cuối để tìm tên được tham chiếu

Ghi chú. Các đối tượng phạm vi cục bộ có thể được đồng bộ hóa với các đối tượng phạm vi toàn cầu bằng cách sử dụng các từ khóa như toàn cầu

6. danh sách và bộ dữ liệu là gì?

Danh sách và Bộ dữ liệu đều là các kiểu dữ liệu chuỗi có thể lưu trữ một tập hợp các đối tượng trong Python. Các đối tượng được lưu trữ trong cả hai chuỗi có thể có các kiểu dữ liệu khác nhau. Danh sách được biểu diễn bằng dấu ngoặc vuông

def myEmptyFunc():
   # do nothing
   pass
myEmptyFunc()    # nothing happens
## Without the pass keyword
# File "", line 3
# IndentationError: expected an indented block
22, trong khi bộ dữ liệu được biểu diễn bằng dấu ngoặc đơn
def myEmptyFunc():
   # do nothing
   pass
myEmptyFunc()    # nothing happens
## Without the pass keyword
# File "", line 3
# IndentationError: expected an indented block
23
Nhưng sự khác biệt thực sự giữa hai là gì? . Điều này có nghĩa là các danh sách có thể được sửa đổi, nối thêm hoặc cắt khi đang di chuyển nhưng các bộ dữ liệu không đổi và không thể sửa đổi theo bất kỳ cách nào. Bạn có thể chạy ví dụ sau trên Python IDLE để xác nhận sự khác biệt

my_tuple = ('sara', 6, 5, 0.97)
my_list = ['sara', 6, 5, 0.97]
print(my_tuple[0])     # output => 'sara'
print(my_list[0])     # output => 'sara'
my_tuple[0] = 'ansh'    # modifying tuple => throws an error
my_list[0] = 'ansh'    # modifying list => list modified
print(my_tuple[0])     # output => 'sara'
print(my_list[0])     # output => 'ansh'

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

Có một số kiểu dữ liệu tích hợp trong Python. Mặc dù, Python không yêu cầu các loại dữ liệu phải được xác định rõ ràng trong quá trình khai báo biến, lỗi loại có thể xảy ra nếu kiến ​​thức về các loại dữ liệu và khả năng tương thích của chúng với nhau bị bỏ qua. Python cung cấp các hàm

def myEmptyFunc():
   # do nothing
   pass
myEmptyFunc()    # nothing happens
## Without the pass keyword
# File "", line 3
# IndentationError: expected an indented block
24 và
def myEmptyFunc():
   # do nothing
   pass
myEmptyFunc()    # nothing happens
## Without the pass keyword
# File "", line 3
# IndentationError: expected an indented block
25 để kiểm tra kiểu của các biến này. Các loại dữ liệu này có thể được nhóm thành các loại sau-

  • Không Loại
    def myEmptyFunc():
       # do nothing
       pass
    myEmptyFunc()    # nothing happens
    ## Without the pass keyword
    # File "", line 3
    # IndentationError: expected an indented block
    26 từ khóa đại diện cho các giá trị null trong Python. Thao tác đẳng thức Boolean có thể được thực hiện bằng các đối tượng NoneType này
Class NameDescriptionNoneTypeĐại diện cho các giá trị NULL trong Python
  • Các loại số
    Có ba loại số riêng biệt - số nguyên, số dấu phẩy động và số phức. Ngoài ra, booleans là một kiểu con của số nguyên
Tên lớpDescriptionintLưu trữ các số nguyên bao gồm số hex, bát phân và số nhị phân dưới dạng số nguyênfloatLưu trữ các chữ chứa giá trị thập phân và/hoặc dấu mũ dưới dạng số dấu phẩy độngcomplexLưu trữ các số phức ở dạng (A + Bj) và có các thuộc tính.
def myEmptyFunc():
   # do nothing
   pass
myEmptyFunc()    # nothing happens
## Without the pass keyword
# File "", line 3
# IndentationError: expected an indented block
27 và
def myEmptyFunc():
   # do nothing
   pass
myEmptyFunc()    # nothing happens
## Without the pass keyword
# File "", line 3
# IndentationError: expected an indented block
28boolLưu trữ giá trị boolean (Đúng hoặc Sai)

Ghi chú. Thư viện tiêu chuẩn cũng bao gồm các phân số để lưu trữ các số hữu tỷ và số thập phân để lưu trữ các số dấu phẩy động với độ chính xác do người dùng xác định

  • Các loại trình tự
    Theo Python Docs, có ba Loại trình tự cơ bản - danh sách, bộ dữ liệu và đối tượng phạm vi. Các loại trình tự có các toán tử
    def myEmptyFunc():
       # do nothing
       pass
    myEmptyFunc()    # nothing happens
    ## Without the pass keyword
    # File "", line 3
    # IndentationError: expected an indented block
    29 và
    def myEmptyFunc():
       # do nothing
       pass
    myEmptyFunc()    # nothing happens
    ## Without the pass keyword
    # File "", line 3
    # IndentationError: expected an indented block
    30 được xác định để duyệt qua các phần tử của chúng. Các toán tử này có cùng mức độ ưu tiên như các phép toán so sánh
Tên lớp Mô tảDanh sách thay đổi Trình tự được sử dụng để lưu trữ bộ sưu tập các mục. tuple Trình tự bất biến được sử dụng để lưu trữ bộ sưu tập các mục. phạm viĐại diện cho một chuỗi số bất biến được tạo trong quá trình thực thi. chuỗi strImmutable của các điểm mã Unicode để lưu trữ dữ liệu văn bản

Ghi chú. Thư viện chuẩn cũng bao gồm các loại bổ sung để xử lý
1. Dữ liệu nhị phân chẳng hạn như

def myEmptyFunc():
   # do nothing
   pass
myEmptyFunc()    # nothing happens
## Without the pass keyword
# File "", line 3
# IndentationError: expected an indented block
31
def myEmptyFunc():
   # do nothing
   pass
myEmptyFunc()    # nothing happens
## Without the pass keyword
# File "", line 3
# IndentationError: expected an indented block
32 và
2. Chuỗi văn bản chẳng hạn như
def myEmptyFunc():
   # do nothing
   pass
myEmptyFunc()    # nothing happens
## Without the pass keyword
# File "", line 3
# IndentationError: expected an indented block
33

  • Các loại ánh xạ

Một đối tượng ánh xạ có thể ánh xạ các giá trị có thể băm thành các đối tượng ngẫu nhiên trong Python. Các đối tượng ánh xạ có thể thay đổi và hiện tại chỉ có một loại ánh xạ tiêu chuẩn, từ điển

Tên lớp Mô tảdictLưu trữ danh sách khóa được phân tách bằng dấu phẩy. cặp giá trị
  • Đặt loại
    Hiện tại, Python có hai loại tập hợp tích hợp sẵn - tập hợp và tập hợp cố định. loại thiết lập có thể thay đổi và hỗ trợ các phương thức như
    def myEmptyFunc():
       # do nothing
       pass
    myEmptyFunc()    # nothing happens
    ## Without the pass keyword
    # File "", line 3
    # IndentationError: expected an indented block
    34 và
    def myEmptyFunc():
       # do nothing
       pass
    myEmptyFunc()    # nothing happens
    ## Without the pass keyword
    # File "", line 3
    # IndentationError: expected an indented block
    35. loại freezeset là bất biến và không thể sửa đổi sau khi tạo
Tên lớpDescripsetMutable bộ sưu tập không có thứ tự của các đối tượng có thể băm riêng biệt. FrozensetImmutable tập hợp các đối tượng có thể băm riêng biệt

Ghi chú.

def myEmptyFunc():
   # do nothing
   pass
myEmptyFunc()    # nothing happens
## Without the pass keyword
# File "", line 3
# IndentationError: expected an indented block
36 có thể thay đổi và do đó không thể được sử dụng làm khóa cho từ điển. Mặt khác,
def myEmptyFunc():
   # do nothing
   pass
myEmptyFunc()    # nothing happens
## Without the pass keyword
# File "", line 3
# IndentationError: expected an indented block
37 là bất biến và do đó, có thể băm được và có thể được sử dụng làm khóa từ điển hoặc là một phần tử của tập hợp khác

  • mô-đun
    Mô-đun là một loại tích hợp bổ sung được hỗ trợ bởi Trình thông dịch Python. Nó hỗ trợ một hoạt động đặc biệt, tôi. e. , truy cập thuộc tính.
    def myEmptyFunc():
       # do nothing
       pass
    myEmptyFunc()    # nothing happens
    ## Without the pass keyword
    # File "", line 3
    # IndentationError: expected an indented block
    38, trong đó
    def myEmptyFunc():
       # do nothing
       pass
    myEmptyFunc()    # nothing happens
    ## Without the pass keyword
    # File "", line 3
    # IndentationError: expected an indented block
    39 là một mô-đun và myobj tham chiếu đến tên được xác định trong bảng ký hiệu của m. Bảng ký hiệu của mô-đun nằm trong một thuộc tính rất đặc biệt của mô-đun __dict__, nhưng việc gán trực tiếp cho mô-đun này là không thể và cũng không được khuyến nghị
  • Các loại có thể gọi
    Các loại có thể gọi được là các loại có thể áp dụng lệnh gọi hàm. Chúng có thể là các hàm do người dùng định nghĩa, các phương thức cá thể, hàm tạo và một số hàm, phương thức và lớp tích hợp khác
    Tham khảo tài liệu tại docs. con trăn. org để xem chi tiết các loại có thể gọi được

8. Vượt qua trong Python là gì?

Từ khóa

def myEmptyFunc():
   # do nothing
   pass
myEmptyFunc()    # nothing happens
## Without the pass keyword
# File "", line 3
# IndentationError: expected an indented block
40 đại diện cho một hoạt động null trong Python. Nó thường được sử dụng cho mục đích lấp đầy các khối mã trống có thể thực thi trong thời gian chạy nhưng vẫn chưa được viết. Nếu không có câu lệnh pass trong đoạn mã sau, chúng ta có thể gặp một số lỗi trong quá trình thực thi mã

def myEmptyFunc():
   # do nothing
   pass
myEmptyFunc()    # nothing happens
## Without the pass keyword
# File "", line 3
# IndentationError: expected an indented block

9. Các mô-đun và gói trong Python là gì?

Gói Python và mô-đun Python là hai cơ chế cho phép lập trình mô-đun trong Python. Mô-đun hóa có một số lợi thế -

  • Sự đơn giản. Làm việc trên một mô-đun duy nhất giúp bạn tập trung vào một phần tương đối nhỏ của vấn đề hiện tại. Điều này làm cho việc phát triển dễ dàng hơn và ít bị lỗi hơn
  • khả năng bảo trì. Các mô-đun được thiết kế để thực thi các ranh giới logic giữa các miền vấn đề khác nhau. Nếu chúng được viết theo cách làm giảm sự phụ thuộc lẫn nhau, thì ít có khả năng các sửa đổi trong một mô-đun có thể ảnh hưởng đến các phần khác của chương trình
  • khả năng tái sử dụng. Các chức năng được xác định trong một mô-đun có thể dễ dàng được sử dụng lại bởi các phần khác của ứng dụng
  • phạm vi. Các mô-đun thường xác định một không gian tên riêng biệt, giúp tránh nhầm lẫn giữa các mã định danh từ các phần khác của chương trình

Nói chung, các mô-đun chỉ đơn giản là các tệp Python với một. phần mở rộng py và có thể có một tập hợp các hàm, lớp hoặc biến được xác định và triển khai. Chúng có thể được nhập và khởi tạo một lần bằng cách sử dụng câu lệnh

def myEmptyFunc():
   # do nothing
   pass
myEmptyFunc()    # nothing happens
## Without the pass keyword
# File "", line 3
# IndentationError: expected an indented block
41. Nếu cần một phần chức năng, hãy nhập các lớp hoặc hàm cần thiết bằng cách sử dụng
def myEmptyFunc():
   # do nothing
   pass
myEmptyFunc()    # nothing happens
## Without the pass keyword
# File "", line 3
# IndentationError: expected an indented block
42

Các gói cho phép cấu trúc phân cấp của không gian tên mô-đun bằng cách sử dụng ký hiệu dấu chấm. Vì, các mô-đun giúp tránh xung đột giữa các tên biến toàn cục, theo cách tương tự, các gói giúp tránh xung đột giữa các tên mô-đun
Tạo một gói dễ dàng vì nó sử dụng cấu trúc tệp vốn có của hệ thống. Vì vậy, chỉ cần nhét các mô-đun vào một thư mục và bạn có nó ở đó, tên thư mục là tên gói. Nhập mô-đun hoặc nội dung của mô-đun từ gói này yêu cầu tên gói làm tiền tố cho tên mô-đun được nối bằng dấu chấm

Ghi chú. Về mặt kỹ thuật, bạn cũng có thể nhập gói, nhưng than ôi, nó không nhập các mô-đun trong gói vào không gian tên cục bộ, do đó, thực tế nó vô dụng

10. Các thuộc tính toàn cầu, được bảo vệ và riêng tư trong Python là gì?

  • Biến toàn cục là biến công khai được định nghĩa trong phạm vi toàn cầu. Để sử dụng biến trong phạm vi toàn cục bên trong một hàm, chúng ta sử dụng từ khóa
    def myEmptyFunc():
       # do nothing
       pass
    myEmptyFunc()    # nothing happens
    ## Without the pass keyword
    # File "", line 3
    # IndentationError: expected an indented block
    43
  • Các thuộc tính được bảo vệ là các thuộc tính được xác định bằng tiền tố gạch dưới cho mã định danh của chúng, ví dụ:. _sara. Chúng vẫn có thể được truy cập và sửa đổi từ bên ngoài lớp mà chúng được định nghĩa nhưng một nhà phát triển có trách nhiệm không nên làm như vậy
  • Thuộc tính riêng tư là các thuộc tính có tiền tố gạch dưới kép cho mã định danh của chúng, vd. __ansh. Chúng không thể được truy cập hoặc sửa đổi trực tiếp từ bên ngoài và sẽ dẫn đến AttributeError nếu một nỗ lực như vậy được thực hiện

11. Việc sử dụng bản thân trong Python là gì?

Bản thân được sử dụng để đại diện cho thể hiện của lớp. Với từ khóa này, bạn có thể truy cập các thuộc tính và phương thức của lớp trong python. Nó liên kết các thuộc tính với các đối số đã cho. bản thân được sử dụng ở những nơi khác nhau và thường được coi là một từ khóa. Nhưng không giống như trong C++, self không phải là một từ khóa trong Python

12. Có cái gì bên trong__?

def myEmptyFunc():
   # do nothing
   pass
myEmptyFunc()    # nothing happens
## Without the pass keyword
# File "", line 3
# IndentationError: expected an indented block
44 là một phương thức khởi tạo trong Python và được tự động gọi để cấp phát bộ nhớ khi một đối tượng/thể hiện mới được tạo. Tất cả các lớp đều có phương thức __init__ được liên kết với chúng. Nó giúp phân biệt các phương thức và thuộc tính của một lớp với các biến cục bộ

# class definition
class Student:
   def __init__(self, fname, lname, age, section):
       self.firstname = fname
       self.lastname = lname
       self.age = age
       self.section = section
# creating a new object
stu1 = Student("Sara", "Ansh", 22, "A2")

13. Break, Continue và Pass trong Python là gì?

Break Câu lệnh break kết thúc vòng lặp ngay lập tức và điều khiển chuyển đến câu lệnh sau phần thân của vòng lặp. Tiếp tục Câu lệnh continue kết thúc lần lặp hiện tại của câu lệnh, bỏ qua phần còn lại của mã trong lần lặp hiện tại và chuyển điều khiển sang lần lặp tiếp theo của vòng lặp. PassNhư đã giải thích ở trên, từ khóa pass trong Python thường được sử dụng để lấp đầy các khối trống và tương tự như một câu lệnh trống được biểu thị bằng dấu chấm phẩy trong các ngôn ngữ như Java, C++, Javascript, v.v.
pat = [1, 3, 2, 1, 2, 3, 1, 0, 1, 3]
for p in pat:
   pass
   if (p == 0):
       current = p
       break
   elif (p % 2 == 0):
       continue
   print(p)    # output => 1 3 1 3 1
print(current)    # output => 0

14. Các bài kiểm tra đơn vị trong Python là gì?

  • Kiểm tra đơn vị là một khung kiểm tra đơn vị của Python
  • Kiểm tra đơn vị có nghĩa là kiểm tra các thành phần khác nhau của phần mềm một cách riêng biệt. Bạn có thể nghĩ về lý do tại sao thử nghiệm đơn vị lại quan trọng không? . Bây giờ, giả sử phần mềm của bạn bị hỏng tại một thời điểm. Làm thế nào bạn sẽ tìm thấy thành phần nào chịu trách nhiệm phá vỡ phần mềm? . Có thể có nhiều kết hợp như vậy
  • Đây là lý do tại sao cần phải kiểm tra đúng từng thành phần để chúng tôi biết thành phần nào có thể chịu trách nhiệm cao cho sự cố của phần mềm

15. Chuỗi doc trong Python là gì?

  • Chuỗi tài liệu hoặc chuỗi tài liệu là một chuỗi nhiều dòng được sử dụng để ghi lại một đoạn mã cụ thể
  • Chuỗi tài liệu sẽ mô tả chức năng hoặc phương thức làm gì

16. cắt lát trong Python là gì?

  • Như tên cho thấy, 'cắt lát' đang tham gia vào
  • Cú pháp để cắt là [bắt đầu. dừng lại. bước chân]
  • start là chỉ mục bắt đầu từ nơi để cắt một danh sách hoặc bộ dữ liệu
  • dừng lại là chỉ số kết thúc hoặc nơi để sop
  • bước là số bước để nhảy
  • Giá trị mặc định cho bắt đầu là 0, dừng là số mục, bước là 1
  • Cắt lát có thể được thực hiện trên chuỗi, mảng, danh sách và bộ dữ liệu
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print(numbers[1 : : 2])  #output : [2, 4, 6, 8, 10]

17. Giải thích làm thế nào bạn có thể làm cho Tập lệnh Python có thể thực thi được trên Unix?

  • Tệp tập lệnh phải bắt đầu bằng #. /usr/bin/env con trăn

18. Sự khác biệt giữa Mảng Python và danh sách là gì?

  • Mảng trong python chỉ có thể chứa các phần tử có cùng kiểu dữ liệu. e. , kiểu dữ liệu của mảng phải đồng nhất. Nó là một trình bao bọc mỏng xung quanh các mảng ngôn ngữ C và tiêu tốn ít bộ nhớ hơn nhiều so với các danh sách
  • Danh sách trong python có thể chứa các phần tử thuộc các kiểu dữ liệu khác nhau. e. , kiểu dữ liệu của danh sách có thể không đồng nhất. Nó có nhược điểm là tốn bộ nhớ lớn
import array
a = array.array('i', [1, 2, 3])
for i in a:
    print(i, end=' ')    #OUTPUT: 1 2 3
a = array.array('i', [1, 2, 'string'])    #OUTPUT: TypeError: an integer is required (got type str)
a = [1, 2, 'string']
for i in a:
   print(i, end=' ')    #OUTPUT: 1 2 string

Câu hỏi phỏng vấn Python dành cho người có kinh nghiệm

19. Bộ nhớ được quản lý như thế nào trong Python?

  • Quản lý bộ nhớ trong Python được xử lý bởi Trình quản lý bộ nhớ Python. Bộ nhớ được cấp phát bởi trình quản lý ở dạng không gian heap riêng dành riêng cho Python. Tất cả các đối tượng Python được lưu trữ trong heap này và ở chế độ riêng tư, lập trình viên không thể truy cập được. Mặc dù vậy, python cung cấp một số chức năng API cốt lõi để hoạt động trên không gian heap riêng tư
  • Ngoài ra, Python có bộ sưu tập rác tích hợp để tái chế bộ nhớ không sử dụng cho không gian heap riêng tư
Câu hỏi phỏng vấn về hàm trong Python

20. Không gian tên Python là gì?

Không gian tên trong Python đảm bảo rằng tên đối tượng trong chương trình là duy nhất và có thể được sử dụng mà không có bất kỳ xung đột nào. Python triển khai các không gian tên này dưới dạng từ điển với 'tên là khóa' được ánh xạ tới một 'đối tượng là giá trị' tương ứng. Điều này cho phép nhiều không gian tên sử dụng cùng một tên và ánh xạ nó tới một đối tượng riêng biệt. Một vài ví dụ về không gian tên như sau

  • Không gian tên cục bộ bao gồm các tên cục bộ bên trong một hàm. không gian tên được tạo tạm thời cho một lệnh gọi hàm và bị xóa khi hàm trả về
  • Không gian tên toàn cầu bao gồm các tên từ các gói/mô-đun đã nhập khác nhau đang được sử dụng trong dự án hiện tại. Không gian tên này được tạo khi gói được nhập vào tập lệnh và tồn tại cho đến khi thực thi tập lệnh
  • Không gian tên tích hợp bao gồm các chức năng tích hợp sẵn của Python lõi và tên tích hợp cho nhiều loại ngoại lệ khác nhau

Vòng đời của một không gian tên phụ thuộc vào phạm vi của các đối tượng mà chúng được ánh xạ tới. Nếu phạm vi của một đối tượng kết thúc, vòng đời của không gian tên đó sẽ kết thúc. Do đó, không thể truy cập các đối tượng không gian tên bên trong từ một không gian tên bên ngoài

Câu hỏi phỏng vấn về hàm trong Python

21. Độ phân giải phạm vi trong Python là gì?

Đôi khi các đối tượng trong cùng một phạm vi có cùng tên nhưng hoạt động khác nhau. Trong những trường hợp như vậy, độ phân giải phạm vi sẽ tự động phát huy tác dụng trong Python. Một vài ví dụ về hành vi như vậy là

  • Các mô-đun Python cụ thể là 'math' và 'cmath' có rất nhiều chức năng chung cho cả hai -
    def myEmptyFunc():
       # do nothing
       pass
    myEmptyFunc()    # nothing happens
    ## Without the pass keyword
    # File "", line 3
    # IndentationError: expected an indented block
    45,
    def myEmptyFunc():
       # do nothing
       pass
    myEmptyFunc()    # nothing happens
    ## Without the pass keyword
    # File "", line 3
    # IndentationError: expected an indented block
    46,
    def myEmptyFunc():
       # do nothing
       pass
    myEmptyFunc()    # nothing happens
    ## Without the pass keyword
    # File "", line 3
    # IndentationError: expected an indented block
    47, v.v. Để giải quyết sự mơ hồ này, cần phải thêm tiền tố vào mô-đun tương ứng của chúng, chẳng hạn như
    def myEmptyFunc():
       # do nothing
       pass
    myEmptyFunc()    # nothing happens
    ## Without the pass keyword
    # File "", line 3
    # IndentationError: expected an indented block
    48 và
    def myEmptyFunc():
       # do nothing
       pass
    myEmptyFunc()    # nothing happens
    ## Without the pass keyword
    # File "", line 3
    # IndentationError: expected an indented block
    49
  • Xem xét mã bên dưới, một đối tượng tạm thời đã được khởi tạo thành 10 trên toàn cầu và sau đó là 20 khi gọi hàm. Tuy nhiên, lệnh gọi hàm không thay đổi giá trị của tạm thời trên toàn cầu. Ở đây, chúng ta có thể quan sát thấy rằng Python vạch ra một ranh giới rõ ràng giữa các biến toàn cục và biến cục bộ, coi các không gian tên của chúng là các danh tính riêng biệt
temp = 10   # global-scope variable
def func():
     temp = 20   # local-scope variable
     print(temp)
print(temp)   # output => 10
func()    # output => 20
print(temp)   # output => 10

Hành vi này có thể được ghi đè bằng cách sử dụng từ khóa

def myEmptyFunc():
   # do nothing
   pass
myEmptyFunc()    # nothing happens
## Without the pass keyword
# File "", line 3
# IndentationError: expected an indented block
43 bên trong hàm, như trong ví dụ sau

temp = 10   # global-scope variable
def func():
     global temp
     temp = 20   # local-scope variable
     print(temp)
print(temp)   # output => 10
func()    # output => 20
print(temp)   # output => 20

22. Trình trang trí trong Python là gì?

Trình trang trí trong Python về cơ bản là các hàm bổ sung chức năng cho một hàm hiện có trong Python mà không thay đổi cấu trúc của chính hàm đó. Chúng được đại diện là

def myEmptyFunc():
   # do nothing
   pass
myEmptyFunc()    # nothing happens
## Without the pass keyword
# File "", line 3
# IndentationError: expected an indented block
51 trong Python và được gọi theo kiểu từ dưới lên. Ví dụ

# decorator function to convert to lowercase
def lowercase_decorator(function):
   def wrapper():
       func = function()
       string_lowercase = func.lower()
       return string_lowercase
   return wrapper
# decorator function to split words
def splitter_decorator(function):
   def wrapper():
       func = function()
       string_split = func.split()
       return string_split
   return wrapper
@splitter_decorator # this is executed next
@lowercase_decorator # this is executed first
def hello():
   return 'Hello World'
hello()   # output => [ 'hello' , 'world' ]

Vẻ đẹp của các bộ trang trí nằm ở chỗ bên cạnh việc thêm chức năng vào đầu ra của phương thức, chúng thậm chí có thể chấp nhận các đối số cho các hàm và có thể sửa đổi thêm các đối số đó trước khi chuyển nó cho chính hàm đó. Hàm lồng bên trong, i. e. chức năng 'trình bao bọc', đóng một vai trò quan trọng ở đây. Nó được triển khai để thực thi đóng gói và do đó, giữ cho chính nó ẩn khỏi phạm vi toàn cầu

# decorator function to capitalize names
def names_decorator(function):
   def wrapper(arg1, arg2):
       arg1 = arg1.capitalize()
       arg2 = arg2.capitalize()
       string_hello = function(arg1, arg2)
       return string_hello
   return wrapper
@names_decorator
def say_hello(name1, name2):
   return 'Hello ' + name1 + '! Hello ' + name2 + '!'
say_hello('sara', 'ansh')   # output => 'Hello Sara! Hello Ansh!'

23. What are Dict and List comprehensions?

Khả năng hiểu của Python, giống như trình trang trí, là các cấu trúc đường cú pháp giúp xây dựng các danh sách, từ điển hoặc tập hợp đã thay đổi và được lọc từ một danh sách, từ điển hoặc tập hợp nhất định. Sử dụng khả năng hiểu giúp tiết kiệm rất nhiều thời gian và mã có thể dài hơn đáng kể (chứa nhiều dòng mã hơn). Hãy xem một số ví dụ, trong đó việc hiểu có thể thực sự có lợi

  • Thực hiện các phép toán trên toàn bộ danh sách
def myEmptyFunc():
   # do nothing
   pass
myEmptyFunc()    # nothing happens
## Without the pass keyword
# File "", line 3
# IndentationError: expected an indented block
0
  • Thực hiện các thao tác lọc có điều kiện trên toàn bộ danh sách
def myEmptyFunc():
   # do nothing
   pass
myEmptyFunc()    # nothing happens
## Without the pass keyword
# File "", line 3
# IndentationError: expected an indented block
1
  • Kết hợp nhiều danh sách thành một

Khả năng hiểu cho phép nhiều trình vòng lặp và do đó, có thể được sử dụng để kết hợp nhiều danh sách thành một.  

def myEmptyFunc():
   # do nothing
   pass
myEmptyFunc()    # nothing happens
## Without the pass keyword
# File "", line 3
# IndentationError: expected an indented block
2
  • Làm phẳng danh sách nhiều chiều

Một cách tiếp cận tương tự của các trình lặp lồng nhau (như trên) có thể được áp dụng để làm phẳng một danh sách đa chiều hoặc hoạt động trên các phần tử bên trong của nó.  

def myEmptyFunc():
   # do nothing
   pass
myEmptyFunc()    # nothing happens
## Without the pass keyword
# File "", line 3
# IndentationError: expected an indented block
3

Ghi chú. Khả năng hiểu danh sách có tác dụng tương tự như phương pháp bản đồ trong các ngôn ngữ khác. Chúng tuân theo ký hiệu trình tạo tập hợp toán học hơn là các hàm lọc và bản đồ trong Python

24. Lambda trong Python là gì?

Lambda là một hàm ẩn danh trong Python, có thể chấp nhận bất kỳ số lượng đối số nào, nhưng chỉ có thể có một biểu thức duy nhất. Nó thường được sử dụng trong các tình huống yêu cầu chức năng ẩn danh trong một khoảng thời gian ngắn. Các hàm lambda có thể được sử dụng theo một trong hai cách

  • Gán các hàm lambda cho một biến
def myEmptyFunc():
   # do nothing
   pass
myEmptyFunc()    # nothing happens
## Without the pass keyword
# File "", line 3
# IndentationError: expected an indented block
4
  • Gói các hàm lambda bên trong một hàm khác
def myEmptyFunc():
   # do nothing
   pass
myEmptyFunc()    # nothing happens
## Without the pass keyword
# File "", line 3
# IndentationError: expected an indented block
5

25. Làm thế nào để bạn sao chép một đối tượng trong Python?

Trong Python, câu lệnh gán (toán tử _______1_______52) không sao chép các đối tượng. Instead, it creates a binding between the existing object and the target variable name. Để tạo các bản sao của một đối tượng trong Python, chúng ta cần sử dụng mô-đun copy. Ngoài ra, có hai cách tạo bản sao cho đối tượng đã cho bằng cách sử dụng mô-đun sao chép -

Shallow Copy là một bản sao bit của một đối tượng. Đối tượng được sao chép được tạo có một bản sao chính xác của các giá trị trong đối tượng ban đầu. Nếu một trong hai giá trị là tham chiếu đến các đối tượng khác, thì chỉ các địa chỉ tham chiếu cho cùng một giá trị được sao chép
Deep Copy sao chép đệ quy tất cả các giá trị từ nguồn sang đối tượng đích, tôi. e. nó thậm chí còn sao chép các đối tượng được tham chiếu bởi đối tượng nguồn

def myEmptyFunc():
   # do nothing
   pass
myEmptyFunc()    # nothing happens
## Without the pass keyword
# File "", line 3
# IndentationError: expected an indented block
6

26. Sự khác biệt giữa xrange và phạm vi trong Python là gì?

xrange() và range() khá giống nhau về chức năng. Cả hai đều tạo ra một chuỗi các số nguyên, với sự khác biệt duy nhất là

def myEmptyFunc():
   # do nothing
   pass
myEmptyFunc()    # nothing happens
## Without the pass keyword
# File "", line 3
# IndentationError: expected an indented block
53 trả về một danh sách Python, trong khi đó,
def myEmptyFunc():
   # do nothing
   pass
myEmptyFunc()    # nothing happens
## Without the pass keyword
# File "", line 3
# IndentationError: expected an indented block
54 trả về một đối tượng xrange

Vì vậy, làm thế nào mà làm cho một sự khác biệt? . Kỹ thuật này thường được sử dụng với một trình tạo kiểu đối tượng và được gọi là "hiệu suất"

Năng suất là rất quan trọng trong các ứng dụng mà bộ nhớ là một hạn chế. Tạo một danh sách tĩnh như trong phạm vi() có thể dẫn đến một

def myEmptyFunc():
   # do nothing
   pass
myEmptyFunc()    # nothing happens
## Without the pass keyword
# File "", line 3
# IndentationError: expected an indented block
55 trong các điều kiện như vậy, trong khi, xrange() có thể xử lý nó một cách tối ưu bằng cách sử dụng bộ nhớ vừa đủ cho trình tạo (ít hơn đáng kể so với)

def myEmptyFunc():
   # do nothing
   pass
myEmptyFunc()    # nothing happens
## Without the pass keyword
# File "", line 3
# IndentationError: expected an indented block
7

Ghi chú. xrange đã không còn được dùng kể từ Python 3. x. Giờ đây,

def myEmptyFunc():
   # do nothing
   pass
myEmptyFunc()    # nothing happens
## Without the pass keyword
# File "", line 3
# IndentationError: expected an indented block
56 thực hiện chính xác những gì mà
def myEmptyFunc():
   # do nothing
   pass
myEmptyFunc()    # nothing happens
## Without the pass keyword
# File "", line 3
# IndentationError: expected an indented block
57 đã từng làm trong Python 2. x, vì sử dụng xrange() tốt hơn nhiều so với hàm range() ban đầu trong Python 2. x

27. Pickling và unpickling là gì?

Thư viện Python cung cấp một tính năng - tuần tự hóa ngay lập tức. Tuần tự hóa một đối tượng đề cập đến việc chuyển đổi nó thành một định dạng có thể được lưu trữ, để có thể giải tuần tự hóa nó, sau này, để lấy đối tượng ban đầu. Ở đây, mô-đun dưa chua phát huy tác dụng

muối chua

  • Pickling là tên của quy trình tuần tự hóa trong Python. Bất kỳ đối tượng nào trong Python đều có thể được tuần tự hóa thành luồng byte và được kết xuất dưới dạng tệp trong bộ nhớ. Quá trình ngâm được nén nhưng đối tượng ngâm có thể được nén thêm. Hơn nữa, pickle theo dõi các đối tượng mà nó đã đánh số thứ tự và việc đánh số thứ tự có thể di chuyển qua các phiên bản
  • Hàm được sử dụng cho quá trình trên là
    def myEmptyFunc():
       # do nothing
       pass
    myEmptyFunc()    # nothing happens
    ## Without the pass keyword
    # File "", line 3
    # IndentationError: expected an indented block
    58

Bóc vỏ

  • Unpickling là nghịch đảo hoàn toàn của pickling. Nó giải tuần tự hóa luồng byte để tạo lại các đối tượng được lưu trữ trong tệp và tải đối tượng vào bộ nhớ
  • Hàm được sử dụng cho quá trình trên là
    def myEmptyFunc():
       # do nothing
       pass
    myEmptyFunc()    # nothing happens
    ## Without the pass keyword
    # File "", line 3
    # IndentationError: expected an indented block
    59

Ghi chú. Python có một mô-đun tuần tự hóa khác, nguyên thủy hơn, được gọi là marshall, tồn tại chủ yếu để hỗ trợ. pyc trong Python và khác biệt đáng kể so với dưa chua

Câu hỏi phỏng vấn về hàm trong Python

28. Máy phát điện trong Python là gì?

Trình tạo là các hàm trả về một tập hợp các mục có thể lặp lại, mỗi lần một mục, theo cách đã đặt. Nói chung, các trình tạo được sử dụng để tạo các trình vòng lặp với cách tiếp cận khác. Họ sử dụng từ khóa

def myEmptyFunc():
   # do nothing
   pass
myEmptyFunc()    # nothing happens
## Without the pass keyword
# File "", line 3
# IndentationError: expected an indented block
60 thay vì
def myEmptyFunc():
   # do nothing
   pass
myEmptyFunc()    # nothing happens
## Without the pass keyword
# File "", line 3
# IndentationError: expected an indented block
61 để trả về một đối tượng trình tạo
Hãy thử xây dựng một trình tạo các số fibonacci -

def myEmptyFunc():
   # do nothing
   pass
myEmptyFunc()    # nothing happens
## Without the pass keyword
# File "", line 3
# IndentationError: expected an indented block
8

29. PYTHONPATH trong Python là gì?

PYTHONPATH là một biến môi trường mà bạn có thể đặt để thêm các thư mục bổ sung nơi Python sẽ tìm kiếm các mô-đun và gói. Điều này đặc biệt hữu ích trong việc duy trì các thư viện Python mà bạn không muốn cài đặt ở vị trí mặc định chung

30. What is the use of help() and dir() functions?

Hàm help() trong Python được sử dụng để hiển thị tài liệu về các mô-đun, lớp, hàm, từ khóa, v.v. Nếu không có tham số nào được chuyển đến hàm

def myEmptyFunc():
   # do nothing
   pass
myEmptyFunc()    # nothing happens
## Without the pass keyword
# File "", line 3
# IndentationError: expected an indented block
62, thì tiện ích trợ giúp tương tác sẽ được khởi chạy trên bảng điều khiển
dir() cố gắng trả về một danh sách các thuộc tính và phương thức hợp lệ của đối tượng mà nó được gọi. Nó hoạt động khác với các đối tượng khác nhau, vì nó nhằm mục đích tạo ra dữ liệu phù hợp nhất, thay vì thông tin đầy đủ

  • Đối với các đối tượng Mô-đun/Thư viện, nó trả về một danh sách tất cả các thuộc tính, có trong mô-đun đó
  • Đối với Đối tượng lớp, nó trả về danh sách tất cả các thuộc tính hợp lệ và thuộc tính cơ sở
  • Không có đối số nào được truyền, nó trả về một danh sách các thuộc tính trong phạm vi hiện tại

31. Đâu là sự khác biệt giữa. py và. tập tin pyc?

  • tệp py chứa mã nguồn của chương trình. Trong khi,. tệp pyc chứa mã byte của chương trình của bạn. Chúng tôi nhận được mã byte sau khi biên dịch. tệp py (mã nguồn). . các tệp pyc không được tạo cho tất cả các tệp bạn chạy. Nó chỉ được tạo cho các tệp bạn nhập
  • Trước khi thực hiện chương trình python, trình thông dịch python sẽ kiểm tra các tệp đã biên dịch. Nếu tệp có mặt, máy ảo sẽ thực thi nó. Nếu không tìm thấy, nó sẽ kiểm tra. tập tin py. Nếu tìm thấy, biên dịch nó thành. pyc và sau đó máy ảo python thực thi nó
  • Đang có. pyc giúp bạn tiết kiệm thời gian biên dịch

32. Làm thế nào Python được giải thích?

  • Python là một ngôn ngữ không được giải thích hoặc biên dịch. Giải thích hoặc biên dịch là tài sản của việc thực hiện. Python là một mã byte (tập hợp các hướng dẫn có thể đọc được của trình thông dịch) được diễn giải chung
  • Mã nguồn là một tệp có. phần mở rộng py
  • Python biên dịch mã nguồn thành một bộ hướng dẫn cho máy ảo. Trình thông dịch Python là một triển khai của máy ảo đó. Định dạng trung gian này được gọi là “bytecode”
  • mã nguồn py được biên dịch đầu tiên để cung cấp. pyc là mã byte. Mã byte này sau đó có thể được giải thích bởi CPython hoặc JIT chính thức (trình biên dịch Just in Time) do PyPy biên dịch

33. Các đối số được truyền theo giá trị hoặc theo tham chiếu trong python như thế nào?

  • Vượt qua giá trị. Bản sao của đối tượng thực tế được thông qua. Thay đổi giá trị của bản sao của đối tượng sẽ không thay đổi giá trị của đối tượng ban đầu
  • Chuyển qua tham chiếu. Tham chiếu đến đối tượng thực tế được thông qua. Thay đổi giá trị của đối tượng mới sẽ thay đổi giá trị của đối tượng ban đầu

Trong Python, các đối số được truyền theo tham chiếu, tôi. e. , tham chiếu đến đối tượng thực tế được thông qua

def myEmptyFunc():
   # do nothing
   pass
myEmptyFunc()    # nothing happens
## Without the pass keyword
# File "", line 3
# IndentationError: expected an indented block
9

34. Trình vòng lặp trong Python là gì?

  • Một iterator là một đối tượng
  • Nó nhớ trạng thái của nó tôi. e. , vị trí của nó trong quá trình lặp lại (xem mã bên dưới để biết cách thực hiện)
  • Phương thức __iter__() khởi tạo một iterator
  • Nó có phương thức __next__() trả về mục tiếp theo trong lần lặp và trỏ đến phần tử tiếp theo. Khi đến cuối đối tượng có thể lặp lại __next__() phải trả về ngoại lệ StopIteration
  • Nó cũng có thể tự lặp lại
  • Trình lặp là các đối tượng mà chúng ta có thể lặp qua các đối tượng có thể lặp lại như danh sách, chuỗi, v.v.
# class definition
class Student:
   def __init__(self, fname, lname, age, section):
       self.firstname = fname
       self.lastname = lname
       self.age = age
       self.section = section
# creating a new object
stu1 = Student("Sara", "Ansh", 22, "A2")
0

35. Giải thích cách xóa một tệp trong Python?

Sử dụng lệnh os. xóa (file_name)

# class definition
class Student:
   def __init__(self, fname, lname, age, section):
       self.firstname = fname
       self.lastname = lname
       self.age = age
       self.section = section
# creating a new object
stu1 = Student("Sara", "Ansh", 22, "A2")
1

36. Giải thích hàm split() và join() trong Python?

  • Bạn có thể sử dụng hàm split() để tách một chuỗi dựa trên dấu phân cách thành danh sách các chuỗi
  • Bạn có thể sử dụng hàm join() để nối danh sách các chuỗi dựa trên dấu phân cách để đưa ra một chuỗi
# class definition
class Student:
   def __init__(self, fname, lname, age, section):
       self.firstname = fname
       self.lastname = lname
       self.age = age
       self.section = section
# creating a new object
stu1 = Student("Sara", "Ansh", 22, "A2")
2

37. *args và **kwargs nghĩa là gì?

* lập luận

  • *args là một cú pháp đặc biệt được sử dụng trong định nghĩa hàm để truyền các đối số có độ dài thay đổi
  • “*” có nghĩa là độ dài thay đổi và “args” là tên được sử dụng theo quy ước. Bạn có thể sử dụng bất kỳ khác
# class definition
class Student:
   def __init__(self, fname, lname, age, section):
       self.firstname = fname
       self.lastname = lname
       self.age = age
       self.section = section
# creating a new object
stu1 = Student("Sara", "Ansh", 22, "A2")
3

**kwargs

  • **kwargs là một cú pháp đặc biệt được sử dụng trong định nghĩa hàm để truyền các đối số từ khóa có độ dài thay đổi
  • Ngoài ra, ở đây, "kwargs" chỉ được sử dụng theo quy ước. Bạn có thể sử dụng bất kỳ tên nào khác
  • Đối số được gắn từ khóa có nghĩa là một biến có tên khi được truyền cho một hàm
  • Nó thực sự là một từ điển về tên biến và giá trị của nó
# class definition
class Student:
   def __init__(self, fname, lname, age, section):
       self.firstname = fname
       self.lastname = lname
       self.age = age
       self.section = section
# creating a new object
stu1 = Student("Sara", "Ansh", 22, "A2")
4

38. Chỉ mục tiêu cực là gì và tại sao chúng được sử dụng?

  • Chỉ mục phủ định là các chỉ mục từ cuối danh sách hoặc bộ hoặc chuỗi
  • Arr[-1] có nghĩa là phần tử cuối cùng của mảng Arr[]
# class definition
class Student:
   def __init__(self, fname, lname, age, section):
       self.firstname = fname
       self.lastname = lname
       self.age = age
       self.section = section
# creating a new object
stu1 = Student("Sara", "Ansh", 22, "A2")
5

Câu hỏi phỏng vấn Python OOPS

39. Làm thế nào để bạn tạo một lớp trong Python?

Để tạo class trong python chúng ta sử dụng từ khóa “class” như ví dụ bên dưới

# class definition
class Student:
   def __init__(self, fname, lname, age, section):
       self.firstname = fname
       self.lastname = lname
       self.age = age
       self.section = section
# creating a new object
stu1 = Student("Sara", "Ansh", 22, "A2")
6

Để khởi tạo hoặc tạo một đối tượng từ lớp đã tạo ở trên, chúng ta làm như sau

# class definition
class Student:
   def __init__(self, fname, lname, age, section):
       self.firstname = fname
       self.lastname = lname
       self.age = age
       self.section = section
# creating a new object
stu1 = Student("Sara", "Ansh", 22, "A2")
7

Để truy cập thuộc tính name, chúng ta chỉ cần gọi thuộc tính bằng toán tử dấu chấm như hình bên dưới

# class definition
class Student:
   def __init__(self, fname, lname, age, section):
       self.firstname = fname
       self.lastname = lname
       self.age = age
       self.section = section
# creating a new object
stu1 = Student("Sara", "Ansh", 22, "A2")
8

Để tạo các phương thức bên trong lớp, chúng ta gộp các phương thức thuộc phạm vi của lớp như hình bên dưới

# class definition
class Student:
   def __init__(self, fname, lname, age, section):
       self.firstname = fname
       self.lastname = lname
       self.age = age
       self.section = section
# creating a new object
stu1 = Student("Sara", "Ansh", 22, "A2")
9

The self parameter in the init and introduce functions represent the reference to the current class instance which is used for accessing attributes and methods of that class. The self parameter has to be the first parameter of any method defined inside the class. The method of the class InterviewbitEmployee can be accessed as shown below

pat = [1, 3, 2, 1, 2, 3, 1, 0, 1, 3]
for p in pat:
   pass
   if (p == 0):
       current = p
       break
   elif (p % 2 == 0):
       continue
   print(p)    # output => 1 3 1 3 1
print(current)    # output => 0
0

Chương trình tổng thể sẽ như thế này

pat = [1, 3, 2, 1, 2, 3, 1, 0, 1, 3]
for p in pat:
   pass
   if (p == 0):
       current = p
       break
   elif (p % 2 == 0):
       continue
   print(p)    # output => 1 3 1 3 1
print(current)    # output => 0
1

40. Tính kế thừa hoạt động như thế nào trong python?

Kế thừa trao quyền cho một lớp để truy cập tất cả các thuộc tính và phương thức của lớp khác. Nó hỗ trợ khả năng sử dụng lại mã và giúp nhà phát triển duy trì các ứng dụng mà không cần mã dự phòng. The class inheriting from another class is a child class or also called a derived class. Lớp mà từ đó một lớp con dẫn xuất các thành viên được gọi là lớp cha hoặc lớp cha

Python hỗ trợ các loại kế thừa khác nhau, chúng là

  • Single Inheritance. Lớp con dẫn xuất các thành viên của một lớp cha
Câu hỏi phỏng vấn về hàm trong Python
pat = [1, 3, 2, 1, 2, 3, 1, 0, 1, 3]
for p in pat:
   pass
   if (p == 0):
       current = p
       break
   elif (p % 2 == 0):
       continue
   print(p)    # output => 1 3 1 3 1
print(current)    # output => 0
2
  • Kế thừa đa cấp. Các thành viên của lớp cha, A, được kế thừa bởi lớp con, lớp này sau đó được kế thừa bởi lớp con khác, B. Các tính năng của lớp cơ sở và lớp dẫn xuất được tiếp tục kế thừa vào lớp dẫn xuất mới, C. Ở đây, A là lớp ông của lớp C
Câu hỏi phỏng vấn về hàm trong Python
pat = [1, 3, 2, 1, 2, 3, 1, 0, 1, 3]
for p in pat:
   pass
   if (p == 0):
       current = p
       break
   elif (p % 2 == 0):
       continue
   print(p)    # output => 1 3 1 3 1
print(current)    # output => 0
3
  • Đa thừa kế. Điều này đạt được khi một lớp con dẫn xuất các thành viên từ nhiều hơn một lớp cha. Tất cả các tính năng của lớp cha được kế thừa trong lớp con
Câu hỏi phỏng vấn về hàm trong Python
pat = [1, 3, 2, 1, 2, 3, 1, 0, 1, 3]
for p in pat:
   pass
   if (p == 0):
       current = p
       break
   elif (p % 2 == 0):
       continue
   print(p)    # output => 1 3 1 3 1
print(current)    # output => 0
4
  • Kế thừa phân cấp. Khi một lớp cha được dẫn xuất bởi nhiều hơn một lớp con, nó được gọi là kế thừa phân cấp
Câu hỏi phỏng vấn về hàm trong Python
pat = [1, 3, 2, 1, 2, 3, 1, 0, 1, 3]
for p in pat:
   pass
   if (p == 0):
       current = p
       break
   elif (p % 2 == 0):
       continue
   print(p)    # output => 1 3 1 3 1
print(current)    # output => 0
5

41. Làm thế nào để bạn truy cập các thành viên cha mẹ trong lớp con?

Sau đây là những cách sử dụng mà bạn có thể truy cập các thành viên của lớp cha trong một lớp con

  • Bằng cách sử dụng tên lớp Parent. Bạn có thể sử dụng tên của lớp cha để truy cập các thuộc tính như trong ví dụ bên dưới
pat = [1, 3, 2, 1, 2, 3, 1, 0, 1, 3]
for p in pat:
   pass
   if (p == 0):
       current = p
       break
   elif (p % 2 == 0):
       continue
   print(p)    # output => 1 3 1 3 1
print(current)    # output => 0
6
  • Bằng cách sử dụng siêu(). The parent class members can be accessed in child class using the super keyword
pat = [1, 3, 2, 1, 2, 3, 1, 0, 1, 3]
for p in pat:
   pass
   if (p == 0):
       current = p
       break
   elif (p % 2 == 0):
       continue
   print(p)    # output => 1 3 1 3 1
print(current)    # output => 0
7

42. Are access specifiers used in python?

Python không sử dụng các chỉ định truy cập cụ thể như riêng tư, công khai, được bảo vệ, v.v. Tuy nhiên, nó không lấy được điều này từ bất kỳ biến nào. Nó có khái niệm bắt chước hành vi của các biến bằng cách sử dụng một dấu gạch dưới đơn (được bảo vệ) hoặc dấu gạch dưới kép (riêng tư) làm tiền tố cho tên biến. Theo mặc định, các biến không có tiền tố gạch dưới là công khai

Ví dụ

pat = [1, 3, 2, 1, 2, 3, 1, 0, 1, 3]
for p in pat:
   pass
   if (p == 0):
       current = p
       break
   elif (p % 2 == 0):
       continue
   print(p)    # output => 1 3 1 3 1
print(current)    # output => 0
8

43. Có thể gọi lớp cha mà không cần tạo cá thể của nó không?

Yes, it is possible if the base class is instantiated by other child classes or if the base class is a static method

44. Làm thế nào là một lớp trống được tạo ra trong python?

Một lớp trống không có bất kỳ thành viên nào được định nghĩa trong đó. Nó được tạo bằng cách sử dụng từ khóa pass (lệnh pass không làm gì trong python). Chúng ta có thể tạo các đối tượng cho lớp này bên ngoài lớp
Ví dụ-

pat = [1, 3, 2, 1, 2, 3, 1, 0, 1, 3]
for p in pat:
   pass
   if (p == 0):
       current = p
       break
   elif (p % 2 == 0):
       continue
   print(p)    # output => 1 3 1 3 1
print(current)    # output => 0
9

đầu ra
Tên đã tạo = Interviewbit

45. Phân biệt giữa công cụ sửa đổi mới và ghi đè

Công cụ sửa đổi mới được sử dụng để hướng dẫn trình biên dịch sử dụng triển khai mới chứ không phải chức năng của lớp cơ sở. Công cụ sửa đổi Ghi đè rất hữu ích để ghi đè chức năng của lớp cơ sở bên trong lớp con

46. Tại sao hoàn thiện được sử dụng?

Finalize method is used for freeing up the unmanaged resources and clean up before the garbage collection method is invoked. Điều này giúp thực hiện các tác vụ quản lý bộ nhớ

47. Phương thức init trong python là gì?

Phương thức init hoạt động tương tự như các hàm tạo trong Java. The method is run as soon as an object is instantiated. It is useful for initializing any attributes or default behaviour of the object at the time of instantiation
Ví dụ

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print(numbers[1 : : 2])  #output : [2, 4, 6, 8, 10]
0

48. Bạn sẽ kiểm tra xem một lớp có phải là con của một lớp khác không?

Điều này được thực hiện bằng cách sử dụng một phương thức gọi là issubclass() được cung cấp bởi python. Phương thức này cho chúng ta biết liệu có lớp nào là con của lớp khác hay không bằng cách trả về true hoặc false tương ứng
Ví dụ

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print(numbers[1 : : 2])  #output : [2, 4, 6, 8, 10]
1
  • Chúng ta có thể kiểm tra xem một đối tượng có phải là một thể hiện của một lớp hay không bằng cách sử dụng phương thức isinstance()
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print(numbers[1 : : 2])  #output : [2, 4, 6, 8, 10]
2

Câu hỏi phỏng vấn Python Pandas

49. Bạn biết gì về gấu trúc?

  • Pandas là một thư viện mã nguồn mở dựa trên python được sử dụng trong các ứng dụng thao tác dữ liệu yêu cầu hiệu năng cao. Tên này bắt nguồn từ “Dữ liệu bảng” có dữ liệu đa chiều. Điều này được phát triển vào năm 2008 bởi Wes McKinney và được phát triển để phân tích dữ liệu
  • Pandas rất hữu ích trong việc thực hiện 5 bước chính của phân tích dữ liệu - Tải dữ liệu, làm sạch/thao tác dữ liệu, chuẩn bị, lập mô hình và phân tích dữ liệu

50. Xác định khung dữ liệu gấu trúc

Khung dữ liệu là cấu trúc dạng bảng và có thể thay đổi 2D để biểu thị dữ liệu được gắn nhãn bằng trục - hàng và cột
Cú pháp tạo dataframe

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print(numbers[1 : : 2])  #output : [2, 4, 6, 8, 10]
3

Ở đâu

  • dữ liệu - Đại diện cho các dạng khác nhau như sê-ri, bản đồ, ndarray, danh sách, dict, v.v.
  • chỉ mục - Đối số tùy chọn biểu thị chỉ mục cho nhãn hàng
  • cột - Đối số tùy chọn cho nhãn cột
  • Dtype - kiểu dữ liệu của mỗi cột. một lần nữa tùy chọn

51. Bạn sẽ kết hợp các khung dữ liệu gấu trúc khác nhau như thế nào?

Các khung dữ liệu có thể được kết hợp bằng cách sử dụng các phương pháp dưới đây

  • phương thức chắp thêm (). Điều này được sử dụng để xếp chồng các khung dữ liệu theo chiều ngang. cú pháp
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print(numbers[1 : : 2])  #output : [2, 4, 6, 8, 10]
4
  • phương thức concat(). Điều này được sử dụng để xếp chồng các khung dữ liệu theo chiều dọc. This is best used when the dataframes have the same columns and similar fields. cú pháp
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print(numbers[1 : : 2])  #output : [2, 4, 6, 8, 10]
5
  • phương thức tham gia (). Điều này được sử dụng để trích xuất dữ liệu từ các khung dữ liệu khác nhau có một hoặc nhiều cột chung
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print(numbers[1 : : 2])  #output : [2, 4, 6, 8, 10]
6

52. Bạn có thể tạo một chuỗi từ đối tượng từ điển trong gấu trúc không?

Mảng một chiều có khả năng chứa nhiều kiểu dữ liệu khác nhau được gọi là dãy. Chúng ta có thể tạo chuỗi pandas từ một đối tượng từ điển như hình bên dưới

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print(numbers[1 : : 2])  #output : [2, 4, 6, 8, 10]
7

Nếu một chỉ mục không được chỉ định trong phương thức nhập, thì các khóa của từ điển được sắp xếp theo thứ tự tăng dần để tạo chỉ mục. Trong trường hợp chỉ mục được thông qua, thì các giá trị của nhãn chỉ mục sẽ được trích xuất từ ​​​​từ điển

53. Bạn sẽ xác định và xử lý các giá trị bị thiếu trong khung dữ liệu như thế nào?

We can identify if a dataframe has missing values by using the isnull() and isna() methods

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print(numbers[1 : : 2])  #output : [2, 4, 6, 8, 10]
8

We can handle missing values by either replacing the values in the column with 0 as follows

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print(numbers[1 : : 2])  #output : [2, 4, 6, 8, 10]
9

Or by replacing it with the mean value of the column

import array
a = array.array('i', [1, 2, 3])
for i in a:
    print(i, end=' ')    #OUTPUT: 1 2 3
a = array.array('i', [1, 2, 'string'])    #OUTPUT: TypeError: an integer is required (got type str)
a = [1, 2, 'string']
for i in a:
   print(i, end=' ')    #OUTPUT: 1 2 string
0

54. What do you understand by reindexing in pandas?

Reindexing is the process of conforming a dataframe to a new index with optional filling logic. If the values are missing in the previous index, then NaN/NA is placed in the location. A new object is returned unless a new index is produced that is equivalent to the current one. The copy value is set to False. This is also used for changing the index of rows and columns in the dataframe

55. How to add new column to pandas dataframe?

A new column can be added to a pandas dataframe as follows

import array
a = array.array('i', [1, 2, 3])
for i in a:
    print(i, end=' ')    #OUTPUT: 1 2 3
a = array.array('i', [1, 2, 'string'])    #OUTPUT: TypeError: an integer is required (got type str)
a = [1, 2, 'string']
for i in a:
   print(i, end=' ')    #OUTPUT: 1 2 string
1

56. How will you delete indices, rows and columns from a dataframe?

To delete an Index

  • Execute
    def myEmptyFunc():
       # do nothing
       pass
    myEmptyFunc()    # nothing happens
    ## Without the pass keyword
    # File "", line 3
    # IndentationError: expected an indented block
    63 for removing the index by name
  • Alternatively, the
    def myEmptyFunc():
       # do nothing
       pass
    myEmptyFunc()    # nothing happens
    ## Without the pass keyword
    # File "", line 3
    # IndentationError: expected an indented block
    64 can be assigned to None
  • For example, if you have the below dataframe
import array
a = array.array('i', [1, 2, 3])
for i in a:
    print(i, end=' ')    #OUTPUT: 1 2 3
a = array.array('i', [1, 2, 'string'])    #OUTPUT: TypeError: an integer is required (got type str)
a = [1, 2, 'string']
for i in a:
   print(i, end=' ')    #OUTPUT: 1 2 string
2
  • To drop the index name “Names”
import array
a = array.array('i', [1, 2, 3])
for i in a:
    print(i, end=' ')    #OUTPUT: 1 2 3
a = array.array('i', [1, 2, 'string'])    #OUTPUT: TypeError: an integer is required (got type str)
a = [1, 2, 'string']
for i in a:
   print(i, end=' ')    #OUTPUT: 1 2 string
3

To delete row/column from dataframe

  • def myEmptyFunc():
       # do nothing
       pass
    myEmptyFunc()    # nothing happens
    ## Without the pass keyword
    # File "", line 3
    # IndentationError: expected an indented block
    65 method is used to delete row/column from dataframe
  • The axis argument is passed to the drop method where if the value is 0, it indicates to drop/delete a row and if 1 it has to drop the column
  • Ngoài ra, chúng ta có thể thử xóa các hàng/cột tại chỗ bằng cách đặt giá trị của inplace thành True. This makes sure that the job is done without the need for reassignment
  • The duplicate values from the row/column can be deleted by using the
    def myEmptyFunc():
       # do nothing
       pass
    myEmptyFunc()    # nothing happens
    ## Without the pass keyword
    # File "", line 3
    # IndentationError: expected an indented block
    66 method
Câu hỏi phỏng vấn về hàm trong Python

57. Can you get items of series A that are not available in another series B?

This can be achieved by using the

def myEmptyFunc():
   # do nothing
   pass
myEmptyFunc()    # nothing happens
## Without the pass keyword
# File "", line 3
# IndentationError: expected an indented block
67 (not/negation symbol) and
def myEmptyFunc():
   # do nothing
   pass
myEmptyFunc()    # nothing happens
## Without the pass keyword
# File "", line 3
# IndentationError: expected an indented block
68 method as shown below

import array
a = array.array('i', [1, 2, 3])
for i in a:
    print(i, end=' ')    #OUTPUT: 1 2 3
a = array.array('i', [1, 2, 'string'])    #OUTPUT: TypeError: an integer is required (got type str)
a = [1, 2, 'string']
for i in a:
   print(i, end=' ')    #OUTPUT: 1 2 string
4

58. How will you get the items that are not common to both the given series A and B?

We can achieve this by first performing the union of both series, then taking the intersection of both series. Then we follow the approach of getting items of union that are not there in the list of the intersection

Câu hỏi phỏng vấn về hàm trong Python

The following code demonstrates this

import array
a = array.array('i', [1, 2, 3])
for i in a:
    print(i, end=' ')    #OUTPUT: 1 2 3
a = array.array('i', [1, 2, 'string'])    #OUTPUT: TypeError: an integer is required (got type str)
a = [1, 2, 'string']
for i in a:
   print(i, end=' ')    #OUTPUT: 1 2 string
5

59. While importing data from different sources, can the pandas library recognize dates?

Yes, they can, but with some bit of help. We need to add the parse_dates argument while we are reading data from the sources. Consider an example where we read data from a CSV file, we may encounter different date-time formats that are not readable by the pandas library. In this case, pandas provide flexibility to build our custom date parser with the help of lambda functions as shown below

import array
a = array.array('i', [1, 2, 3])
for i in a:
    print(i, end=' ')    #OUTPUT: 1 2 3
a = array.array('i', [1, 2, 'string'])    #OUTPUT: TypeError: an integer is required (got type str)
a = [1, 2, 'string']
for i in a:
   print(i, end=' ')    #OUTPUT: 1 2 string
6

Numpy Interview Questions

60. What do you understand by NumPy?

NumPy is one of the most popular, easy-to-use, versatile, open-source, python-based, general-purpose package that is used for processing arrays. NumPy is short for NUMerical PYthon. This is very famous for its highly optimized tools that result in high performance and powerful N-Dimensional array processing feature that is designed explicitly to work on complex arrays. Due to its popularity and powerful performance and its flexibility to perform various operations like trigonometric operations, algebraic and statistical computations, it is most commonly used in performing scientific computations and various broadcasting functions. The following image shows the applications of NumPy

Câu hỏi phỏng vấn về hàm trong Python

61. How are NumPy arrays advantageous over python lists?

  • The list data structure of python is very highly efficient and is capable of performing various functions. But, they have severe limitations when it comes to the computation of vectorized operations which deals with element-wise multiplication and addition. The python lists also require the information regarding the type of every element which results in overhead as type dispatching code gets executes every time any operation is performed on any element. This is where the NumPy arrays come into the picture as all the limitations of python lists are handled in NumPy arrays
  • Additionally, as the size of the NumPy arrays increases, NumPy becomes around 30x times faster than the Python List. This is because the Numpy arrays are densely packed in the memory due to their homogenous nature. This ensures the memory free up is also faster

62. What are the steps to create 1D, 2D and 3D arrays?

  • 1D array creation
import array
a = array.array('i', [1, 2, 3])
for i in a:
    print(i, end=' ')    #OUTPUT: 1 2 3
a = array.array('i', [1, 2, 'string'])    #OUTPUT: TypeError: an integer is required (got type str)
a = [1, 2, 'string']
for i in a:
   print(i, end=' ')    #OUTPUT: 1 2 string
7
  • 2D array creation
import array
a = array.array('i', [1, 2, 3])
for i in a:
    print(i, end=' ')    #OUTPUT: 1 2 3
a = array.array('i', [1, 2, 'string'])    #OUTPUT: TypeError: an integer is required (got type str)
a = [1, 2, 'string']
for i in a:
   print(i, end=' ')    #OUTPUT: 1 2 string
8
  • Tạo mảng 3D
import array
a = array.array('i', [1, 2, 3])
for i in a:
    print(i, end=' ')    #OUTPUT: 1 2 3
a = array.array('i', [1, 2, 'string'])    #OUTPUT: TypeError: an integer is required (got type str)
a = [1, 2, 'string']
for i in a:
   print(i, end=' ')    #OUTPUT: 1 2 string
9
  • Tạo mảng ND. Điều này có thể đạt được bằng cách đưa ra thuộc tính ndmin. The below example demonstrates the creation of a 6D array
temp = 10   # global-scope variable
def func():
     temp = 20   # local-scope variable
     print(temp)
print(temp)   # output => 10
func()    # output => 20
print(temp)   # output => 10
0

63. Bạn được cung cấp một mảng có nhiều mảng và một cột mới làm đầu vào. Bạn sẽ xóa cột thứ hai và thay thế cột bằng một giá trị cột mới như thế nào?

Ví dụ
mảng đã cho

temp = 10   # global-scope variable
def func():
     temp = 20   # local-scope variable
     print(temp)
print(temp)   # output => 10
func()    # output => 20
print(temp)   # output => 10
1

Giá trị cột mới

temp = 10   # global-scope variable
def func():
     temp = 20   # local-scope variable
     print(temp)
print(temp)   # output => 10
func()    # output => 20
print(temp)   # output => 10
2

Giải pháp

temp = 10   # global-scope variable
def func():
     temp = 20   # local-scope variable
     print(temp)
print(temp)   # output => 10
func()    # output => 20
print(temp)   # output => 10
3

64. How will you efficiently load data from a text file?

Chúng ta có thể sử dụng phương thức

def myEmptyFunc():
   # do nothing
   pass
myEmptyFunc()    # nothing happens
## Without the pass keyword
# File "", line 3
# IndentationError: expected an indented block
69 có thể tự động đọc các dòng đầu trang và chân trang của tệp và các chú thích nếu có

Phương pháp này có hiệu quả cao và ngay cả khi phương pháp này kém hiệu quả hơn, thì dữ liệu sẽ được trình bày ở định dạng hiệu quả hơn, chẳng hạn như CSV, v.v. Nhiều lựa chọn thay thế khác nhau có thể được xem xét tùy thuộc vào phiên bản NumPy được sử dụng

Sau đây là các định dạng tệp được hỗ trợ

  • tệp văn bản. Các tệp này thường rất chậm, dung lượng lớn nhưng di động và con người có thể đọc được
  • Raw binary. Tệp này không có bất kỳ siêu dữ liệu nào và không thể di động. Nhưng chúng nhanh
  • Pickle. Đây là những đường viền chậm và di động nhưng phụ thuộc vào các phiên bản NumPy
  • HDF5. Đây được gọi là định dạng High-Powered Kitchen Sink hỗ trợ cả định dạng PyTables và h5py
  • npy. Đây là định dạng dữ liệu nhị phân riêng của NumPy cực kỳ đơn giản, hiệu quả và di động

65. Bạn sẽ đọc dữ liệu CSV thành một mảng trong NumPy như thế nào?

Điều này có thể đạt được bằng cách sử dụng phương thức genfromtxt() bằng cách đặt dấu phân cách là dấu phẩy

temp = 10   # global-scope variable
def func():
     temp = 20   # local-scope variable
     print(temp)
print(temp)   # output => 10
func()    # output => 20
print(temp)   # output => 10
4

66. Bạn sẽ sắp xếp mảng dựa trên cột thứ N như thế nào?

Ví dụ, xét một mảng arr

temp = 10   # global-scope variable
def func():
     temp = 20   # local-scope variable
     print(temp)
print(temp)   # output => 10
func()    # output => 20
print(temp)   # output => 10
5

Hãy để chúng tôi cố gắng sắp xếp các hàng theo cột thứ 2 để chúng tôi nhận được

temp = 10   # global-scope variable
def func():
     temp = 20   # local-scope variable
     print(temp)
print(temp)   # output => 10
func()    # output => 20
print(temp)   # output => 10
6

Chúng ta có thể làm điều này bằng cách sử dụng phương thức sort() trong numpy như

temp = 10   # global-scope variable
def func():
     temp = 20   # local-scope variable
     print(temp)
print(temp)   # output => 10
func()    # output => 20
print(temp)   # output => 10
7

Chúng tôi cũng có thể thực hiện sắp xếp và sắp xếp tại chỗ cũng vậy bằng cách thực hiện

temp = 10   # global-scope variable
def func():
     temp = 20   # local-scope variable
     print(temp)
print(temp)   # output => 10
func()    # output => 20
print(temp)   # output => 10
8

67. Làm thế nào bạn sẽ tìm thấy giá trị gần nhất trong một mảng có nhiều mảng đã cho?

Chúng ta có thể sử dụng phương thức argmin() của numpy như hình bên dưới

temp = 10   # global-scope variable
def func():
     temp = 20   # local-scope variable
     print(temp)
print(temp)   # output => 10
func()    # output => 20
print(temp)   # output => 10
9

68. Bạn sẽ đảo ngược mảng có nhiều mảng bằng cách sử dụng một dòng mã như thế nào?

Điều này có thể được thực hiện như thể hiện trong hình dưới đây

temp = 10   # global-scope variable
def func():
     global temp
     temp = 20   # local-scope variable
     print(temp)
print(temp)   # output => 10
func()    # output => 20
print(temp)   # output => 20
0

trong đó arr = mảng đã cho ban đầu, reverse_array là kết quả sau khi đảo ngược tất cả các phần tử trong đầu vào

69. Làm thế nào bạn sẽ tìm thấy hình dạng của bất kỳ mảng NumPy nào?

Chúng ta có thể sử dụng thuộc tính shape của mảng numpy để tìm hình dạng. Nó trả về hình dạng của mảng theo số hàng và số cột của mảng

temp = 10   # global-scope variable
def func():
     global temp
     temp = 20   # local-scope variable
     print(temp)
print(temp)   # output => 10
func()    # output => 20
print(temp)   # output => 20
1

Câu hỏi phỏng vấn thư viện Python

70. Phân biệt giữa gói và mô-đun trong python

Mô-đun là một tệp python duy nhất. Một mô-đun có thể nhập các mô-đun khác (các tệp python khác) làm đối tượng. Trong khi đó, một gói là thư mục/thư mục chứa các gói con khác nhau và các mô-đun nằm

Mô-đun python được tạo bằng cách lưu tệp có phần mở rộng là

def myEmptyFunc():
   # do nothing
   pass
myEmptyFunc()    # nothing happens
## Without the pass keyword
# File "", line 3
# IndentationError: expected an indented block
70. Tệp này sẽ có các lớp và chức năng có thể tái sử dụng trong mã cũng như trên các mô-đun

Gói python được tạo bằng cách thực hiện theo các bước bên dưới

  • Tạo một thư mục và đặt tên hợp lệ đại diện cho hoạt động của nó
  • Đặt các mô-đun cùng loại trong thư mục này
  • Tạo tệp
    def myEmptyFunc():
       # do nothing
       pass
    myEmptyFunc()    # nothing happens
    ## Without the pass keyword
    # File "", line 3
    # IndentationError: expected an indented block
    71 trong thư mục này. Điều này cho phép python biết thư mục chúng tôi đã tạo là một gói. Nội dung của gói này có thể được nhập qua các mô-đun khác nhau trong các gói khác để sử dụng lại chức năng

71. Một số mô-đun tích hợp được sử dụng phổ biến nhất trong Python là gì?

Mô-đun Python là các tệp có mã python có thể là hàm, biến hoặc lớp. Chúng đi qua. phần mở rộng py. Các mô-đun tích hợp sẵn phổ biến nhất là

  • hệ điều hành
  • môn Toán
  • hệ thống
  • ngẫu nhiên
  • lại
  • ngày giờ
  • JSON

72. Hàm lambda là gì?

Các hàm lambda nói chung là các hàm ẩn danh, nội tuyến được biểu thị bằng một biểu thức duy nhất. Chúng được sử dụng để tạo các đối tượng chức năng trong thời gian chạy. Họ có thể chấp nhận bất kỳ số lượng tham số nào. Chúng thường được sử dụng khi các chức năng chỉ được yêu cầu trong một thời gian ngắn. Chúng có thể được sử dụng như

temp = 10   # global-scope variable
def func():
     global temp
     temp = 20   # local-scope variable
     print(temp)
print(temp)   # output => 10
func()    # output => 20
print(temp)   # output => 20
2

73. Làm thế nào bạn có thể tạo số ngẫu nhiên?

Python cung cấp một mô-đun được gọi là ngẫu nhiên bằng cách sử dụng để chúng ta có thể tạo các số ngẫu nhiên

  • Chúng ta phải nhập một mô-đun ngẫu nhiên và gọi phương thức
    def myEmptyFunc():
       # do nothing
       pass
    myEmptyFunc()    # nothing happens
    ## Without the pass keyword
    # File "", line 3
    # IndentationError: expected an indented block
    72 như hình bên dưới
    • Phương thức random() tạo các giá trị float nằm trong khoảng từ 0 đến 1 một cách ngẫu nhiên
temp = 10   # global-scope variable
def func():
     global temp
     temp = 20   # local-scope variable
     print(temp)
print(temp)   # output => 10
func()    # output => 20
print(temp)   # output => 20
3
  • Để tạo các số ngẫu nhiên tùy chỉnh giữa các phạm vi được chỉ định, chúng ta có thể sử dụng phương thức
    def myEmptyFunc():
       # do nothing
       pass
    myEmptyFunc()    # nothing happens
    ## Without the pass keyword
    # File "", line 3
    # IndentationError: expected an indented block
    73
    cú pháp.
    def myEmptyFunc():
       # do nothing
       pass
    myEmptyFunc()    # nothing happens
    ## Without the pass keyword
    # File "", line 3
    # IndentationError: expected an indented block
    74
    Ví dụ
temp = 10   # global-scope variable
def func():
     global temp
     temp = 20   # local-scope variable
     print(temp)
print(temp)   # output => 10
func()    # output => 20
print(temp)   # output => 20
4

74. Bạn có thể dễ dàng kiểm tra xem tất cả các ký tự trong chuỗi đã cho có phải là chữ và số không?

Điều này có thể dễ dàng thực hiện bằng cách sử dụng phương thức isalnum() trả về giá trị true trong trường hợp chuỗi chỉ có các ký tự chữ và số

Ví dụ -

temp = 10   # global-scope variable
def func():
     global temp
     temp = 20   # local-scope variable
     print(temp)
print(temp)   # output => 10
func()    # output => 20
print(temp)   # output => 20
5

Một cách khác là sử dụng phương thức

def myEmptyFunc():
   # do nothing
   pass
myEmptyFunc()    # nothing happens
## Without the pass keyword
# File "", line 3
# IndentationError: expected an indented block
75 từ mô-đun re (regex) như được hiển thị

temp = 10   # global-scope variable
def func():
     global temp
     temp = 20   # local-scope variable
     print(temp)
print(temp)   # output => 10
func()    # output => 20
print(temp)   # output => 20
6

75. Đâu là sự khác biệt giữa pickling và unpickling ?

Pickling là việc chuyển đổi các đối tượng python sang dạng nhị phân. Trong khi đó, giải nén là chuyển đổi dữ liệu dạng nhị phân thành các đối tượng python. Các đối tượng được chọn được sử dụng để lưu trữ trong đĩa hoặc vị trí bộ nhớ ngoài. Các đối tượng chưa được giải nén được sử dụng để lấy lại dữ liệu dưới dạng các đối tượng python mà quá trình xử lý có thể được thực hiện trong python

Python cung cấp một mô-đun

def myEmptyFunc():
   # do nothing
   pass
myEmptyFunc()    # nothing happens
## Without the pass keyword
# File "", line 3
# IndentationError: expected an indented block
76 để đạt được điều này. Pickling sử dụng phương pháp
def myEmptyFunc():
   # do nothing
   pass
myEmptyFunc()    # nothing happens
## Without the pass keyword
# File "", line 3
# IndentationError: expected an indented block
58 để kết xuất các đối tượng python vào đĩa. Unpickling sử dụng phương thức
def myEmptyFunc():
   # do nothing
   pass
myEmptyFunc()    # nothing happens
## Without the pass keyword
# File "", line 3
# IndentationError: expected an indented block
59 để lấy lại dữ liệu dưới dạng đối tượng python

Câu hỏi phỏng vấn về hàm trong Python

76. Xác định GIL

GIL là viết tắt của Khóa phiên dịch toàn cầu. Đây là một mutex được sử dụng để hạn chế quyền truy cập vào các đối tượng python và hỗ trợ đồng bộ hóa chuỗi hiệu quả bằng cách tránh bế tắc. GIL giúp đạt được đa nhiệm (chứ không phải tính toán song song). Sơ đồ sau đây thể hiện cách thức hoạt động của GIL

Câu hỏi phỏng vấn về hàm trong Python

Dựa trên sơ đồ trên, có ba chủ đề. Chủ đề đầu tiên có được GIL trước và bắt đầu thực thi I/O. Khi các hoạt động I/O được thực hiện xong, luồng 1 giải phóng GIL đã thu được sau đó được xử lý bởi luồng thứ hai. Quá trình lặp lại và GIL được sử dụng luân phiên bởi các luồng khác nhau cho đến khi các luồng hoàn thành việc thực thi của chúng. Các luồng không có khóa GIL sẽ chuyển sang trạng thái chờ và chỉ tiếp tục thực thi khi nhận được khóa

77. Xác định PYTHONPATH

Nó là một biến môi trường được sử dụng để kết hợp các thư mục bổ sung trong quá trình nhập mô-đun hoặc gói. PYTHONPATH được sử dụng để kiểm tra xem các gói hoặc mô-đun đã nhập có sẵn trong các thư mục hiện có hay không. Không chỉ vậy, trình thông dịch sử dụng biến môi trường này để xác định mô-đun nào cần được tải

78. Xác định PIP

PIP là viết tắt của Gói cài đặt Python. Như tên cho thấy, nó được sử dụng để cài đặt các mô-đun python khác nhau. Nó là một công cụ dòng lệnh cung cấp giao diện liền mạch để cài đặt các mô-đun python khác nhau. Nó tìm kiếm gói trên internet và cài đặt chúng vào thư mục làm việc mà không cần bất kỳ tương tác nào với người dùng. Cú pháp cho điều này là

temp = 10   # global-scope variable
def func():
     global temp
     temp = 20   # local-scope variable
     print(temp)
print(temp)   # output => 10
func()    # output => 20
print(temp)   # output => 20
7

79. Có công cụ nào để xác định lỗi và thực hiện phân tích tĩnh trong python không?

Có, có những công cụ như PyChecker và Pylint được sử dụng làm công cụ phân tích tĩnh và linting tương ứng. PyChecker giúp tìm lỗi trong tệp mã nguồn python và đưa ra cảnh báo về các sự cố mã và độ phức tạp của chúng. Pylint kiểm tra các tiêu chuẩn mã hóa của mô-đun và hỗ trợ các plugin khác nhau để kích hoạt các tính năng tùy chỉnh nhằm đáp ứng yêu cầu này

80. Phân biệt giữa các bản sao sâu và nông

  • Bản sao nông thực hiện nhiệm vụ tạo các đối tượng mới lưu trữ các tham chiếu của các phần tử gốc. Điều này không trải qua đệ quy để tạo bản sao của các đối tượng lồng nhau. Nó chỉ sao chép chi tiết tham chiếu của các đối tượng lồng nhau
  • Bản sao sâu tạo một bản sao độc lập và mới của một đối tượng và thậm chí sao chép tất cả các đối tượng lồng nhau của phần tử gốc theo cách đệ quy

81. Chức năng chính trong python là gì?

Trong thế giới của các ngôn ngữ lập trình, main được coi là điểm bắt đầu thực thi của một chương trình. Nhưng trong python, người ta biết rằng trình thông dịch sẽ dịch từng dòng tệp một cách tuần tự. Điều này có nghĩa là python không cung cấp chức năng

def myEmptyFunc():
   # do nothing
   pass
myEmptyFunc()    # nothing happens
## Without the pass keyword
# File "", line 3
# IndentationError: expected an indented block
79 một cách rõ ràng. Nhưng điều này không có nghĩa là chúng ta không thể mô phỏng việc thực thi chính. Điều này có thể được thực hiện bằng cách xác định hàm
def myEmptyFunc():
   # do nothing
   pass
myEmptyFunc()    # nothing happens
## Without the pass keyword
# File "", line 3
# IndentationError: expected an indented block
79 do người dùng định nghĩa và bằng cách sử dụng thuộc tính
def myEmptyFunc():
   # do nothing
   pass
myEmptyFunc()    # nothing happens
## Without the pass keyword
# File "", line 3
# IndentationError: expected an indented block
81 của tệp python. Biến
def myEmptyFunc():
   # do nothing
   pass
myEmptyFunc()    # nothing happens
## Without the pass keyword
# File "", line 3
# IndentationError: expected an indented block
81 này là một biến tích hợp đặc biệt trỏ đến tên của mô-đun hiện tại. Điều này có thể được thực hiện như hình dưới đây

temp = 10   # global-scope variable
def func():
     global temp
     temp = 20   # local-scope variable
     print(temp)
print(temp)   # output => 10
func()    # output => 20
print(temp)   # output => 20
8

Ví dụ lập trình Python

82. Viết hàm python có số lượng đối số thay đổi

Một hàm nhận đối số thay đổi được gọi là nguyên mẫu hàm. cú pháp

temp = 10   # global-scope variable
def func():
     global temp
     temp = 20   # local-scope variable
     print(temp)
print(temp)   # output => 10
func()    # output => 20
print(temp)   # output => 20
9

Ví dụ

# decorator function to convert to lowercase
def lowercase_decorator(function):
   def wrapper():
       func = function()
       string_lowercase = func.lower()
       return string_lowercase
   return wrapper
# decorator function to split words
def splitter_decorator(function):
   def wrapper():
       func = function()
       string_split = func.split()
       return string_split
   return wrapper
@splitter_decorator # this is executed next
@lowercase_decorator # this is executed first
def hello():
   return 'Hello World'
hello()   # output => [ 'hello' , 'world' ]
0

* trong đối số hàm đại diện cho các đối số biến trong hàm

83. WAP (Viết chương trình) lấy một dãy số và kiểm tra xem tất cả các số có phải là duy nhất không

Bạn có thể làm điều này bằng cách chuyển đổi danh sách thành tập hợp bằng cách sử dụng phương thức set() và so sánh độ dài của tập hợp này với độ dài của danh sách ban đầu. Nếu tìm thấy bằng nhau, trả về True

# decorator function to convert to lowercase
def lowercase_decorator(function):
   def wrapper():
       func = function()
       string_lowercase = func.lower()
       return string_lowercase
   return wrapper
# decorator function to split words
def splitter_decorator(function):
   def wrapper():
       func = function()
       string_split = func.split()
       return string_split
   return wrapper
@splitter_decorator # this is executed next
@lowercase_decorator # this is executed first
def hello():
   return 'Hello World'
hello()   # output => [ 'hello' , 'world' ]
1

84. Viết chương trình đếm số lượng từng ký tự của một tệp văn bản đã cho

Ý tưởng là sử dụng bộ sưu tập và mô-đun pprint như hình bên dưới

# decorator function to convert to lowercase
def lowercase_decorator(function):
   def wrapper():
       func = function()
       string_lowercase = func.lower()
       return string_lowercase
   return wrapper
# decorator function to split words
def splitter_decorator(function):
   def wrapper():
       func = function()
       string_split = func.split()
       return string_split
   return wrapper
@splitter_decorator # this is executed next
@lowercase_decorator # this is executed first
def hello():
   return 'Hello World'
hello()   # output => [ 'hello' , 'world' ]
2

85. Viết chương trình kiểm tra và trả về các cặp của một mảng A đã cho có giá trị tổng bằng giá trị đích N

Điều này có thể được thực hiện dễ dàng bằng cách sử dụng hiện tượng băm. Chúng ta có thể sử dụng bản đồ băm để kiểm tra giá trị hiện tại của mảng, x. Nếu bản đồ có giá trị là (N-x) thì có cặp của chúng ta

# decorator function to convert to lowercase
def lowercase_decorator(function):
   def wrapper():
       func = function()
       string_lowercase = func.lower()
       return string_lowercase
   return wrapper
# decorator function to split words
def splitter_decorator(function):
   def wrapper():
       func = function()
       string_split = func.split()
       return string_split
   return wrapper
@splitter_decorator # this is executed next
@lowercase_decorator # this is executed first
def hello():
   return 'Hello World'
hello()   # output => [ 'hello' , 'world' ]
3

86. Viết chương trình cộng hai số nguyên >0 không dùng toán tử cộng

Chúng ta có thể sử dụng toán tử bitwise để đạt được điều này

# decorator function to convert to lowercase
def lowercase_decorator(function):
   def wrapper():
       func = function()
       string_lowercase = func.lower()
       return string_lowercase
   return wrapper
# decorator function to split words
def splitter_decorator(function):
   def wrapper():
       func = function()
       string_split = func.split()
       return string_split
   return wrapper
@splitter_decorator # this is executed next
@lowercase_decorator # this is executed first
def hello():
   return 'Hello World'
hello()   # output => [ 'hello' , 'world' ]
4

87. Viết chương trình giải phương trình đã cho với giả sử a,b,c,m,n,o là các hằng số

# decorator function to convert to lowercase
def lowercase_decorator(function):
   def wrapper():
       func = function()
       string_lowercase = func.lower()
       return string_lowercase
   return wrapper
# decorator function to split words
def splitter_decorator(function):
   def wrapper():
       func = function()
       string_split = func.split()
       return string_split
   return wrapper
@splitter_decorator # this is executed next
@lowercase_decorator # this is executed first
def hello():
   return 'Hello World'
hello()   # output => [ 'hello' , 'world' ]
5

Bằng cách giải phương trình, chúng ta nhận được

# decorator function to convert to lowercase
def lowercase_decorator(function):
   def wrapper():
       func = function()
       string_lowercase = func.lower()
       return string_lowercase
   return wrapper
# decorator function to split words
def splitter_decorator(function):
   def wrapper():
       func = function()
       string_split = func.split()
       return string_split
   return wrapper
@splitter_decorator # this is executed next
@lowercase_decorator # this is executed first
def hello():
   return 'Hello World'
hello()   # output => [ 'hello' , 'world' ]
6

88. Viết Chương trình để khớp một chuỗi có chữ cái ‘a’ theo sau là 4 đến 8 'b’s

Chúng ta có thể sử dụng mô-đun re của python để thực hiện so sánh mẫu biểu thức chính quy tại đây

# decorator function to convert to lowercase
def lowercase_decorator(function):
   def wrapper():
       func = function()
       string_lowercase = func.lower()
       return string_lowercase
   return wrapper
# decorator function to split words
def splitter_decorator(function):
   def wrapper():
       func = function()
       string_split = func.split()
       return string_split
   return wrapper
@splitter_decorator # this is executed next
@lowercase_decorator # this is executed first
def hello():
   return 'Hello World'
hello()   # output => [ 'hello' , 'world' ]
7

89. Viết chương trình chuyển ngày từ dạng yyyy-mm-dd sang dạng dd-mm-yyyy

Chúng ta lại có thể sử dụng mô-đun re để chuyển đổi chuỗi ngày như hình bên dưới

# decorator function to convert to lowercase
def lowercase_decorator(function):
   def wrapper():
       func = function()
       string_lowercase = func.lower()
       return string_lowercase
   return wrapper
# decorator function to split words
def splitter_decorator(function):
   def wrapper():
       func = function()
       string_split = func.split()
       return string_split
   return wrapper
@splitter_decorator # this is executed next
@lowercase_decorator # this is executed first
def hello():
   return 'Hello World'
hello()   # output => [ 'hello' , 'world' ]
8

Bạn cũng có thể sử dụng mô-đun datetime như hình bên dưới

# decorator function to convert to lowercase
def lowercase_decorator(function):
   def wrapper():
       func = function()
       string_lowercase = func.lower()
       return string_lowercase
   return wrapper
# decorator function to split words
def splitter_decorator(function):
   def wrapper():
       func = function()
       string_split = func.split()
       return string_split
   return wrapper
@splitter_decorator # this is executed next
@lowercase_decorator # this is executed first
def hello():
   return 'Hello World'
hello()   # output => [ 'hello' , 'world' ]
9

90. Viết chương trình kết hợp hai từ điển khác nhau. Trong khi kết hợp, nếu bạn tìm thấy các khóa giống nhau, bạn có thể thêm các giá trị của các khóa giống nhau. Xuất từ ​​điển mới

Chúng ta có thể sử dụng phương thức Counter từ mô-đun bộ sưu tập

# decorator function to capitalize names
def names_decorator(function):
   def wrapper(arg1, arg2):
       arg1 = arg1.capitalize()
       arg2 = arg2.capitalize()
       string_hello = function(arg1, arg2)
       return string_hello
   return wrapper
@names_decorator
def say_hello(name1, name2):
   return 'Hello ' + name1 + '! Hello ' + name2 + '!'
say_hello('sara', 'ansh')   # output => 'Hello Sara! Hello Ansh!'
0

91. Bạn sẽ truy cập tập dữ liệu của bảng tính được chia sẻ công khai ở định dạng CSV được lưu trữ trong Google Drive bằng cách nào?

Chúng tôi có thể sử dụng mô-đun StringIO từ mô-đun io để đọc từ liên kết Google Drive và sau đó chúng tôi có thể sử dụng thư viện pandas bằng nguồn dữ liệu thu được

# decorator function to capitalize names
def names_decorator(function):
   def wrapper(arg1, arg2):
       arg1 = arg1.capitalize()
       arg2 = arg2.capitalize()
       string_hello = function(arg1, arg2)
       return string_hello
   return wrapper
@names_decorator
def say_hello(name1, name2):
   return 'Hello ' + name1 + '! Hello ' + name2 + '!'
say_hello('sara', 'ansh')   # output => 'Hello Sara! Hello Ansh!'
1

Phần kết luận

Trong bài viết này, chúng ta đã xem các câu hỏi phỏng vấn thường gặp dành cho nhà phát triển python. Những câu hỏi này cùng với các buổi thực hành giải quyết vấn đề thông thường sẽ giúp bạn phá vỡ mọi cuộc phỏng vấn dựa trên python. Trong những năm qua, python đã trở nên phổ biến trong cộng đồng các nhà phát triển do tính đơn giản và khả năng hỗ trợ tính toán mạnh mẽ của nó. Do đó, nhu cầu về các nhà phát triển python giỏi ngày càng tăng. Tuy nhiên, phải đề cập rằng, các đặc quyền của việc trở thành nhà phát triển python thực sự tốt. Cùng với kiến ​​thức lý thuyết về python, người ta cũng nhấn mạnh vào khả năng viết mã chất lượng tốt. Vì vậy, hãy tiếp tục học hỏi và tiếp tục thực hành các vấn đề và không nghi ngờ gì nữa, bạn có thể vượt qua bất kỳ cuộc phỏng vấn nào

4 loại hàm trong Python là gì?

Sau đây là các loại Hàm Python khác nhau. .
Hàm tích hợp Python
Hàm đệ quy Python
Hàm Lambda trong Python
Các hàm do người dùng định nghĩa trong Python

Chức năng quan trọng nhất trong Python là gì?

Các chức năng hữu ích nhất trong Python là gì? . print(), abs(), round(), min(), max(), sorted(), sum(), and len().

Câu hỏi phỏng vấn chức năng là gì?

Các câu hỏi phỏng vấn kiểm tra chức năng bao gồm kết hợp các câu hỏi tình huống, chung chung và kỹ thuật giúp người quản lý tuyển dụng xác định xem bạn có phải là ứng viên phù hợp cho vai trò này hay không. Interviewers often ask questions that help them evaluate your technical expertise, personality, inherent traits and skills.

3 chức năng trong Python là gì?

Có ba chức năng trong python mang lại tính thực tế và hữu dụng khi lập trình. Ba chức năng này, cung cấp một phong cách lập trình chức năng trong ngôn ngữ python hướng đối tượng, là map(), filter() và reduce() .