Câu hỏi phỏng vấn Python [đóng]


25

Tôi sẽ phỏng vấn trong vòng hai tuần cho một kỳ thực tập có liên quan đến lập trình Python.

Bất cứ ai có thể đề nghị những khu vực có thể tôi nên đánh bóng? Tôi đang tìm kiếm những thứ thường được hỏi trong các cuộc phỏng vấn cho việc mở Python. Ngoài thực tế là tôi đã làm ngôn ngữ được hơn một năm nay, tôi không nhận thức được những gì họ có thể hỏi tôi.

Giống như đối với một cuộc phỏng vấn C hoặc C ++, có rất nhiều câu hỏi từ đảo ngược chuỗi để xây dựng danh sách liên kết, nhưng đối với một cuộc phỏng vấn Python, tôi không biết gì.

Kinh nghiệm cá nhân và / hoặc đề xuất được hoan nghênh.


Nếu đó là một công việc thực tập và bạn đã lập trình bằng Python được một năm rồi, tôi nghĩ bạn sẽ ổn thôi. Tha nói, tôi nghĩ rằng bản chất chung của các câu hỏi cho Python sẽ giống như những câu hỏi mà bạn đã đề cập cho c ++.
Robert Harvey

Robert, lập trình mà không có sự giám sát và hướng dẫn là điều làm phiền tôi. Có lẽ tôi thiếu trong một số lĩnh vực.

1
Nếu đó là một thực tập, tại sao bạn không có hướng dẫn? Đó là định nghĩa của một thực tập. Điều đó nói rằng, các thực tập sinh nơi tôi làm việc không có các lớp lập trình, nhưng họ có được hướng dẫn công việc rõ ràng và kỳ vọng. Là một thực tập sinh, họ nên mong đợi rằng bạn sẽ học được trong công việc, và công việc sẽ mất nhiều thời gian hơn một chút nếu có người có kinh nghiệm làm việc đó.
Robert Harvey

Bạn đang mắc một lỗi phổ biến mà nhiều người mắc phải khi ra trường - một cuộc phỏng vấn không phải là một bài kiểm tra, nó giống như đi hẹn hò đầu tiên. Một người phỏng vấn giỏi sẽ không làm hỏng quả bóng của bạn khi cố gắng tìm hiểu xem bạn có biết những góc tối của ngôn ngữ hay không mà nói chung là cố gắng thiết lập, nếu bạn thực sự biết nó. Một người phỏng vấn giỏi sẽ tập trung vào kiến ​​thức lập trình chung, kỹ năng giải quyết vấn đề, kỹ năng và kinh nghiệm giữa các cá nhân. Nếu ai đó bắt đầu hỏi chi tiết cụ thể về cách Python thực tập, điều đó có nghĩa là họ bị lạc và không biết cách phỏng vấn.
Sean McS Something 7/213

Câu trả lời:


8

Đây là một số dễ dàng:

  1. Trình trang trí Python là gì và bạn sẽ sử dụng chúng như thế nào?
  2. Làm thế nào để bạn gỡ lỗi mã Python của bạn?
  3. Làm thế nào bạn có thể thiết lập nhiều dự án trong đó mỗi dự án sử dụng các phiên bản khác nhau của thư viện Python và bên thứ ba?
  4. Bạn có theo dõi PEP8 trong khi viết mã của mình không?

7

Làm thế nào về một cái gì đó liên quan đến việc hiểu danh sách Python ? Đối với tôi, đó là một trong những điểm bán hàng lớn hơn C ++, sau khi tôi đọc về chúng trong phần Lặn vào Python .

"Viết một sự hiểu biết danh sách xây dựng một danh sách các số chẵn từ 1 đến 10 (bao gồm)".
Trong đó câu trả lời là bất cứ điều gì như thế này (lưu ý các giá trị phạm vi tránh lỗi hàng rào):

foo = [x for x in range(1, 11) if (x % 2) == 0]
print foo
[2, 4, 6, 8, 10]

Đối với vấn đề đó, nếu bạn hiểu tất cả các khái niệm được liệt kê trong Lặn vào Python, điều đó sẽ bao gồm hầu hết các tính năng quan trọng.


13
Đây là unpythonic. Trong Python 2.x, bạn chỉ cần làm range(2,11,2)và trong Python 3.x , list(range(2,11,2)).
Chinmay Kanchi

@Cyclops, có vẻ như bạn cần phỏng vấn cho công việc của chính mình tại INNOTECH.
Công việc

5
@Chinmay Kanchi Mặc dù tôi không nghĩ đó sẽ là một câu hỏi phỏng vấn hay, nhưng hầu hết các phần giới thiệu về các tính năng nâng cao đều làm những điều đơn giản nhất có thể (không gây nhầm lẫn cho người đọc). Mặc dù có một giải pháp đơn giản hơn cho vấn đề cụ thể này, vấn đề là không trả lời được vấn đề cụ thể này. Vấn đề là sử dụng một sự hiểu biết danh sách (rất hiệu quả và là một cách đáng chú ý để tối ưu hóa mọi thứ trong Python).
jsternberg

6

Là Python vượt qua tham chiếu hay vượt qua giá trị cũng là một câu hỏi rất hay.


1
Một câu hỏi tiếp theo tuyệt vời sẽ là hỏi làm thế nào họ có thể hiển thị nó và tại sao nó quan trọng
mc Bông

@Ismail - Xin lỗi, nhưng tại sao đây là một câu hỏi hay?
Theodor

7
@Cervo: Nếu tôi hiểu chính xác, Python là pass-by-value giống như cách C #, Java, Scheme, v.v. là pass-by-value ... ngôn ngữ tham chiếu duy nhất tôi thấy là VB6, trong đó mọi thứ đều được chuyển qua tham chiếu trừ khi có quy định khác. Thực tế là bạn có thể biến đổi các đối tượng không khiến nó trở thành tham chiếu theo bất kỳ cách nào và thực tế là bạn có thể có các đối tượng bất biến không ngụ ý rằng chúng đang được truyền qua giá trị ... vì vậy nói " câu trả lời là không phải"hoàn toàn sai . Tôi cảm thấy rất tiếc cho ứng viên mà người phỏng vấn tin rằng câu trả lời là "không" ...
Mehrdad

1
@Cervo: FYI, thậm chí hơn 100 câu trả lời được bình chọn trong liên kết của bạn phản ánh lập luận của bạn: nó nói rõ rằng "Thông số được truyền theo giá trị".
Mehrdad

11
Tôi tin rằng câu trả lời đúng là: "Tham số là các tham chiếu được truyền theo giá trị".
dùng16764

6

Những câu hỏi tôi đã được hỏi:

  • Mô tả hai phương pháp lập trình meta trong Python.
  • GIL là gì?
  • Tại sao GIL quan trọng?
  • Tại sao có một triển khai thay thế của Python được gọi là Unladen Swallow ?
  • Django, giá treo, hay Zope? Bảo vệ vị trí của bạn.

5

Tôi không có kinh nghiệm như vậy, nhưng đây là một số dự đoán:

  1. (Im) khả năng biến đổi
  2. Chức năng / lớp học hạng nhất
  3. Đóng cửa

Đó là một số thứ mà lập trình viên python nên biết, nếu không bạn cũng có thể thuê lập trình viên C cho vị trí này.


3

Tôi sẽ đi cùng danh sách trong câu trả lời này . Cố gắng làm mới những gì bạn biết sau danh sách đó càng xa càng tốt. Đừng lo lắng nếu bạn không thể làm cho đến khi kết thúc.


2

Bên cạnh các liên kết khác mọi người đã cung cấp. Tôi cũng đề xuất các tính năng ẩn của Python . Chỉ trong trường hợp họ ném một số câu hỏi khó khăn vào bạn.


2

Ý nghĩa của bạn là gì, họ sẽ thử kiểm tra xem bạn có biết Python không, xem bạn có thể hoàn thành công việc trong Python hay kiểm tra xem bạn có thể lập trình (bằng Python) không?

Đó là những điều rất khác nhau.

Nếu họ muốn bạn cho bạn biết Python, họ có thể buộc bạn làm những việc như tạo trình tạo, sau đó thực hiện mà không cần sử dụng yield. Giải thích cách các lớp học làm việc. Giải thích thứ tự giải quyết phương pháp C3. Và như vậy.

Nếu họ muốn bạn cho bạn thấy bạn có thể hoàn thành công việc trong Python, bạn sẽ cần thành thạo với các cấu trúc dữ liệu cơ bản và có một danh sách các thư viện mà bạn sẽ thực hiện cho các loại nhiệm vụ khác nhau. Vì vậy, bạn cần phải thoải mái với từ điển, bộ, mảng. Tương tự như vậy, bạn cần biết về những thứ như BeautifulSoupphân tích HTML, có thể nói về một khung có thể được sử dụng để phát triển web, v.v. Bạn không nhất thiết phải biết cách sử dụng những thứ đó tốt, nhưng bạn nên biết nơi để đi, làm thế nào để tìm hiểu thêm, và có thể thực sự sử dụng chúng một khi người phỏng vấn đã đưa cho bạn những thứ được ghi lại.

Nếu họ muốn bạn cho thấy rằng bạn có thể lập trình (bằng Python), bạn sẽ cần biết các cấu trúc dữ liệu cơ bản và biết các thuật toán của mình. Điều này gần hơn với các câu hỏi C / C ++ mà bạn sẽ được hỏi, ngoại trừ việc bạn sẽ sử dụng các cấu trúc dữ liệu gốc, nơi nó giúp cuộc sống của bạn trở nên dễ dàng.

Để an toàn, bạn nên chuẩn bị ở một mức độ nào đó cho cả ba. Chẳng hạn, hãy đọc qua http://docs.python.org/tutorial/ và tự mình thực hiện một số ghi chú. Hy vọng bạn đã biết cách lập trình. Và sau đó thử một số tác vụ ngẫu nhiên và buộc bản thân sử dụng các thư viện mà bạn có thể đã bỏ lỡ. Vì vậy, ví dụ, đọc một số CSV, trích xuất thông tin lập trình ra khỏi trang web, xây dựng một trang web nhỏ với khung, v.v.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.