Q1). What are the basic data types in Python?
The basic data types in Python include integers (`int`),
floating-point numbers (`float`),
strings (`str`),
booleans (`bool`). For instance, in a grocery store inventory, `42` can represent the number of items (an integer), `3.14` could be the price of an item (a float), `'apple'` is the name of a fruit (a string), and `True` can indicate whether an item is in stock (a boolean).
Q2). What is a string in Python?
A string is a sequence of characters enclosed in quotes.
For example: `'hello world'` is a string. If you're writing a text message, the message itself is a string, such as `'Hi, how are you?'`. Strings are used for storing and manipulating text data.
Q3). How do you concatenate two strings?
You concatenate (join) strings using the `+` operator.
For example: `'Hello' + ' World'` results in `'Hello World'`. If you have two parts of a greeting message like `'Good'` and `' Morning'`, combining them using `+` gives you the complete message `'Good Morning'`.
Q4). What is the difference between `list` and `tuple`?
A list is mutable, meaning you can change its elements, while a tuple is immutable and cannot be changed after creation. For instance, a list of daily tasks like `[‘buy groceries’, ‘read a book’]` can be updated as you complete tasks. In contrast, a tuple representing coordinates like `(40.7128, -74.0060)` should remain constant for a specific location.
Q5). What is a dictionary in Python?
A dictionary is a collection of key-value pairs.
For example: `{'name': 'John', 'age': 30}` represents a person with a name and age. If you’re creating a contact list, each contact can be stored as a dictionary with keys like `'phone'` and `'email'`.
Q6). How do you access a value in a dictionary?
You access a value in a dictionary using its key.
For example: in `{'name': 'John', 'age': 30}`, `my_dict['name']` returns `'John'`. If you have a dictionary for a book with keys like `'title'` and `'author'`, you can get the author by accessing `my_dict['author']`.
Q7). What is a set in Python?
A set is an unordered collection of unique elements.
For example: `{1, 2, 3}` is a set of numbers where each number appears only once. If you’re managing a list of unique tags for blog posts, a set ensures that each tag appears only once.
Q8). How do you convert a list to a set?
You convert a list to a set using the `set()` function.
For example: `set([1, 2, 2, 3])` results in `{1, 2, 3}`, removing duplicates. If you have a list of email addresses with duplicates, converting it to a set will give you only unique addresses.
Q9). What is type casting in Python?
Type casting is converting one data type to another.
For example: `int('42')` converts the string `'42'` to the integer `42`. If you have a numeric value stored as text and need to perform arithmetic, you cast it to an integer or float.
Q10). What is a `None` type in Python?
`None` represents the absence of a value.
For example: if a function is supposed to return a value but doesn’t, it returns `None`. It’s like an empty box where no item is placed.
Q11). What is the `isinstance()` function?
The `isinstance()` function checks if an object is of a specified type.
For example: `isinstance(5, int)` returns `True` because `5` is an integer. It’s useful for verifying the type of an object before performing operations on it.
Q12). What are complex numbers in Python?
Complex numbers have a real and an imaginary part, written as `a + bj`.
For example: `3 + 4j` has a real part of `3` and an imaginary part of `4`. They are used in advanced mathematical computations like signal processing.
Q13). How do you check the type of a variable?
Use the `type()` function to check a variable’s type.
For example: `type(42)` returns `
` indicating `42` is an integer. It’s like looking at the label on a container to see its contents.
Q14). What is the difference between `==` and `is` operators?
`==` checks if values are equal, while `is` checks if objects are the same in memory.
For example: `a = [1, 2]` and `b = [1, 2]` are equal (`a == b`) but are different objects (`a is not b`). `==` compares content, and `is` compares identity.
Q15). How do you create a list with default values?
Use multiplication to create a list with default values.
For example: `[0] * 5` creates `[0, 0, 0, 0, 0]`. This is useful for initializing a list with a fixed number of elements, like setting up an empty schedule for the week.
Q16). What is the difference between a list and a tuple in terms of performance?
Tuples are generally faster and use less memory than lists because they are immutable.
For example: if you’re storing a fixed set of data like geographic coordinates, using a tuple is more efficient than using a list.
Q17). How do you handle multiple data types in a single container?
Use lists or dictionaries to handle multiple data types.
For example: `mixed_list = [1, 'hello', 3.14]` contains an integer, a string, and a float. This is useful when dealing with heterogeneous data like a record with multiple fields.
Q18). What is the purpose of the `collections` module?
The `collections` module provides alternatives to built-in data types, such as `Counter` for counting elements, `defaultdict` for default values, and `namedtuple` for simple classes.
For example: `Counter(['a', 'b', 'a'])` counts occurrences of each element.
Q19). How do you create a dictionary with default values?
Use `defaultdict` from the `collections` module.
For example: `from collections import defaultdict` and `my_dict = defaultdict(int)` creates a dictionary where missing keys default to `0`. This is useful for counting items where non-existent keys should start with a default value.
Q20). How do you convert a string to a list?
Use `list()` or `split()` to convert a string to a list.
For example: `list('hello')` converts `'hello'` to `['h', 'e', 'l', 'l', 'o']`, and `'a b c'.split()` converts the string `'a b c'` to `['a', 'b', 'c']`.
Q21). What is the `frozenset` data type?
`frozenset` is an immutable version of a set.
For example: `frozenset([1, 2, 3])` creates an immutable set. Unlike regular sets, you cannot add or remove elements from a `frozenset`, which is useful when you need a constant set of elements.
Q22). What are `byte` and `bytearray` types?
`bytes` is an immutable sequence of bytes, while `bytearray` is mutable.
For example: `b'hello'` is a `bytes` object that cannot be modified, while `bytearray(b'hello')` can be modified, like appending or changing bytes in binary data.
Q23). How do you handle large numbers in Python?
Python’s `int` type can handle arbitrarily large integers without overflow.
For example: `large_number = 123456789012345678901234567890` can be used directly without worrying about size limits. This is useful in fields like cryptography where large numbers are common.
Q24). What is the difference between `float` and `Decimal`?
`float` represents floating-point numbers with limited precision, while `Decimal` provides high precision.
For example: `0.1` as a `float` may have precision issues, but `Decimal('0.1')` maintains exact precision. Use `Decimal` for financial calculations to avoid rounding errors.
Q25). How do you use the `enum` module?
The `enum` module creates symbolic names for a set of values.
For example: `from enum import Enum` and `class Color(Enum): RED = 1, GREEN = 2` defines an enumeration where `Color.RED` is `1`. This is useful for representing categories or states with named values.
Q26). What is the use of `NamedTuple`?
`NamedTuple` creates a class with named fields for storing data.
For example: `from typing import NamedTuple` and `class Point(NamedTuple): x: int; y: int` defines a `Point` with `x` and `y` attributes, useful for representing structured data in a more readable way.
Q27). How do you handle variable-length arguments in a function?
Use `*args` for variable positional arguments and `**kwargs` for variable keyword arguments.
For example: `def func(*args, **kwargs)` lets you pass any number of arguments. If you’re writing a function to process different user inputs, this approach helps accommodate various input sizes.
Q28). What is a `None` type in Python?
`None` is used to represent the absence of a value or a null value.
For example: if a function is supposed to return a value but doesn’t, it returns `None`. It’s like an empty placeholder indicating that nothing is present.
Q29). What is the `type()` function?
The `type()` function returns the type of an object.
For example: `type(42)` returns `
`, indicating that `42` is an integer. This is useful for debugging or when you need to confirm the type of a variable.
Q30). What is a complex number in Python?
A complex number in Python has a real and an imaginary part, written as `a + bj`.
For example: `3 + 4j` is a complex number with `3` as the real part and `4j` as the imaginary part. This is used in fields like electrical engineering and signal processing.
Q31). How do you handle binary data in Python?
Use `bytes` for immutable binary sequences and `bytearray` for mutable sequences.
For example: `b'hello'` is a `bytes` object, and `bytearray(b'hello')` can be modified. This is useful for tasks like reading and writing binary files.
Q32). What is a `deque` and when would you use it?
A `deque` (double-ended queue) allows fast appends and pops from both ends.
For example: `from collections import deque` and `d = deque([1, 2, 3])` allows you to efficiently add or remove items from both ends, useful for implementing queues and stacks.