Thực hành câu hỏi phỏng vấn python

Bài viết này là một phần trong loạt bài của những người bạn của chúng tôi tại Career Karma, tập trung vào các nghề nghiệp trong ngành công nghệ. Xem các bài đăng trước về chuẩn bị phỏng vấn kỹ thuật JavaScript, lương công nghệ và sơ yếu lý lịch kỹ thuật

Không có cách nào tốt hơn để chuẩn bị cho một cuộc phỏng vấn kỹ thuật hơn là thực hành một vài câu hỏi viết mã. Có thể không giải thích được mọi câu hỏi mà bạn có thể được hỏi nhưng bất kỳ thực hành nào bạn thực hiện sẽ giúp bạn xây dựng sự tự tin và hoàn thiện các kỹ năng lập trình của mình

Cuộc phỏng vấn kỹ thuật không chỉ là về kỹ năng mã hóa của bạn. Đó là về việc liệu bạn có thể giải thích tốt mã của mình và ghi lại những gì bạn đã làm hay không. Đó là một lý do khác khiến thực hành rất quan trọng. Bạn sẽ học cách nói về lập trình Python và mã mà bạn viết

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

Trong bài viết này, chúng tôi đã soạn thảo bảy câu hỏi phỏng vấn Python để giúp bạn chuẩn bị cho cuộc phỏng vấn kỹ thuật tiếp theo. Để biết thêm về chuẩn bị phỏng vấn, hãy xem hướng dẫn phỏng vấn trong ngành công nghệ của chúng tôi, bao gồm các mẹo phỏng vấn kỹ thuật và hành vi

Mô tả khái niệm về phạm vi trong Python với tham chiếu đến phạm vi cục bộ và toàn cầu

Phạm vi là khu vực mà một biến có thể truy cập được trong một chương trình. Có hai phạm vi trong Python. Phạm vi cục bộ là một biến được xác định bên trong hàm Python. Các biến có phạm vi cục bộ chỉ có thể được truy cập bên trong một hàm

Phạm vi toàn cầu là một biến được khai báo trong phần chính của chương trình. Các biến toàn cục có thể truy cập được trong toàn bộ chương trình, kể cả trong các hàm. Bạn có thể tạo một biến cục bộ thành toàn cục bằng cách sử dụng từ khóa “toàn cầu” bên trong một hàm

Sự khác biệt giữa một Tuple và một danh sách là gì?

Cả bộ dữ liệu và danh sách Python đều được sử dụng để lưu trữ các bộ sưu tập dữ liệu

Một danh sách được khai báo là một tập hợp các giá trị được phân tách bằng dấu phẩy được đặt trong dấu ngoặc vuông trong khi các bộ dữ liệu được khai báo là một tập hợp các giá trị được đặt trong dấu ngoặc nhọn

Một danh sách có thể thay đổi. Điều này có nghĩa là nội dung của chúng có thể được sửa đổi. Tuples là bất biến. Bạn không thể thay đổi nội dung của một tuple. Thay vào đó, bạn phải khai báo một bộ dữ liệu mới nếu bạn muốn sửa đổi nội dung của một giá trị bên trong một bộ dữ liệu

Viết một cách hiểu danh sách lấy danh sách sau và tạo một danh sách mới chứa tên của các sinh viên có tên dài bốn chữ cái

sinh viên = [“Hannah”, “Peter”, “Luke”]

Hiểu danh sách là một cách "Pythonic" hơn để tạo danh sách. Bạn có thể sử dụng khả năng hiểu danh sách để tạo danh sách dựa trên nội dung của bộ sưu tập hiện có

Chúng ta có thể sử dụng đoạn mã sau để tạo một danh sách các sinh viên có tên chứa bốn chữ cái

four_letter_names = [name for name in students if len(name) == 4]
# [“Luke”]

Việc hiểu danh sách của chúng tôi lặp lại trên tất cả các sinh viên trong biến "sinh viên". Phương thức chuỗi len() tính toán độ dài của mỗi tên. Nếu độ dài của tên bằng bốn, thì tên đó sẽ được thêm vào danh sách “tên_bốn_chữ_cái” của chúng tôi. Mặt khác, tên không được thêm vào danh sách của chúng tôi

Hàm lambda là gì?

Hàm lambda là một hàm không có tên. Hàm lambda thường được gọi là hàm ẩn danh

Bạn có thể sử dụng hàm lambda thay thế cho việc khai báo một hàm thông thường miễn là hàm đó có thể vừa trên một dòng. Xem xét ví dụ sau

prices = [2.50, 3.10, 2.70]

over_three_dollars = list(filter(lambda price: (price > 3), prices))

Mã này đi qua danh sách "giá" và chỉ trả về giá lớn hơn $3. 00. Trong ví dụ này, chúng tôi sử dụng hàm lambda để xác định quy tắc cho phương thức filter() của chúng tôi. Quy tắc nêu rõ rằng một mức giá sẽ được thêm vào danh sách nếu mức giá đó lớn hơn $3. 00

Mã của chúng tôi trả về [3.1] bởi vì chỉ có một giá trị trong danh sách "giá" của chúng tôi lớn hơn $3. 00

Phương thức __init__ là gì?

Tên lớp. Học sinh
Của cải. tên, ngày sinh, lớp

Phương thức __init__ định nghĩa một hàm tạo trong một đối tượng. Phương thức này được gọi khi một đối tượng được tạo. __init__ là một từ khóa dành riêng

Các phương thức __init__ có thể chấp nhận bao nhiêu đối số mà bạn chỉ định khi khai báo hàm tạo. Phương thức __init__ cho phép bạn xác định các giá trị sẽ được liên kết với một đối tượng

Một phương thức __init__ sẽ xuất hiện khi bắt đầu một lớp mới, trước khi bất kỳ phương thức nào được khai báo. Xem xét ví dụ dưới đây

class Student():
	def __init__(self, name, date_of_birth, grade):
		self.name = name
		self.date_of_birth = date_of_birth
		self.grade = grade

Chúng tôi đã khai báo một lớp được gọi là Sinh viên. Lớp của chúng tôi có ba thuộc tính. tên, ngày_sinh, và lớp

Trong hàm tạo của chúng tôi, chúng tôi gán giá trị của các đối số mà người dùng chỉ định cho các giá trị tương ứng của chúng trong biến “self”. Điều này làm cho mỗi giá trị có thể truy cập được trong đối tượng của chúng tôi khi chúng tôi tham chiếu “bản thân”

Chúng ta có thể khai báo một đối tượng của lớp mình như vậy

mark = Student(“Mark”, “19/02/2007”, 8)

Chúng tôi đã tạo ra một sinh viên tên là Mark. Ngày sinh của Mark là 19/02/2007. Anh ấy học lớp tám

*args và **kwargs là gì?

Các câu lệnh *args và **kwargs cho phép bạn chấp nhận một số lượng đối số khác nhau trong một hàm

Câu lệnh *args trả về một bộ đối số. Bạn có thể truy cập các mục trong bộ bằng cách lập chỉ mục. Câu lệnh **kwargs trả về một từ điển các đối số. Các đối số được ánh xạ bằng các khóa và giá trị

*args là viết tắt của "đối số tùy ý" trong khi **kwargs là viết tắt của "đối số từ khóa tùy ý". Điều này là do các đối số **kwargs được liên kết với các từ khóa

Chúng ta có thể sử dụng **kwargs để chỉ một đối số bằng nhãn mà chúng ta gán khi chúng ta chuyển một giá trị làm đối số

def show_age(**student):
	print(“{} is {} years old.”.format(student[“name”], student[“age”]))

show_age(age=9, name=”Lynn”)

Hàm này sử dụng **kwargs để nhận thông tin về một sinh viên. Thay vì truy cập từng đối số dưới dạng một biến, chúng tôi sử dụng biến “sinh viên”. Biến “sinh viên” là một từ điển của tất cả các đối số mà chúng tôi đã thông qua

Câu lệnh **kwargs thường được sử dụng nếu bạn không biết mình sẽ vượt qua bao nhiêu đối số

Giải thích các tính năng chính giúp Python trở thành ngôn ngữ lập trình hướng đối tượng

Python, giống như Java và nhiều ngôn ngữ khác, được gọi là ngôn ngữ lập trình hướng đối tượng. Điều này có nghĩa là bạn có thể tạo các đối tượng và lớp để giúp tổ chức mã của mình

Một lớp học là một kế hoạch chi tiết. Chúng được sử dụng để xác định cấu trúc của một đối tượng. Một lớp có thể bao gồm các giá trị mà một đối tượng có thể lưu trữ và các phương thức có thể chạy trên một đối tượng

Một đối tượng là một thể hiện của một lớp. Khi bạn khởi tạo hoặc tạo một đối tượng, bạn có thể chỉ định các thuộc tính (giá trị và phương thức) được liên kết với đối tượng đó

Chẳng hạn, “Student” có thể là tên của một lớp. Lớp này sẽ lưu trữ tất cả các giá trị có thể được liên kết với hồ sơ học sinh tại trường học. “Alex” có thể là một đối tượng. Đối tượng này sẽ lưu trữ thông tin chi tiết về một sinh viên có tên là Alex

kết thúc

Đừng lo lắng về việc chuẩn bị cho mọi câu hỏi có thể xảy ra. Bạn sẽ chỉ được hỏi một vài câu hỏi trong cuộc phỏng vấn của bạn. Thực hành phỏng vấn là về việc bao gồm các yếu tố cần thiết và xây dựng sự tự tin của bạn

Khi bạn hỏi và trả lời nhiều câu hỏi phỏng vấn hơn, bạn sẽ tinh chỉnh kỹ năng giải thích công việc của mình. Bạn sẽ học cách viết mã hiệu quả hơn để giúp bạn trở thành ứng viên tốt nhất cho công việc

Cho dù bạn đang thực hiện cuộc phỏng vấn kỹ thuật đầu tiên hay bạn đã là kỹ sư cao cấp, thì việc luyện tập sẽ giúp bạn cải thiện cơ hội đạt được công việc mơ ước của mình

James Gallagher là một nhà văn tại Career Karma. Anh ấy dẫn nội dung kỹ thuật trên ấn phẩm Career Karma. James là tác giả của hàng chục bài báo dành cho khán giả là những người mới viết mã về Python, HTML, CSS, JavaScript, Java và Linux