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

76 Các câu hỏi phỏng vấn Python Developer được chia sẻ bởi các ứng viên

Chuẩn bị cho một cuộc phỏng vấn chủ yếu là dành thời gian để xem xét kỹ lưỡng các mục tiêu và trình độ của bạn so với vị trí và nhà tuyển dụng. Để thực hiện được điều này, bạn nên thực hiện tìm hiểu về công ty và xem xét cẩn thận mô tả công việc và bản thân để có cuộc phỏng vấn tốt nhất. Dưới đây là những câu hỏi phỏng vấn vị trí Python Developer thường gặp.

Bộ câu hỏi phỏng vấn về thông tin cá nhân

Bạn hãy giới thiệu sơ lược về bản thân?

Giới thiệu thông tin cơ bản của bản thân là một trong những câu hỏi mở đầu của buổi phỏng vấn. Có thể người phỏng vấn của bạn biết vị trí bạn đang ứng tuyển và đã xem sơ yếu lý lịch của bạn. Tuy nhiên, bạn nên chuẩn bị một bài giới thiệu  ngắn gọn để đảm bảo họ biết bạn là ai và vai trò mà bạn đang phỏng vấn. Qua đây, nhà tuyển dụng cũng dễ trò chuyện trong những câu hỏi tiếp theo. Bạn hãy trả lời với sự tự tin, lời nói rõ ràng để lấy được thiện cảm từ cái nhìn đầu tiên.

Bạn hãy nói sơ lược về thông tin cá nhân như tên, tuổi để xưng hô cho thuận tiện. Tiếp theo bạn nên giới thiệu thông tin về bằng cấp, trường học hay các khóa đào tạo mình đã học. Bạn hãy chú trọng nói những kinh nghiệm liên quan đến công việc mà bạn có đối với một Python Developer .

Ngoài ra bạn cần lưu ý khi giới thiệu bản thân trong một cuộc phỏng vấn, về những việc cần làm, bạn cũng sẽ muốn lưu ý đến những việc không nên làm. Trong phần giới thiệu của bạn, hãy tránh:

  • Lan man trong phần giới thiệu của bạn
  • Cần nhắc lại phần giới thiệu của bạn
  • Vội vàng thông qua phần giới thiệu của bạn

Mục tiêu nghề nghiệp của bạn là gì?

Nhà tuyển dụng thường hỏi về mục tiêu tương lai của bạn để xác định xem bạn có khả năng gắn bó lâu dài với công ty hay không. Ngoài ra, câu hỏi này còn được dùng để đánh giá tham vọng, kỳ vọng của bạn đối với sự nghiệp và khả năng lập kế hoạch cho tương lai. Cách trả lời câu hỏi phỏng vấn này là bạn cần xác định rõ định hướng nghề nghiệp của mình là gì, đồng thời nói ra mục đích cuối cùng của bản thân muốn hướng tới ra sao.

Định hướng nghề nghiệp đưa ra cần thực tế, liên quan trực tiếp tới doanh nghiệp và công việc đang ứng tuyển kèm lý do: "Tôi muốn phát triển hơn nữa các kỹ năng chuyên môn cho công việc này. Tôi xác định đây là công việc yêu thích và muốn gắn bó lâu dài".

Vì sao bạn nghỉ việc ở công ty cũ?

Đây là một trong các câu hỏi thường gặp khi phỏng vấn và có thể gây khó khăn cho bạn. Chuẩn bị một câu trả lời chu đáo để người phỏng vấn tin tưởng rằng bạn đang cân nhắc về việc thay đổi công việc này. Thay vì tập trung vào những khía cạnh tiêu cực của vai trò hiện tại hoặc trước đây của bạn, hãy tập trung vào tương lai và những gì bạn hy vọng đạt được ở vị trí tiếp theo. Vì vậy, hãy đưa ra câu trả lời mà không ảnh hưởng gì đến kết quả phỏng vấn:

  • Trường hợp bị sa thải: Hãy nói rõ nguyên nhân phạm lỗi và bài học của bản thân rút ra để tránh lặp lại sai lầm.
  • Nếu tự nguyện nghỉ việc: Giải thích theo cách tích cực nhất. Ví dụ: Định hướng phát triển của công ty cũ không còn phù hợp; cơ hội để phát triển bản thân không cao, muốn tìm môi trường mới năng động hơn...

Điểm mạnh của bạn là gì? Lý do doanh nghiệp nên chọn bạn?

Nhà tuyển dụng muốn chắc chắn rằng bạn thật sự tự tin về những ưu điểm của mình hiện có. Vì vậy bạn hãy trả lời rõ ràng, dõng dạc nhưng cũng đừng nhắc lại tất cả những điều đã ghi trong CV. Bạn có thể kể thêm các điểm mạnh của mình hay đặt chúng vào tình huống cụ thể nhằm minh họa rõ ràng ưu điểm đó. Nhà tuyển dụng sẽ có cái nhìn sâu hơn về những lợi thế của bạn đấy.

Mức lương ở công ty cũ của bạn là bao nhiêu?

Kinh nghiệm phỏng vấn khi trả lời mức lương ở công ty cũ là:

  • Sử dụng con số chung chung: Thay vì nói con số chính xác, bạn có thể cung cấp  con số chung chung. 
  • Sử dụng một phạm vi: Bạn có thể cung cấp mức lương khởi điểm và mức lương hiện tại ở công ty cũ. 
  • Cung cấp con số chính xác: Bạn hoàn toàn có thể chia sẻ thẳng thắn nhưng nên cung cấp tổng mức lương hàng năm trước thuế TNCN để tránh tạo cảm giác lương của bạn đang ở mức thấp hơn.

Bạn mong muốn mức lương bao nhiêu?

Nhà phỏng vấn hỏi câu hỏi này để đảm bảo rằng kỳ vọng của bạn phù hợp với số tiền họ đã dự trù cho vai trò này. Nếu bạn đưa ra mức lương quá thấp hoặc cao hơn giá trị thị trường của vị trí đó, điều đó sẽ tạo ấn tượng rằng bạn không biết giá trị của mình.

Để trả lời các câu hỏi thường gặp khi phỏng vấn này, bạn nên tìm hiểu trước về mức lương chung cho vị trí cũng như mức độ kinh nghiệm của mình. Từ đó, bạn sẽ dung hòa để đưa ra mức lương không quá cao nhưng không phải thấp, đủ để thấy được giá trị bản thân.

Ngoài mức lương, bạn nên trao đổi thẳng thắn về các quyền lợi bảo hiểm xã hội, phụ cấp xăng, ăn uống; chế độ nghỉ thai sản... rõ ràng và cụ thể.

Bạn cũng nên hiểu rõ về lương gross net, cách tính lương gross sang net và ngược lại để deal được mức lương đúng với mong muốn của bản thân nhất.

Bạn có câu hỏi nào không?

Đây có thể là một trong những câu hỏi quan trọng nhất được hỏi trong quá trình phỏng vấn vì nó cho phép bạn tìm hiểu bất kỳ thông tin nào chưa được giải quyết và cho người phỏng vấn thấy bạn nghiêm túc với vai trò này. Hãy nhớ rằng bạn cũng đang phỏng vấn công ty. Hãy dành thời gian để hỏi người phỏng vấn về trải nghiệm của họ với công ty và giải quyết bất kỳ câu hỏi nào mà bạn có thể có. 

Bạn có thể tham khảo một số câu hỏi như sau:

  • Anh/ chị có thể  mô tả về văn hóa làm việc của công ty này không?
  • Có cơ hội thăng tiến và phát triển nghề nghiệp trong công ty không?
  • Có thông tin gì về quyền lợi và gói phúc lợi mà công ty cung cấp?
  • Làm thế nào để công ty đo lường và đánh giá hiệu suất làm việc của nhân viên?
  • Có những kế hoạch mở rộng hay phát triển mới trong tương lai không?
  • Có các cơ hội đào tạo hoặc học hỏi mới để cập nhật kiến thức không?
  • Có cơ hội tham gia vào các dự án đa dạng không?

Câu hỏi phỏng vấn Python Developer về chuyên môn

Tại sao bạn quyết định làm việc với Python?

Tôi quyết định làm việc với Python vì đây là một ngôn ngữ lập trình rất mạnh mẽ và đa dụng. Python cho phép tôi phát triển ứng dụng web, xử lý dữ liệu, thậm chí là triển khai trí tuệ nhân tạo. Cú pháp dễ đọc, cộng đồng lớn và các thư viện sẵn có làm cho việc phát triển nhanh chóng và hiệu quả hơn.

Bạn đã từng sử dụng công cụ kiểm soát phiên bản nào?

Tôi đã sử dụng Git là công cụ kiểm soát phiên bản chính của mình. Tôi thường sử dụng Git để theo dõi sự thay đổi trong mã nguồn, tạo các nhánh (branches) để làm việc song song và sau đó merge lại các thay đổi vào nhánh chính khi đã hoàn thành.

Bạn đã từng phải tối ưu hóa mã nguồn Python của mình chưa?

Có, tôi đã từng phải tối ưu hóa mã nguồn Python của mình để đảm bảo hiệu suất tốt nhất. Một ví dụ là khi tôi làm việc với xử lý dữ liệu lớn, tôi đã sử dụng generator để tránh tải toàn bộ dữ liệu vào bộ nhớ cùng lúc. Tối ưu hóa cũng bao gồm việc sử dụng các thư viện thích hợp và cải thiện thời gian chạy của các phần mã nguồn chậm

Cách sử dụng hàm any và all trong Python

any() và all() là 2 function sử dụng để check điều kiện trong 1 mảng kết quả, any sẽ trả về true khi tồn tại 1 giá trị true trong mảng truyền vào; ngược lại thì all chỉ trả về true khi tất cả các giá trị trong mảng truyền vào trả về true.

any() và all() được ứng dụng nhiều trong việc xử lý check điều kiện của các dữ liệu dạng List, Tuple hay Array nhằm kiểm tra điều kiện thỏa mãn của 1 thuộc tính trong tập dữ liệu; any tương đương với điều kiện OR và all tương đương với điều kiện AND

Làm thế nào để xử lý đa luồng trong Python

Python cung cấp thread module và threading module để bạn tạo và thực thi một thread, handle xử lý các tác vụ đa luồng. Mỗi thread trong Python đều có vòng đời gồm 3 giai đoạn: bắt đầu, chạy và kết thúc. Thread có thể bị ngắt (interupt) trong quá trình chạy, hoặc có thể tạm thời bị dừng (sleeping) trong khi các thread khác đang chạy (trạng thái yielding).

Để start một thread chúng ta dùng phương thức thread.start_new_thread bằng việc import module thread. Chúng ta cũng có thể sử dụng module threading với nhiều hỗ trợ mạnh mẽ và cao cấp hơn được Python thêm vào từ version 2.4. Ngoài các phương thức có trong module thread, threading còn cung cấp một số method khác như activeCount, currentThread, hay các phương thức triển khai đa luồng như run, start, join, …

Bạn có kinh nghiệm làm việc với các thư viện Python như NumPy và Pandas không? Hãy nêu một ví dụ về cách bạn đã sử dụng chúng trong dự án trước đây."

Bạn có thể tham khảo cách trả lời như sau:

Có, tôi đã có kinh nghiệm làm việc với NumPy và Pandas trong các dự án trước đây. Ví dụ, trong một dự án phân tích dữ liệu, tôi đã sử dụng NumPy để thực hiện các phép tính toán trên mảng số học và Pandas để xử lý dữ liệu tabular. Điều này giúp tôi nhanh chóng thực hiện các phân tích thống kê và trực quan hóa dữ liệu

Việc sử dụng NumPy và Pandas đã giúp tôi tối ưu hóa thời gian xử lý dữ liệu và cung cấp những thông tin cần thiết cho quá trình ra quyết định. Tôi đã học cách áp dụng những thư viện này một cách hiệu quả và biết cách tận dụng sức mạnh của chúng trong việc xử lý dữ liệu lớn và phân tích.

Kinh nghiệm “đậu” phỏng vấn vị trí Python Developer

Để buổi phỏng vấn diễn ra suôn sẻ và nắm chắc phần thành công, bạn cần chú trọng thêm các yếu tố:

Về trang phục

Khi đi phỏng vấn, bạn nên lựa chọn những loại trang phục lịch sự, nhã nhặn phù hợp với môi trường công sở. Tránh các trang phục sặc sỡ quá, khác biệt quá, trang điểm lòe loẹt quá đều không phù hợp với một buổi phỏng vấn

Kinh nghiệm về tác phong

Nên đến sớm 10 - 15 phút, để tránh trường hợp xảy ra các sự cố trên đường hay sự cố về trang phục. Những nhà tuyển dụng cũng thích những người đến sớm và có chuẩn bị tốt.

Tác phong chuyên nghiệp, giữ bản thân ở trạng thái bình tĩnh, lắng nghe câu hỏi phỏng vấn và lời lưu loát, rõ ràng. Hạn chế nói lắp, trả lời không rõ ràng, thiếu logic, mạch lạc

Chuẩn bị kỹ càng

Chuẩn bị kỹ thông tin về vị trí mình đang ứng tuyển. Bạn bước vào buổi phỏng vấn hiểu công việc này sẽ làm gì, cần kỹ năng gì. Việc này bắt nguồn từ việc bạn đã nghiên cứu kỹ JD, nghiên cứu công việc. Như vậy, bạn sẽ thể hiện tốt những thế mạnh của mình, điều này khiến nhà tuyển dụng ấn tượng về bạn.

Chia sẻ về các dự án mà bạn đã làm và cách bạn đã giải quyết các vấn đề trong quá trình phát triển. Điều này cho thấy khả năng ứng dụng kiến thức vào thực tế.

Định hình rõ câu hỏi và vấn đề

Trong buổi phỏng vấn giao dịch viên ngân hàng sẽ có rất nhiều câu hỏi được đưa ra. Do vậy để tránh tình trạng trả lời sai/nhầm nội dung câu hỏi, trả lời ấp úng, ngắt quãng,... bạn nên chuẩn bị trước những câu hỏi có thể gặp phải và đưa ra câu trả lời cho chúng.

Để tự tin hơn trong buổi phỏng vấn, bạn có thể liệt kê các câu hỏi và câu trả lời, sau đó học thuộc. Đồng thời, luôn giữ tâm thế bình tĩnh, phong thái tự tin, sẵn sàng đón nhận bất cứ câu hỏi phỏng vấn “khó nhằn” nào.

Câu hỏi phỏng vấn Python Developer & Cách trả lời

Dưới đây là 3 câu hỏi phỏng vấn Python Developer hàng đầu và cách trả lời chúng:

Câu hỏi #1: List và Array khác nhau thế nào?

List

Array

Python list linh hoạt và có thể lưu nhiều kiểu dữ liệu khác nhau. Python array là một bọc mỏng quanh C array.
List là một phần trong cú pháp của Python, nên không cần khai báo trước. Array cần được import, hoặc khai báo từ các thư viện khác (như numpy)
List có thể thay đổi kích thước một cách nhanh chóng vì Python khởi tạo thêm một số thành phần khác trong list ngay khi khởi tạo. Array không thay đổi kích thước được. Thay vào đó, các giá trị của một array sẽ được sao chép qua một array khác có kích thước lớn hơn.
List có thể chứa các dữ liệu không đồng nhất về kiểu. Array chỉ có thể chứa các dữ liệu đồng nhất về kiểu.
Không thể áp dụng các hàm toán học trực tiếp lên list. Thay vào đó, chúng phải được áp dụng lần lượt trên từng thành phần của list. Array được tối ưu hoá cho các phép tính số học.
List tiêu thụ nhiều bộ nhớ hơn vì chúng phân bổ thêm bộ nhớ cho một số thành phần bổ sung để dễ dàng đưa thêm thành phần vào list. Vì array không thay đổi kích thước sau khi khởi tạo, chúng tiêu thụ ít bộ nhớ hơn.

Câu hỏi #2: Làm cách nào để in hoa chữ cái đầu của một kí tự của chuỗi trong Python?

Trong Python, chuyện này trở nên đơn giản nhờ phương thức capitalize() có thể in hoa chữ cái đầu tiên của một chuỗi. Và nếu chuỗi đó đã được viết hoa sẵn chữ cái đầu thì qua phương thức trên, thì phương thức này sẽ return về chuỗi gốc ban đầu.

Ví dụ minh họa: 

Tài liệu VietJack

Câu hỏi #3: [::-1} có thể làm được gì?

[::-1} trong Python được dùng để đảo thứ tự của một mảng hay một trình tự nào đó. Cụ thể như sau:

Tài liệu VietJack

Output:

Tài liệu VietJack

Như vậy có thể thấy [::-1} sẽ in lại bản copy bị đảo ngược của cấu trúc dữ liệu có thứ tự như một mảng hay một danh sách, và tất nhiên là mảng hay danh sách cũ vẫn được giữ nguyên, nó sẽ return cho bạn một mảng/danh sách mới.

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

Python Developer được hỏi... 05/06/2023

Làm sao để chuyển một list thành một tuple?

1 câu trả lời

  • Cách 1: chuyển toàn bộ list a thành một tuple: tuple(a)
  • Cách 2: chuyển một số thành phần của list a = [1, 2, 3, 4, 5] thành tuple b: b = (a[0], a[3], a[4])
Python Developer được hỏi... 06/06/2023

Nêu những tính năng chính của Python? Điều gì làm cho Python trở nên thân thiện với người dùng?

1 câu trả lời

  • Cũng giống như PHP và Ruby, Python được biết đến là một ngôn ngữ được dựa trên trình thông dịch, điều đó có nghĩa là, việc biên dịch không cần thiết phải có trước khi chạy như một số ngôn ngữ khác như C/C++.
  • Python là một ngôn ngữ kiểu động, tức là bạn không cần phải chỉ ra kiểu dữ liệu của các biến khi khai báo chúng hay bất cứ điều gì đó tương tự thế. Mình thách bạn khai báo x = 2020 và sau đó lại gán x = “Hello World” với Python mà lại có lỗi đấy.
  • Viết code với Python thì cực kỳ nhanh nhưng đến lúc run thì nó lại chậm hơn so với các ngôn ngữ biên dịch khác. May mắn thay, Python lại cho phép các extension mở rộng dựa trên C để việc bottleneck (nút thắt cổ chai) có thể được tối ưu hóa. Package numpy chính là một ví dụ.
  • Python là ngôn ngữ lập trình dựa trên trình thông dịch, ngôn ngữ kịch bản hướng đối tượng và tương tác, và tất nhiên đây cũng là một ngôn ngữ được thiết kế để rất dễ đọc, dễ nhớ, dễ viết.
  • Tính đa năng của Python thì khỏi bàn. Nó có thể ứng dụng cho nhiều lĩnh vực và các ứng dụng đa nền tảng khác nhau như ứng dụng web, big data, machine learning, mô hình khoa học v.v…

Ngoài những ưu điểm như cú pháp gọn, đẹp và tính dễ đọc thì Python còn đem đến cho lập trình viên những lợi ích sau:

  • Năng suất cao: Cảm ơn trời vì nhờ các tính năng như tích hợp quy trình, framework unit testing và khả năng kiểm soát nâng cao mà các ứng dụng Python có thể cải thiện hiệu suất và chất lượng của chúng.
  • Là ngôn ngữ mã nguồn mở, hoàn toàn free và đa nền tảng: Có thể nói đây cũng chính là những thứ giúp cho Python trở nên thân thiện với người dùng và sở hữu một cộng đồng support lớn mạnh hơn bao giờ hết.
  • Có kho thư viện module khổng lồ: Với hơn 300 thư viện module với nhiều tính năng khác nhau như khả năng tạo ra các file tạm thời an toàn, map file vào trong bộ nhớ, lưu trữ tập tin, v.v…. Python giúp các lập trình viên có thể tiết kiệm được thời gian làm việc của mình nhanh và hiệu quả hơn.
Python Developer được hỏi... 05/06/2023

Namespace trong Python là gì? 

1 câu trả lời

Namespace trong Python còn gọi là không gian tên, là một hệ thống có một tên duy nhất cho mỗi mọi đối tượng trong Python. Một đối tượng có thể là một biến hoặc một phương thức. Bản thân Python duy trì một namespace dưới dạng từ điển Python. Python có nhiều loại namespace khác nhau, và khi người dùng tạo một module thì một namespace toàn cục sẽ được khởi tạo, việc tạo các hàm cục bộ sau đó sẽ tạo ra namespace cục bộ.

Namespace tích hợp sẵn bao gồm namespace toàn cục và namespace toàn cục bao gồm namespace cục bộ.Tài liệu VietJack

 

Python Developer được hỏi... 05/06/2023

Monkey patching là gì?

1 câu trả lời

Trong Python, thuật ngữ monkey patch chỉ việc thay đổi một lớp (class) hay một module trong quá trình thực thi (run-time)

 
Python Developer được hỏi... 05/06/2023

Hàm lambda là gì? Cho 1 ví dụ để minh hoạ khi nào nên dùng, khi nào không nên dùng.

1 câu trả lời

Hàm lambda là một hàm nhỏ không có tên và trả về một đối tượng.

Đối tượng do hàm lambda trả về thường được gán cho 1 biến hoặc được sử dụng như một thành phần của một hàm lớn hơn.

Thay vì dùng từ khoá def để định nghĩa hàm như thông thường, hàm lambda được định nghĩa bằng cách dùng từ khoá lambda. Ví dụ, ta có thể tạo hàm lambda để cộng thêm 10 vào biến a như sau:

x = lambda a : a + 10

print(x(5))

Kết quả trả về của x(5) sẽ là 15

Mục tiêu của hàm lambda

Hàm lambda dễ đọc hơn nhiều so voi một hàm thông thường vì nó có thể được viết trên 1 dòng lệnh. Do đó, dùng hàm lambda khi biểu thức hàm nhỏ là một cách thực hành tốt.

Cái đẹp của hàm lambda là nó trả về một đối tượng hàm. Đặc tính này làm cho hàm lambda trở nên hữu dụng khi sử dụng với các hàm map hoặc filter vốn đòi hỏi các đối tượng hàm làm tham số.

Hàm lambda không hữu dụng khi biểu thức hàm vượt quá 1 dòng.

Python Developer được hỏi... 05/06/2023

Thế nào là biến toàn cục và biến cục bộ trong Python?

1 câu trả lời

Những biến nào được khai báo ở bên ngoài hàm hay trong phạm vi toàn cục (global) thì được gọi là biến toàn cục (global variable), chính vì vậy mà bạn có thể truy cập tới những biến này ở bất cứ đâu tùy thích trong chương trình.

Ngược lại, biến cục bộ (local variable) lại là những biến được khai báo bên trong một hàm nào đó. Những biến này chỉ có sẵn trong một phạm vi nhất định thay vì ở phạm vi toàn cục như các biến global.

Ví dụ:

 Tài liệu VietJack

Python Developer được hỏi... 05/06/2023

Hãy giải thích sự khác nhau giữa Flask và Diango

1 câu trả lời

Django là một khung ứng dụng web (Web framework) mã nguồn mở, trình độ cao giúp "khuyến khích việc phát triển nhanh, thiết kế thực dụng, tinh tế và sạch sẽ." Django chạy nhanh, an toàn, và có khả thể mở rộng (scalable) nhanh. Django có hỗ trợ cộng đồng mạnh mẽ và tài liệu chi tiết.

Django là một gói tổng thể, trong đó bạn sẽ có Bảng điều khiển quản trị (Admin panel,) giao diện cơ sở dữ liệu (CSDL,) và cấu trúc thư mục ngay khi tạo ứng dụng. Ngoài ra, nó còn nhiều tính năng, nên bạn không cần thêm các thư viện riêng và các thư viện phụ thuộc. Một vài tính năng sẵn có là xác thực người dùng, động cơ mẫu (template engine,) định tuyến (routing,) quản lý thay đổi và dịch chuyển thiết kế CSDL (database schema migration,) và rất nhiều tính năng khác.

Django rất linh động. Bạn có thể dùng Django để làm các ứng dụng tối thiểu (MVP - Minimum Viable Product) cho đến các ứng dụng cho các công ty lớn. Để tiện hình dung, một số công ty lớn sử dụng Django là Instagram, Dropbox, Pinterest, và Spotify.

Flask là một khung ứng dụng web vi mô (microframework.) Nó không bao gồm sẵn các thư viện cần thiết cho việc phát triển web toàn tập như Django. Flask tiếp cận theo hướng tối giản, nghĩa là bạn sẽ thêm các thư viện trong quá trình lập trình thay vì đóng gói chúng sẵn trong khung ứng dụng. Triết lý của Flask là Flask chỉ cung cấp những thành phần bạn cần để xây dựng một ứng dụng để bạn có sự linh hoạt và kiểm soát. Nói cách khác, Flask không giả định bạn sẽ cần thư viên này hay thư viên khác và đóng gói chúng sẵn. Thay vào đó, Flask để bạn chọn lựa và thêm các thư viện khi mình cần. Một số tính năng Flask cung cấp là Máy chủ phục vụ web (dành cho quá trình phát triển,) xử lý yêu cầu RESTFUL, http, và rất nhiều tính năng khác.

Python Developer được hỏi... 06/06/2023

Function help() và dir() trong Python có chức năng gì? 

1 câu trả lời

Cả hai hàm help() và dir() đều có thể truy cập được từ trình thông dịch của 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).
Python Developer được hỏi... 05/06/2023

Break, Continue và Pass trong Python làm việc như thế nào?

1 câu trả lời

  • Break: Cho phép dừng vòng lặp khi gặp một số điều kiện nào đó và quyền điều khiển sẽ được đưa cho statement kế tiếp
  • Continue: Cho phép skip một số phần của vòng lặp khi gặp một số điều kiện cụ thể và quyền điều khiển sẽ lại được đưa về lúc bắt đầu vòng lặp.
  • Pass: Trong Python, pass là một lệnh trống, nói nôm na thì lệnh pass không làm gì cả, nó chỉ giữ chỗ cho các hàm, vòng lặp mà bạn đã thêm vào, nhưng chưa dùng đến trong hiện tại mà để "dành cho con cháu" mở rộng trong tương lai.
Python Developer được hỏi... 05/06/2023

Làm cách nào để có thể random những item có trong một list khi làm việc với Python?

1 câu trả lời

Giả sử ta có một ví dụ minh họa sau đây:

Tài liệu VietJack

Khi đó output của dòng code trên sẽ là:

Tài liệu VietJack

Python Developer được hỏi... 05/06/2023

Module Python là gì? Hãy nêu một vài module chuẩn thường dùng trong Python?

1 câu trả lời

Module Python là những file chứa code Python, và những code này có thể là các biến hay các class function. Một module Python thường là một file .py chứa những dòng lệnh có thể thực thi được.

Một vài module chuẩn Python thường dùng là: os, sys, math, random, data time, JSON, v.v...

Python Developer được hỏi... 06/06/2023

Kiểu dữ liệu chuẩn mà Python cung cấp là gì? Đâu là kiểu dữ liệu có thể thay đổi được (mutable), còn đâu là kiểu dữ liệu không thể thay đổi được (immutable)?

1 câu trả lời

Kiểu dữ liệu mutable chuẩn là những giá trị có dữ liệu có thể thay đổi được gồm có: List, Set, Dictionary

Kiểu dữ liệu immutable chuẩn những giá trị có dữ liệu không thể thay đổi được  gồm có: Chuỗi, Tuple, Số

Python Developer được hỏi... 01/06/2023

Tham số được truyền vào như thế nào: là truyền tham trị (pass by value) hay truyền tham chiếu (pass by reference)?

1 câu trả lời

Với Python, mọi thứ đều là một object và tất cả các biến đều tham chiếu tới các đối tượng. Các giá trị tham chiếu sẽ được link tới các hàm, và kết quả là ta không thể thay đổi giá trị của kiểu dữ liệu này. Tuy nhiên, chúng ta lại có thể thay đổi một đối tượng vì chúng là kiểu dữ liệu mutable.

Bên cạnh đó, bạn cũng có thể sắp xếp các đối số bằng cách sử dụng các chỉ định * và ** trong danh sách các tham số của hàm khi muốn truyền tham số tùy chọn hay từ khóa từ hàm này sang hàm khác trong Python.

Python Developer được hỏi... 01/06/2023

Tạo ra danh sách các số nguyên tố từ (1,100) với Python

1 câu trả lời

Tài liệu VietJack

Python Developer được hỏi... 06/06/2023

Python quản lý bộ nhớ thế nào?

1 câu trả lời

  • Bộ nhớ Python được quản lý trong không gian nhớ riêng của Python. Tất cả các đối tượng cấu trúc dữ liệu được đặt trong một không gian nhớ riêng. Lập trình viên không truy cập vào vùng nhớ này được mà do Python tự quản lý.
  • Việc phân bổ vùng nhớ cho các đối tượng do trình quản lý bộ nhớ của Python đảm nhiệm. API lõi cho các lập trình viên truy cập qua một số công cụ để lập trình.
  • Python cũng có trình gom rác tích hợp sẵn để tái chế các vùng nhớ không còn sử dụng đến và giải pháp chúng tạo thêm chỗ cho không gian nhớ.
Python Developer được hỏi... 05/06/2023

Giải thích phương thức slipt(), subn(), sub() của module “re” trong Python

1 câu trả lời

Để làm việc với string thì module “re” của Python đã cung cấp cho người dùng 3 phương thức sau:

  • split(): tách chuỗi thành các mảng bởi các kí tự, nếu ta cung cấp đối số num thì sẽ chia chuỗi thành num + 1 chuỗi con.

Ví dụ: 

#Syntax of split() method: split(pattern, string, maxsplit)

import re

str = 'Support me more on codelearn.io'
match = re.split(r'e', str)
if match:                     
    print (match)
else:
    print ('Khong tim thay!')
# Kết quả:
# ['Support m','mor','on cod','l','arn.io']
  • sub(): có tác dụng so khớp và thay thế chuỗi so khớp được. 

 Ví dụ:

#Syntax of sub(): sub(pattern, replace, string, flags)

import re

str = 'Hello, please find me in codelearn.io'
match = re.sub(r'codelearn.io','https://codelearn.io', str)
if match:                   
    print (match)
else:
    print ('Khong tim thay!')
# output: Hello, please find me in https://codelearn.io
  • subn(): tương tự như sub() và đồng thời cũng return về một chuỗi mới đi kèm với sự thay thế của no. .Như bạn thấy ở ví dụ minh họa dưới đây thì phương thức subn() return một một bộ dữ liệu với tổng số các lần thay thế cũng như đi kèm với nó là một chuỗi mới.

Ví dụ: 

#Syntax of subn() method: re.subn (pattern, repl, string, count=0, flags=0)

import re
print(re.subn('ov', '~*' , 'movie tickets booking in online'))
t = re.subn('ov', '~*' , 'movie tickets booking in online', flags = re.IGNORECASE)
print(t)
print(len(t))
print(t[0])

Output: 

('m~*ie tickets booking in online', 1)
('m~*ie tickets booking in online', 1)
2
m~*ie tickets booking in online
Python Developer được hỏi... 05/06/2023

Bạn thực hiện đa luồng (multithreading) trong Python thế nào?

1 câu trả lời

  • Python có một thư viện đa luồng nhưng nếu bạn muốn sử dụng đa luồng để tăng tốc chương trình, sử dụng thư viện này không phải là một ý kiến hay.
  • Python có một cấu trúc gọi là Khoá Phiên Dịch Toàn Cục (Global Interpreter Lock - GIL). GIL đảm bảo rằng tại một thời điểm chỉ có một luồng được thực thi. Một luồng lấy GIL, làm một số công việc, rồi GIL cho luồng kế tiếp.
  • Quá trình này xảy ra rất nhanh, nên dưới ánh mắt con người, nó có vẻ đang thực hiện song song, nhưng thực ra chúng chỉ luân phiên sử dụng cùng một lõi CPU.
  • Tất cả quá trình luân chuyển GIL này làm tăng thêm tải cho quá trình thực thi. Điều này nghĩa là nếu bạn muốn tăng tốc cho chương trình của mình, sử dụng thư viện đa luồng không phải là ý tưởng tốt.
Python Developer được hỏi... 06/06/2023

Làm sao để chuyển một list thành một array?

1 câu trả lời

Khi lập trình, sẽ có lúc chúng ta cần chuyển list thành array để thực hiện các phép toán trên đó một cách hiệu quả hơn. Để thực hiện việc này, chúng ta sử dụng hàm numpy.array(). Hàm này nhận 1 list làm tham số và trả về một array chứa các thành phần của list. Ví dụ:

import numpy as np

a = [1, 2, 3]

a_array = np.array(a)

Python Developer được hỏi... 05/06/2023

Pickling và unpickling là gì?

1 câu trả lời

Module Pickle nhận một đối tượng Python, chuyển nó thành chuỗi đại diện, và lưu nó ra tập tin bằng hàm dump. Quá trình này gọi là pickling. Quá trình ngược lại, nghĩa là chuyển một chuỗi đại diện thành đối tượng Python được gọi là unpickling.

Python Developer được hỏi... 05/06/2023

Numpy array có lợi thế gì so với list (hoặc list lồng trong list - nested list)?

1 câu trả lời

  • Python list là những biến tập hợp đa dụng và hiệu quả. Chúng hỗ trợ khá tốt các thao tác chèn (insert,) xoá (deletion,) thêm vào cuối (appending,) và nối list (concatenate.) Cấu trúc duyệt danh sách (list comprehension) giúp cho list dễ xây dựng và thao tác.
  • Tuy nhiên, chúng có một số hạn chế sau: list không hỗ trợ các phép tính vector ('vectorized' operations) như cộng hay nhân theo từng phần tử (elementwise addition and multiplication,) và việc list chứa các phần tử thuộc nhiều kiểu dữ liệu khác nhau cho thấy Python phải lưu kiểu dữ liệu của mỗi phần tử, và phải thực thi lệnh theo kiểu dữ liệu khi thao tác trên mỗi phần tử.
  • NumPy không chỉ hiệu quả hơn; nó cũng tiện hơn. Bạn có thể thực hiện nhiều phép tính theo kiểu vector và ma trận miễn phí, giúp tiết kiệm thời gian làm các việc không cần thiết. Các phép tính này được thực hiện một cách hiệu quả.
  • NumPy array nhanh hơn và bạn có thể sử dụng rất nhiều hàm dựng sẵn (built-in) với Numpy, FFTs, tích chập (convolutions,) tìm nhanh, thống kê cơ bản, đại số tuyến tính, biểu đồ tần suất (histogram) v.v...
Đang xem 1 - 20 trong 76 câu hỏi phỏng vấn