Bộ câu hỏi phỏng vấn Python phần 1

Nêu các đặc điểm chính của Python?


  • Python là một ngôn ngữ thông dịch, nghĩa là Python không cần phải được biên dịch trước khi nó được chạy. Các ngôn ngữ thông dịch khác bao gồm PHP và Ruby.
  • Python được nhập động, điều này có nghĩa là bạn không cần phải nêu rõ các loại biến khi bạn khai báo chúng hoặc bất kỳ thứ gì giống như vậy. Bạn có thể làm những việc như x = 111 và sau đó x = "Tôi là một chuỗi" mà không có lỗi.
  • Python rất phù hợp với lập trình hướng đối tượng ở chỗ nó cho phép định nghĩa các lớp cùng với thành phần và kế thừa. Python không có các đặc tả truy cập (như public, private của C++), sự biện minh cho điểm này được cho là "chúng ta đều là người lớn ở đây"
  • Trong Python, các hàm là các đối tượng hạng nhất (first-class objects). Điều này có nghĩa là chúng có thể được gán cho các biến, được trả về từ các hàm khác và được truyền vào các hàm. Các lớp cũng là các đối tượng hạng nhất.
  • Viết mã Python nhanh nhưng chạy nó thường chậm hơn các ngôn ngữ biên dịch. May mắn thay, Python cho phép bao gồm các phần mở rộng dựa trên C, do đó, tắc nghẽn có thể được tối ưu hóa đi và thường là. Gói "numpy" là một ví dụ tốt về điều này, nó thực sự khá nhanh bởi vì rất nhiều con số crunching nó không thực sự được thực hiện bởi Python
  • Python tìm thấy việc sử dụng trong nhiều lĩnh vực - các ứng dụng web, tự động hóa, mô hình hóa khoa học, các ứng dụng dữ liệu lớn và nhiều hơn nữa. Nó cũng thường được sử dụng như là "keo" mã để có được các ngôn ngữ và các thành phần khác.

Sự khác biệt giữa Deep copy and Shadow copy?


  • Shadow copy được sử dụng khi một loại cá thể mới được tạo và nó giữ các giá trị được sao chép trong cá thể mới. Shadow copy được sử dụng để sao chép các con trỏ tham chiếu giống như nó sao chép các giá trị. Các tham chiếu này trỏ đến các đối tượng gốc và các thay đổi được thực hiện trong bất kỳ thành viên nào của lớp cũng sẽ ảnh hưởng đến bản gốc của nó. Shadow copy cho phép thực thi chương trình nhanh hơn và nó phụ thuộc vào kích thước của dữ liệu được sử dụng.
  • Deep copy được sử dụng để lưu trữ các giá trị đã được sao chép. Deep copy không sao chép các con trỏ tham chiếu đến các đối tượng. Nó làm cho tham chiếu đến một đối tượng và đối tượng mới được trỏ bởi một số đối tượng khác được lưu trữ. Những thay đổi được thực hiện trong bản gốc sẽ không ảnh hưởng đến bất kỳ bản sao nào khác sử dụng đối tượng. Deep copy giúp thực hiện chương trình chậm hơn do tạo một số bản sao nhất định cho từng đối tượng được gọi.

Sự khác nhau giữa List and Tuples?


List là mutable, tức là chúng có thể được chỉnh sửa.

list_1 = [10, 'Chelsea', 20]

Tuples là immutable (tuples là list nhưng không thể chỉnh sửa được).

tup_1 = (10, 'Chelsea', 20)

Multithreading thực thi thế nào trong Python?


Python có một gói multi-threading nếu bạn muốn đa luồng để tăng tốc mã của bạn. Python có một cấu trúc được gọi là Global Interpreter Lock (GIL).

GIL đảm bảo rằng chỉ một trong các thread của bạn có thể thực thi cùng một lúc. Một thread yêu cầu tới GIL, thực hiện một công việc nhỏ, sau đó chuyển GIL lên luồng tiếp theo. Điều này xảy ra rất nhanh chóng để mắt người nó có thể có vẻ như các thead của bạn đang thực hiện song song, nhưng chúng thực sự chỉ thay phiên nhau bằng cách sử dụng cùng một lõi CPU. Tất cả điều này GIL đi qua cho biết thêm chi phí để thực hiện. Điều này có nghĩa là nếu bạn muốn làm cho mã của bạn chạy nhanh hơn thì việc sử dụng gói luồng thường không phải là một ý tưởng hay.

Các toán tử bậc ba được sử dụng thế nào trong Python?


Toán tử bậc ba là toán tử được sử dụng để hiển thị các câu lệnh có điều kiện. Điều này bao gồm các giá trị đúng hoặc sai với một câu lệnh phải được đánh giá cho nó. Cú pháp toán tử bậc ba như sau:

[on_true] if [expression] else [on_false]x, y = 25, 50big = x if x < y else y

Giải thích Kế thừa trong Python?


Thừa kế cho phép một lớp để đạt được tất cả các thành viên (nói thuộc tính và phương pháp) của một lớp khác. Thừa kế cung cấp khả năng sử dụng lại mã, giúp tạo và duy trì một ứng dụng dễ dàng hơn. Lớp mà chúng ta đang kế thừa được gọi là siêu lớp và lớp được kế thừa được gọi là lớp dẫn xuất / lớp con.

Các kiểu thừa kế khác nhau được Python hỗ trợ:

  • Single Inheritance - nơi mà một lớp dẫn xuất thu được các thành viên của một lớp siêu đơn.
  • Multi-level inheritance - một lớp dẫn xuất d1 được kế thừa từ lớp cơ sở base1 và d2 được kế thừa từ base2.
  • Hierarchical inheritance - từ một lớp cơ sở, bạn có thể kế thừa bất kỳ số lượng lớp con nào.
  • Multiple inheritance - một lớp dẫn xuất được kế thừa từ nhiều hơn một lớp cơ sở.

Memory được quản lý thế nào trong Python?


Python memory được quản lý bởi không gian vùng heap riêng của Python.

Tất cả các đối tượng và cấu trúc dữ liệu Python được đặt trong một heap riêng. Lập trình viên không có quyền truy cập vào vùng heap riêng này và trình thông dịch sẽ quản lý vùng heap riêng của Python này. Việc phân bổ không gian heap Python cho các đối tượng Python được thực hiện bởi trình quản lý bộ nhớ Python. API lõi cho phép truy cập vào một số công cụ để lập trình viên mã hóa.

Python cũng có một bộ thu gom rác sẵn có, tái chế tất cả bộ nhớ không sử dụng và giải phóng bộ nhớ và làm cho nó sẵn sàng cho không gian heap.

Flask là gì và lợi ích của nó như thế nào?


Flask là một Web micro framework dành cho Python dựa trên giấy phép BSD “Werkzeug, Jinja2 and good intentions”.

Werkzeug và Jinja2 là hai dependency của nó. Điều này có nghĩa là nó sẽ có rất ít hoặc không phụ thuộc vào các thư viện bên ngoài. Nó làm cho framework thông thoáng hơn khi có rất ít sự phụ thuộc đến cập nhật và ít lỗi bảo mật hơn.

Một Session cơ bản cho phép bạn ghi nhớ thông tin từ yêu cầu này sang yêu cầu khác. Trong một Flask, một Session sử dụng một signed cookie để người dùng có thể xem nội dung Session và sửa đổi. Người dùng có thể sửa đổi phiên nếu nó chỉ có khóa bí mật Flask.secret_key.

Tác dụng của hàm help() và dir() trong Python?


  • Cả hai hàm help()dir() đều có thể truy cập được từ trình thông dịch Python và được sử dụng để xem một hàm tổng hợp của các hàm dựng sẵn.
  • Hàm Help(): Hàm help() được sử dụng để hiển thị chuỗi tài liệu và cũng tạo điều kiện cho bạn thấy trợ giúp liên quan đến các mô-đun, từ khóa, thuộc tính, v.v.
  • Hàm Dir(): Hàm dir() được sử dụng để hiển thị các ký hiệu đã xác định (defined symbols).

Dictionary trong Python là gì?


Các kiểu dữ liệu dựng sẵn trong Python được gọi là Dictionary. Nó định nghĩa mối quan hệ một-một giữa các khóa và các giá trị. Dictionary chứa cặp khóa và giá trị tương ứng của chúng.

Từ điển được lập chỉ mục bằng các khóa. Ví dụ:

dict={ 'Country':'India', 'Capital':'Delhi', 'PM':'Modi' }
print dict[Country]

Kết quả: India

print dict[Capital]

Kết quả: Delhi

print dict[PM]

Kết quả: Modi

Avatar Techmely Team
VIẾT BỞI

Techmely Team