Q: What is the difference between a list and a tuple in Python?
A: Lists are mutable, can be modified after creation. Tuples are immutable, cannot be changed once created.
Python
my_list = [1, 2, 3]
my_list.append(4) # Add an element
Use code with caution.
my_tuple = (1, 2, 3)
# my_tuple[0] = 4 # This will raise an error
Use code with caution.
Q: Explain the concept of object-oriented programming (OOP) in Python.
A: OOP is a programming paradigm that models real-world entities as objects. Classes: Blueprints for creating objects. Objects: Instances of classes. Inheritance: Creating new classes based on existing ones. Polymorphism: Objects of different classes can be treated as if they were the same type. Encapsulation: Hiding internal implementation details.
Q: What are decorators in Python?
A: Decorators are functions that modify the behavior of other functions without directly altering their code.
Python
def my_decorator(func):
def wrapper():
print("Before function call")
func()
print("After function call")
return wrapper
@my_decorator
def greet():
print("Hello!")
greet()
Use code with caution.
Q: How do you handle exceptions in Python?
A: Use try-except blocks to catch exceptions and handle them gracefully.
Python
try:
result = 10 / 0
except ZeroDivisionError:
print("Cannot divide by zero")
Use code with caution.
Data Structures and Algorithms
Q: What are different ways to sort a list in Python?
A: Built-in sort() method, sorted() function, and custom sorting functions.
Python
my_list = [3, 1, 4, 1, 5, 9]
my_list.sort()
Use code with caution.
sorted_list = sorted(my_list)
Use code with caution.
def bubble_sort(arr):
# Implement bubble sort logic
Use code with caution.
Q: Explain the difference between a dictionary and a list.
A: Dictionaries: Unordered collections of key-value pairs. Lists: Ordered collections of elements.
Python
my_dict = {"name": "Alice", "age": 30}
Use code with caution.
my_list = [1, 2, 3]
Use code with caution.
Q: How do you implement a stack using a list in Python?
A: Use append() to push elements onto the stack. Use pop() to pop elements from the stack.
Python
stack = []
stack.append(1)
stack.append(2)
element = stack.pop()
Use code with caution.
Python Libraries and Frameworks
Q: What is NumPy, and why is it used in Python?
A: NumPy is a library for numerical computing in Python. It provides efficient multi-dimensional arrays and mathematical functions. Used for scientific computing, data analysis, and machine learning.
Q: What are some common use cases for the Pandas library?
A: Data manipulation, analysis, and cleaning. Data visualization. Time series analysis.
Q: What is the purpose of the Matplotlib library?
A: Matplotlib is a plotting library used for creating static, animated, and interactive visualizations. Used for data visualization, scientific plots, and more.
Advanced Python Topics
Q: Explain the concept of metaclasses in Python.
A: Metaclasses are classes that create other classes. They can be used to customize class creation behavior.
Q: What is the difference between shallow and deep copying in Python?
A: Shallow copy: Creates a new object but references the same underlying data. Deep copy: Creates a new object and copies all data recursively.
Q: How can you optimize Python code for performance?
A: Use efficient data structures. Avoid unnecessary computations. Profile your code to identify bottlenecks. Consider using libraries like Cython or Numba for performance-critical tasks.
Python Best Practices
Q: What are some common Python coding style conventions?
A: PEP 8: The official style guide for Python code. Consistent indentation, naming conventions, and formatting.
Q: How do you write docstrings for your Python functions and classes?
A: Docstrings are used to document the purpose, parameters, and return values of functions and classes. Use triple quotes (“”” “”” or ”’ ”’) to enclose docstrings.