1. What is Python, and what makes it different from other programming languages?
Answer: Python is a high-level, interpreted programming language known for its readability and simplicity. Its key distinctions include dynamic typing, automatic memory management, and a comprehensive standard library.
2. Explain the difference between lists and tuples.
Answer: Lists are mutable, while tuples are immutable. Lists use square brackets, and tuples use parentheses.
3. How does Python’s garbage collection work?
Answer: Python uses automatic memory management. The garbage collector identifies and deletes objects that are no longer referenced to free up memory.
4. What is PEP 8, and why is it important?
Answer: PEP 8 is the style guide for Python code. It promotes consistent and readable code by providing conventions on spacing, indentation, and naming. Adhering to PEP 8 enhances code maintainability.
5. Explain the difference between ‘==’ and ‘is’ in Python.
Answer: ‘==’ compares the values of two objects, while ‘is’ compares their identities. ‘is’ checks if two variables reference the same object in memory.
6. What is the purpose of the ‘if name == “main“:’ statement in Python scripts?
Answer: This statement ensures that the code block following it is only executed when the script is run directly, not when it’s imported as a module.
7. How are exceptions handled in Python?
Answer: Exceptions are handled using the
except, and optionally
finally blocks. The
try block contains the code that might raise an exception, and the
except block handles the exception.
8. Explain the Global Interpreter Lock (GIL).
Answer: The GIL is a mechanism in CPython that allows only one thread to execute Python bytecode at a time. This can impact the performance of multi-threaded Python programs.
9. Describe the use of ‘self’ in Python classes.
Answer: ‘self’ is a reference to the instance of the class and is used to access class variables. It must be the first parameter in any instance method.
10. How are functions defined in Python?
Answer: Functions are defined using the ‘def’ keyword, followed by the function name, parameters in parentheses, a colon, and the function body.
11. What is the difference between ‘range’ and ‘xrange’ in Python 2?
Answer: In Python 2, ‘range’ generates a list, while ‘xrange’ returns an xrange object, which is more memory-efficient for large ranges.
12. Explain the purpose of the ‘with’ statement in Python.
Answer: The ‘with’ statement is used for resource management. It ensures that a context is properly entered and exited, such as file handling using ‘open’ and ‘close’.
13. How does the Python memory management system work?
Answer: Python uses a private heap to manage memory. Objects and data structures are allocated on the heap, and the garbage collector reclaims memory occupied by objects that are no longer referenced.
14. Discuss the differences between shallow copy and deep copy in Python.
Answer: Shallow copy creates a new object but doesn’t create copies of nested objects. Deep copy creates a new object and recursively copies all objects found in the original.
15. What is the purpose of the ‘init‘ method in Python classes?
Answer: The ‘init‘ method initializes the attributes of an object when it is created. It is called automatically when an object is instantiated.
16. How can you share global variables across modules?
Answer: One way is to create a configuration module and import it into other modules. Another is to use the ‘global’ keyword to declare a variable global in a module.
17. Explain the use of the ‘zip’ function in Python.
Answer: ‘zip’ aggregates elements from multiple iterable objects into tuples. It stops when the shortest input iterable is exhausted.
18. What is the purpose of the ‘yield’ keyword in Python?
Answer: ‘yield’ is used in generator functions to produce a sequence of values iteratively, allowing the function to maintain its state between calls.
19. Discuss the advantages and disadvantages of using Python.
Answer: Advantages include readability, extensive libraries, and versatility. Disadvantages include slower execution speed compared to languages like C++.
20. How does Python support functional programming?
Answer: Python supports functional programming with features like first-class functions, lambda expressions, and higher-order functions.
21. Explain the use of decorators in Python.
Answer: Decorators are a powerful and flexible way to modify or extend the behavior of callable objects (functions or methods) without changing their source code. They are often used for aspects like logging, timing, or access control.
22. What is the Zen of Python?
Answer: The Zen of Python is a collection of guiding principles for writing computer programs in the Python language. It is presented as a series of aphorisms, providing insights into the design philosophy of Python.
23. Discuss the differences between list comprehension and generator expression.
Answer: List comprehension creates a list, while a generator expression creates an iterator. List comprehension produces the entire list, while a generator expression produces values on-the-fly.
24. What are metaclasses in Python?
Answer: Metaclasses are classes for classes. They define the behavior of classes, including how they are created, instantiated, and customized.
25. Explain the purpose of the ‘itertools’ module in Python.
Answer: ‘itertools’ provides fast, memory-efficient tools for creating iterators. It includes functions like ‘count’, ‘cycle’, and ‘chain’.
26. How does Python handle private variables in a class?
Answer: Python uses name mangling to make a variable private. Prefixing a variable name with two underscores makes it harder to access from outside the class.
27. What is the Global Value Table (GVT) in Python?
Answer: The GVT is a mechanism in Jython (Python on the Java Virtual Machine) similar to the GIL in CPython. It ensures that only one thread executes Python bytecode at a time.
28. Discuss the use of the ‘map’ function in Python.
Answer: ‘map’ applies a given function to all items in an input list (or any iterable) and returns an iterator of the results.
29. Explain the purpose of the ‘str‘ and ‘repr‘ methods in Python classes.
Answer: ‘str‘ returns a human-readable string representation of an object, while ‘repr‘ returns an unambiguous string representation for debugging.
30. How does Python support multiple inheritances, and what are its challenges?
Answer: Python supports multiple inheritances by allowing a class to inherit from more than one base class. Challenges include the diamond problem and complexity in understanding class hierarchies.