How do you access the first item in a tuple named my_tuple?

  • my_tuple(0)
  • my_tuple<0>
  • my_tuple[0]
  • my_tuple{0}
To access the first item in a tuple, you use square brackets and specify the index. For example, my_tuple[0] retrieves the first item.

When trying to execute an expression like obj1 * obj2 for custom objects, Python internally calls _______.

  • __mul__
  • __mult__
  • __multiply__
  • __product__
When you attempt to execute an expression like obj1 * obj2 for custom objects, Python internally calls the __mul__ method. Implementing this method allows you to define how the multiplication operation behaves for your objects.

How can you remove an element from a set without raising an error if the element doesn't exist?

  • delete()
  • discard()
  • pop()
  • remove()
You can use the discard() method to remove an element from a set without raising an error if the element doesn't exist in the set. It's a safe removal method.

How does the method resolution order (MRO) in Python impact method overloading in the context of inheritance?

  • It allows Python to call overloaded methods based on the order they are defined in the class.
  • It doesn't impact method overloading; Python uses the last defined method with the same name.
  • MRO affects method overloading by considering the class hierarchy and the order of base classes.
  • MRO doesn't matter; Python uses the method with the same name in the most derived class.
The MRO in Python determines the order in which methods are searched for in class hierarchies. When methods are overloaded, the MRO helps Python find the appropriate method by considering the class hierarchy and the order of base classes. The method is then called based on the MRO.

Functions that return an iterator yielding items instead of a list are called _______.

  • Decorators
  • Generators
  • Lambda Functions
  • List Comprehensions
Functions that return an iterator yielding items instead of a list are called 'Generators'. Generators are used to generate values on-the-fly and are memory-efficient.

How can you embed a docstring within a Python function?

  • By adding a leading hyphen
  • By enclosing in {} braces
  • By prefixing with '#'
  • By using triple quotes
In Python, docstrings are embedded within functions using triple quotes (''' or """). They provide documentation and can be accessed using .__doc__.

What could be the possible reasons for a init.py file being empty in some packages?

  • It indicates a poorly designed package.
  • It prevents the package from being recognized by Python.
  • It signifies that the package has no submodules.
  • It's a common convention, but it's not necessary.
An empty init.py file in a package signifies that the package has no submodules. It's not required, but it helps Python recognize the directory as a package, enabling relative imports.

A colleague is trying to run a Python 2 script in a Python 3 environment, and the script fails due to a syntax error in the print statement. What would be the likely cause?

  • Python 2 has a different file encoding
  • Python 2 requires a __future__ import
  • Python 2 uses print as a function
  • Python 2 uses print as a statement
The likely cause of the syntax error is that Python 2 uses print as a statement, while Python 3 uses it as a function. In Python 3, you need to use parentheses, like print("Hello, World!"), whereas in Python 2, you can use print "Hello, World!".

The operator ^ in Python is used for _______.

  • Bitwise XOR
  • Exponentiation
  • Logical NOT
  • String Concatenation
The ^ operator in Python is used for Bitwise XOR, which performs a bitwise exclusive OR operation between two numbers. It flips bits where both numbers have 1s.

If an elif block gets executed in a series of if, elif, and else blocks, what happens to the subsequent elif and else blocks?

  • They are skipped and not evaluated.
  • They are still evaluated, and their conditions are checked.
  • They raise an exception.
  • They throw a warning but continue execution.
If an 'elif' block gets executed in a series of 'if', 'elif', and 'else' blocks, the subsequent 'elif' and 'else' blocks are skipped and not evaluated. This behavior ensures that only one block is executed.