15 Câu Hỏi Phỏng Vấn Thường Gặp Với Python?

Có thể nói, trong những năm gần đây Python luôn là một trong những cái tên được các nhà tuyển dụng săn đón và mong mỏi nhiều nhất ở một ứng cử viên. Không chỉ ứng dụng được vào nhiều lĩnh vực khác nhau và tạo ra nhiều cơ hội việc làm, Python còn thu hút các developer bởi mức lương cao ngất ngưỡng với một tháng có thể lên tới hàng ngàn đô. 

Và tất yếu, chắc như đinh không cần phải nói nhiều khi ngôn từ lập trình này chính là nền tảng cho rất nhiều mẫu sản phẩm cực kỳ nổi tiếng như Google, Quora, BitTorrent, v.v …. Đó chính là nguyên do nếu bạn là một Python Developer, thì cần phải sẵn sàng chuẩn bị thật tốt trước khi phỏng vấn, bởi lẽ chính điều này sẽ giúp ích rất nhiều cho sự tự tin và tâm ý của bạn trước khi bước vào đại chiến sống còn sau này đấy .
Cùng mình điểm qua 15 câu hỏi thường gặp khi phỏng vấn với Python để hoàn toàn có thể bỏ túi những bí kíp thiết yếu nhé .

Đầu tiên, nếu muốn đi phỏng vấn Python thì việc hiểu những kiến thức nền tảng về nó là một điều cực kỳ cần thiết. Bạn không thể đi đánh trận nếu không có vũ khí bên mình và sự am hiểu về đối thủ, đúng không? Việc biết được ưu và nhược điểm của Python chắc chắn sẽ giúp ích cho bạn rất nhiều, một số câu hỏi dưới đây (bao gồm cả lý thuyết và code) sẽ kiểm tra kiến thức Python cơ bản của bạn.

1. 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?

  • Cũng giống như PHP và Ruby, Python được biết đến là một ngôn từ đượ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 thiết yếu phải có trước khi chạy như 1 số ít ngôn từ khác như C / C + + .
  • Python là một ngôn từ kiểu động, tức là bạn không cần phải chỉ ra kiểu tài liệu của những biến khi khai báo chúng hay bất kể đ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 những ngôn từ biên dịch khác. May mắn thay, Python lại được cho phép những extension lan rộng ra dựa trên C để việc bottleneck ( nút thắt cổ chai ) hoàn toàn có thể được tối ưu hóa. Package numpy chính là một ví dụ .
  • Python là ngôn từ lập trình dựa trên trình thông dịch, ngôn từ ngữ cảnh hướng đối tượng người tiêu dùng và tương tác, và tất yếu đây cũng là một ngôn từ được phong cách 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ó hoàn toàn có thể ứng dụng cho nhiều nghành nghề dịch vụ và những ứng dụng đa nền tảng khác nhau như ứng dụng web, big data, machine learning, quy mô 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ờ những tính năng như tích hợp quy trình tiến độ, framework unit testing và năng lực trấn áp nâng cao mà những ứng dụng Python hoàn toàn có thể cải tổ 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à chiếm hữu một hội đồng tư vấn vững mạnh hơn khi nào 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ư năng lực tạo ra những file trong thời điểm tạm thời bảo đảm an toàn, map file vào trong bộ nhớ, tàng trữ tập tin, v.v …. Python giúp những lập trình viên hoàn toàn có thể tiết kiệm chi phí được thời hạn thao tác của mình nhanh và hiệu suất cao hơn .

2. Nêu sự khác biệt giữa list (danh sách) và tuple (bộ dữ liệu) trong Python?

  • Bộ Dữ Liệu (Tuple): Một tuple là một chuỗi những đối tượng người dùng không bao giờ thay đổi( hay nói những khác tuple là list không hề chỉnh sửa được ), với cú pháp cho Tuple được hiển thị bằng dấu ngoặc đơn ( ). Không giống với List, Tuple có chiều dài cố định và thắt chặt và thường thao tác nhanh hơn .Cú pháp như sau:tup_1 = ( 10, ’ Chelsa ’, 20 )
  • Danh sách (List): Một List là kiểu tài liệu đa năng hoàn toàn có thể đổi khác được với cú pháp được hiển thi bằng dấu ngoặc vuông [ ]. Không giống với Tuple, List hoàn toàn có thể có độ dài biến hóa được và nó thao tác chậm hơn so với Tuple .Cú pháp như sau: list_1 = [ 10, ’ Ronaldo ’, 20 ] .

3. 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)?

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ố

4. 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)?

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.

5. Namespace trong Python là gì? 

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ộ.

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

Module Python là những file chứa code Python, và những code này hoàn toàn có thể là những biến hay những class function. Một module Python thường là một file. py chứa những dòng lệnh hoàn toàn 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…

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

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ụ :

//doi voi bien toan cuc
myVar = "global var" #khai báo biến myVar
def example():
    print("myVar of example() is: ", myVar)

example()
#Gọi myVar ngoài hàm example()
print("myVar ngoài hàm example():", myVar)

//doi voi bien cuc bo
def example1():
 myVar1 = "local var"
 print(myVar1)
example1()

//Neu ban lam nhu duoi day se bi thong bao loi
//UnboundLocalError: local variable 'myVar' referenced before assignment
myVar = 10 
def example():
   myVar=myVar*5 + 10    
   print(myVar)

example()

8. 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?

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

from random import shuffle
x = ['Keep', 'The', 'Blue', 'Flag', 'Flying', 'High']
shuffle(x)
print(x)

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

['Flying', 'Keep', 'Blue', 'High', 'The', 'Flag']

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

primeList = []
for possiblePrime in range(2, 100):
 
    isPrime = True
    for num in range(2, possiblePrime):
        if possiblePrime % num == 0:
            isPrime = False
 
        if isPrime:
           primeList.append(possiblePrime)
 
print(primeList)

10. Output của dòng code dưới đây là gì? Đồng thời hãy cho biết cách để viết comment (thậm chí là comment nhiều dòng) trong Python?

x = [[]]*3
x[2].append(1)
print(x)

Output :

[[1], [1], [1]]

Thường thì việc comment trong Python sẽ được mở màn bằng ký tự #. Tuy nhiên trong 1 số ít trường hợp ta cũng hoàn toàn có thể dùng docstrings ( hay còn gọi là document strings ) với bộ ba dấu ” ” ” mở màn và kết thúc .
Bên cạnh đó, bạn cũng hoàn toàn có thể comment nhiều hơn một dòng trong Python bằng cách sử dụng tổng hợp phím ctrl key và click trái chuột ở bất kể chỗ nào mà bạn muốn để kí tự # và chỉ # một lần. Điều này sẽ giúp bạn comment tổng thể những dòng ở những nơi mà bạn đặt con trỏ tới .
Ví dụ như :

#Comment in one line
print("Comments in Python start with a #")

#Comment in multiple lines like this:
#hello world
#hello abcdxyz

""" Comment with docstrings like this:
Welcome to my blog ^^
"""

print("Hello World!")

11. [::-1} có thể làm được gì?

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

import array as arr
myArray=arr.array('i',[1,2,3,4,5])
myArray[::-1]

Output:

 array(‘i’, [5, 4, 3, 2, 1])

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.

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

  • Break: Cho phép dừng vòng lặp khi gặp 1 số ít điều kiện kèm theo nào đó và quyền điều khiển và tinh chỉnh sẽ được đưa cho statement tiếp nối
  • Continue: Cho phép skip một số ít phần của vòng lặp khi gặp 1 số ít điều kiện kèm theo đơn cử và quyền tinh chỉnh và điều khiển sẽ lại được đưa về lúc mở màn 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 những 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 ” lan rộng ra trong tương lai .

13. 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 thuần nhờ phương pháp capitalize ( ) hoàn toàn có thể in hoa vần âm tiên phong của một chuỗi. Và nếu chuỗi đó đã được viết hoa sẵn vần âm đầu thì qua phương pháp trên, thì phương pháp này sẽ return về chuỗi gốc bắt đầu .

Ví dụ minh họa: 

string = "chao ban"
string1 = "Hello friends!"
print(string1.capitalize() + string.capitalize())
# output: Hello friends! Chao ban 

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

Cả hai hàm help ( ) và dir ( ) đều hoàn toàn có thể truy vấn đượ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 những 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 kèm theo cho bạn thấy trợ giúp tương quan đến những mô-đun, từ khóa, thuộc tính, v.v.
  • Hàm Dir ():Hàm dir ( ) được sử dụng để hiển thị những ký hiệu đã xác lập ( defined symbols ) .

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

Để thao tác với string thì module “ re ” của Python đã cung ứng cho người dùng 3 phương pháp sau :

  • split ( ) : tách chuỗi thành những mảng bởi những kí tự, nếu ta phân phối đố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ó công dụng so khớp và sửa chữa 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://expgg.vn', str)
if match:                   
    print (match)
else:
    print ('Khong tim thay!')
# output: Hello, please find me in https://expgg.vn
  • 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

Tạm kết

Hi vọng qua bài viết trên, bạn đọc hoàn toàn có thể bỏ túi được thêm những câu hỏi phỏng vấn thường gặp với Python cho việc làm để chuẩn bị sẵn sàng thật tốt cho buổi interview sắp tới của mình. Nếu bài viết này được ủng hộ, mình sẽ viết thêm về một bài khác nữa cũng với chủ đề này một cách cụ thể và đơn cử hơn nữa nhé !

Source: https://expgg.vn
Category: Thông tin

Total
0
Shares
Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Previous Post

Những câu hỏi thường gặp nhất khi cài lại Windows

Next Post

Những câu lệnh hay khi sử dụng trợ lý ảo Cortana trên Windows 10

Related Posts