Importance of Python Programming skills

Importance of Python Programming skills

Python is one among the most easiest and user friendly programming languages when it comes to the field of software engineering. The codes and syntaxes of python is so simple and easy to use that it can be deployed in any problem solving...

Python is one among the most easiest and user friendly programming languages when it comes to the field of software engineering. The codes and syntaxes of python is so simple and easy to use that it can be deployed in any problem solving challenges. The codes of Python can easily be deployed in Data Science and Machine Learning. Due to this ease of deployment and easier syntaxes, this platform has a lot of real world problem solving applications. According to the sources the companies are eagerly hunting for the professionals with python skills along with SQL. An average python developer in the united states makes around 1 lakh U.S Dollars per annum. In some of the top IT hubs in our country like Bangalore, the demand for professionals in the domains of Data Science and Python Programming has surpassed over the past few years. As a result of which a lot of various python certification courses are available right now.

Array in Python: An array is defined as a data structure that can hold a fixed number of elements that are of the same python data type. The following are some of the basic functions of array in python:

  1. To find the transverse
  2. For insertion of the elements
  3. For deletion of the elements
  4. For searching the elements

Along with this one can easily crack any python interview by means of python interview questions

Top 100 Python Interview Questions and Answers

Top 100 Python Interview Questions and Answers

In this article, we brought 100 essential Python interview questions to acquaint you with the skills and knowledge required to succeed in a job interview.

In this article, we brought 100 essential Python interview questions to acquaint you with the skills and knowledge required to succeed in a job interview.

Our team which includes experienced Python programmers have made a careful selection of the questions to keep a balance between theory and practical knowledge. So, you can get the full advantage.

Not only the job aspirants but also the recruiters can refer this post to know the right set of questions to evaluate a candidate. Let’s now step-in to explore the Python Q&A section.

100 Essential Python Interview Questions

Let’s begin answering the fundamental-level Python interview questions.

Q-1: What is Python, what are the benefits of using it, and what do you understand of PEP 8?

Python is one of the most successful interpreted languages. When you write a Python script, it doesn’t need to get compiled before execution. Few other interpreted languages are PHP and Javascript.

Benefits of Python Programming

  • Python is a dynamic-typed language. It means that you don’t need to mention the data type of variables during their declaration. It allows to set variables like var1=101 and var2 =” You are an engineer.” without any error.
  • Python supports object orientated programming as you can define classes along with the composition and inheritance. It doesn’t use access specifiers like public or private).
  • Functions in Python are like first-class objects. It suggests you can assign them to variables, return from other methods and pass as arguments.
  • Developing using Python is quick but running it is often slower than compiled languages. Luckily, Python enables to include the “C” language extensions so you can optimize your scripts.
  • Python has several usages like web-based applications, test automation, data modeling, big data analytics and much more. Alternatively, you can utilize it as a “glue” layer to work with other languages.

PEP 8.

PEP 8 is the latest Python coding standard, a set of coding recommendations. It guides to deliver more readable Python code.

Q-2: What is the output of the following Python code fragment? Justify your answer.

def extendList(val, list=[]):
    list.append(val)
    return list

list1 = extendList(10)
list2 = extendList(123,[])
list3 = extendList('a')

print "list1 = %s" % list1
print "list2 = %s" % list2
print "list3 = %s" % list3

The result of the above Python code snippet is:

list1 = [10, 'a']
list2 = [123]
list3 = [10, 'a']

You may erroneously expect list1 to be equal to [10] and list3 to match with [‘a’], thinking that the list argument will initialize to its default value of [] every time there is a call to the extendList.

However, the flow is like that a new list gets created once after the function is defined. And the same get used whenever someone calls the extendList method without a list argument. It works like this because the calculation of expressions (in default arguments) occurs at the time of function definition, not during its invocation.

The list1 and list3 are hence operating on the same default list, whereas list2 is running on a separate object that it has created on its own (by passing an empty list as the value of the list parameter).

The definition of the extendList function can get changed in the following manner.

def extendList(val, list=None):
  if list is None:
    list = []
  list.append(val)
  return list

With this revised implementation, the output would be:

list1 = [10]
list2 = [123]
list3 = ['a']

Q-3: What is the statement that can be used in Python if the program requires no action but requires it syntactically?

The pass statement is a null operation. Nothing happens when it executes. You should use “pass” keyword in lowercase. If you write “Pass,” you’ll face an error like “NameError: name Pass is not defined.” Python statements are case sensitive.

letter = "hai sethuraman"
for i in letter:
    if i == "a":
        pass
        print("pass statement is execute ..............")
    else:
        print(i)

Q-4: What’s the process to get the home directory using ‘~’ in Python?

You need to import the os module, and then just a single line would do the rest.

import os
print (os.path.expanduser('~'))

Output:

/home/runner

Q-5: What are the built-in types available in Python?

Here is the list of most commonly used built-in types that Python supports:

  • Python is a dynamic-typed language. It means that you don’t need to mention the data type of variables during their declaration. It allows to set variables like var1=101 and var2 =” You are an engineer.” without any error.
  • Python supports object orientated programming as you can define classes along with the composition and inheritance. It doesn’t use access specifiers like public or private).
  • Functions in Python are like first-class objects. It suggests you can assign them to variables, return from other methods and pass as arguments.
  • Developing using Python is quick but running it is often slower than compiled languages. Luckily, Python enables to include the “C” language extensions so you can optimize your scripts.
  • Python has several usages like web-based applications, test automation, data modeling, big data analytics and much more. Alternatively, you can utilize it as a “glue” layer to work with other languages.

Q-6: How to find bugs or perform static analysis in a Python application?

  • Python is a dynamic-typed language. It means that you don’t need to mention the data type of variables during their declaration. It allows to set variables like var1=101 and var2 =” You are an engineer.” without any error.
  • Python supports object orientated programming as you can define classes along with the composition and inheritance. It doesn’t use access specifiers like public or private).
  • Functions in Python are like first-class objects. It suggests you can assign them to variables, return from other methods and pass as arguments.
  • Developing using Python is quick but running it is often slower than compiled languages. Luckily, Python enables to include the “C” language extensions so you can optimize your scripts.
  • Python has several usages like web-based applications, test automation, data modeling, big data analytics and much more. Alternatively, you can utilize it as a “glue” layer to work with other languages.

Q-7: When is the Python decorator used?

Python decorator is a relative change that you do in Python syntax to adjust the functions quickly.

Q-8: What is the principal difference between a list and the tuple?

List vs. Tuple.

The principal difference between a list and the tuple is that the former is mutable while the tuple is not.

A tuple is allowed to be hashed, for example, using it as a key for dictionaries.

Q-9: How does Python handle memory management?

  • Python is a dynamic-typed language. It means that you don’t need to mention the data type of variables during their declaration. It allows to set variables like var1=101 and var2 =” You are an engineer.” without any error.
  • Python supports object orientated programming as you can define classes along with the composition and inheritance. It doesn’t use access specifiers like public or private).
  • Functions in Python are like first-class objects. It suggests you can assign them to variables, return from other methods and pass as arguments.
  • Developing using Python is quick but running it is often slower than compiled languages. Luckily, Python enables to include the “C” language extensions so you can optimize your scripts.
  • Python has several usages like web-based applications, test automation, data modeling, big data analytics and much more. Alternatively, you can utilize it as a “glue” layer to work with other languages.

Q-10: What are the principal differences between the lambda and def?

Lambda vs. def.

  • Python is a dynamic-typed language. It means that you don’t need to mention the data type of variables during their declaration. It allows to set variables like var1=101 and var2 =” You are an engineer.” without any error.
  • Python supports object orientated programming as you can define classes along with the composition and inheritance. It doesn’t use access specifiers like public or private).
  • Functions in Python are like first-class objects. It suggests you can assign them to variables, return from other methods and pass as arguments.
  • Developing using Python is quick but running it is often slower than compiled languages. Luckily, Python enables to include the “C” language extensions so you can optimize your scripts.
  • Python has several usages like web-based applications, test automation, data modeling, big data analytics and much more. Alternatively, you can utilize it as a “glue” layer to work with other languages.

Q-11: Write a reg expression that confirms an email id using the python reg expression module “re”?

Python has a regular expression module “re.”

Check out the “re” expression that can check the email id for .com and .co.in subdomain.

import re
print(re.search(r"[0-9a-zA-Z.][email protected][a-zA-Z]+\.(com|co\.in)$","[email protected]"))

Q-12: What do you think is the output of the following code fragment? Is there any error in the code?

list = ['a', 'b', 'c', 'd', 'e']
print (list[10:])

The result of the above lines of code is []. There won’t be any error like an IndexError.

You should know that trying to fetch a member from the list using an index that exceeds the member count (for example, attempting to access list[10] as given in the question) would yield an IndexError. By the way, retrieving only a slice at the starting index that surpasses the no. of items in the list won’t result in an IndexError. It will just return an empty list.

Q-13: Is there a switch or case statement in Python? If not then what is the reason for the same?

No, Python does not have a Switch statement, but you can write a Switch function and then use it.

Q-14: What is a built-in function that Python uses to iterate over a number sequence?

Range() generates a list of numbers, which is used to iterate over for loops.

for i in range(5):
    print(i)

The range() function accompanies two sets of parameters.

  • Python is a dynamic-typed language. It means that you don’t need to mention the data type of variables during their declaration. It allows to set variables like var1=101 and var2 =” You are an engineer.” without any error.
  • Python supports object orientated programming as you can define classes along with the composition and inheritance. It doesn’t use access specifiers like public or private).
  • Functions in Python are like first-class objects. It suggests you can assign them to variables, return from other methods and pass as arguments.
  • Developing using Python is quick but running it is often slower than compiled languages. Luckily, Python enables to include the “C” language extensions so you can optimize your scripts.
  • Python has several usages like web-based applications, test automation, data modeling, big data analytics and much more. Alternatively, you can utilize it as a “glue” layer to work with other languages.

Q-15: What are the optional statements possible inside a try-except block in Python?

There are two optional clauses you can use in the try-except block.

  • Python is a dynamic-typed language. It means that you don’t need to mention the data type of variables during their declaration. It allows to set variables like var1=101 and var2 =” You are an engineer.” without any error.
  • Python supports object orientated programming as you can define classes along with the composition and inheritance. It doesn’t use access specifiers like public or private).
  • Functions in Python are like first-class objects. It suggests you can assign them to variables, return from other methods and pass as arguments.
  • Developing using Python is quick but running it is often slower than compiled languages. Luckily, Python enables to include the “C” language extensions so you can optimize your scripts.
  • Python has several usages like web-based applications, test automation, data modeling, big data analytics and much more. Alternatively, you can utilize it as a “glue” layer to work with other languages.

Q-16: What is a string in Python?

A string in Python is a sequence of alpha-numeric characters. They are immutable objects. It means that they don’t allow modification once they get assigned a value. Python provides several methods, such as join(), replace(), or split() to alter strings. But none of these change the original object.

Q-17: What is slicing in Python?

Slicing is a string operation for extracting a part of the string, or some part of a list. In Python, a string (say text) begins at index 0, and the nth character stores at position text[n-1]. Python can also perform reverse indexing, i.e., in the backward direction, with the help of negative numbers. In Python, the slice() is also a constructor function which generates a slice object. The result is a set of indices mentioned by range(start, stop, step). The slice() method allows three parameters. 1. start – starting number for the slicing to begin. 2. stop – the number which indicates the end of slicing. 3. step – the value to increment after each index (default = 1).

Q-18: What is %s in Python?

Python has support for formatting any value into a string. It may contain quite complex expressions.

One of the common usages is to push values into a string with the %s format specifier. The formatting operation in Python has the comparable syntax as the C function printf() has.

Q-19: Is a string immutable or mutable in Python?

Python strings are indeed immutable.

Let’s take an example. We have an “str” variable holding a string value. We can’t mutate the container, i.e., the string, but can modify what it contains that means the value of the variable.

Q-20: What is the index in Python?

An index is an integer data type which denotes a position within an ordered list or a string.

In Python, strings are also lists of characters. We can access them using the index which begins from zero and goes to the length minus one.

For example, in the string “Program,” the indexing happens like this:

Program 0 1 2 3 4 5

Q-21: What is Docstring in Python?

A docstring is a unique text that happens to be the first statement in the following Python constructs:

Module, Function, Class, or Method definition.

A docstring gets added to the doc attribute of the string object.

Now, read some of the Python interview questions on functions.

Q-22: What is a function in Python programming?

A function is an object which represents a block of code and is a reusable entity. It brings modularity to a program and a higher degree of code reusability.

Python has given us many built-in functions such as print() and provides the ability to create user-defined functions.

Q-23: How many basic types of functions are available in Python?

Python gives us two basic types of functions.

  1. Built-in, and

  2. User-defined.

The built-in functions happen to be part of the Python language. Some of these are print(), dir(), len(), and abs() etc.

Q-24: How do we write a function in Python?

We can create a Python function in the following manner.

Step-1: to begin the function, start writing with the keyword def and then mention the function name.

Step-2: We can now pass the arguments and enclose them using the parentheses. A colon, in the end, marks the end of the function header.

Step-3: After pressing an enter, we can add the desired Python statements for execution.

Q-25: What is a function call or a callable object in Python?

A function in Python gets treated as a callable object. It can allow some arguments and also return a value or multiple values in the form of a tuple. Apart from the function, Python has other constructs, such as classes or the class instances which fits in the same category.

Q-26: What is the return keyword used for in Python?

The purpose of a function is to receive the inputs and return some output.

The return is a Python statement which we can use in a function for sending a value back to its caller.

Q-27: What is “Call by Value” in Python?

In call-by-value, the argument whether an expression or a value gets bound to the respective variable in the function.

Python will treat that variable as local in the function-level scope. Any changes made to that variable will remain local and will not reflect outside the function.

Q-28: What is “Call by Reference” in Python?

We use both “call-by-reference” and “pass-by-reference” interchangeably. When we pass an argument by reference, then it is available as an implicit reference to the function, rather than a simple copy. In such a case, any modification to the argument will also be visible to the caller.

This scheme also has the advantage of bringing more time and space efficiency because it leaves the need for creating local copies.

On the contrary, the disadvantage could be that a variable can get changed accidentally during a function call. Hence, the programmers need to handle in the code to avoid such uncertainty.

Q-29: What is the return value of the trunc() function?

The Python trunc() function performs a mathematical operation to remove the decimal values from a particular expression and provides an integer value as its output.

Q-30: Is it mandatory for a Python function to return a value?

It is not at all necessary for a function to return any value. However, if needed, we can use None as a return value.

Q-31: What does the continue do in Python?

The continue is a jump statement in Python which moves the control to execute the next iteration in a loop leaving all the remaining instructions in the block unexecuted.

The continue statement is applicable for both the “while” and “for” loops.

Q-32: What is the purpose of id() function in Python?

The id() is one of the built-in functions in Python.

Signature: id(object)

It accepts one parameter and returns a unique identifier associated with the input object.

Q-33: What does the *args do in Python?

We use *args as a parameter in the function header. It gives us the ability to pass N (variable) number of arguments.

Please note that this type of argument syntax doesn’t allow passing a named argument to the function.

Example of using the *args:

# Python code to demonstrate 
# *args for dynamic arguments 
def fn(*argList):  
    for argx in argList:  
        print (argx) 
    
fn('I', 'am', 'Learning', 'Python')

The output:

I
am
Learning
Python

Q-34: What does the **kwargs do in Python?

We can also use the **kwargs syntax in a Python function declaration. It let us pass N (variable) number of arguments which can be named or keyworded.

Example of using the **kwargs:

# Python code to demonstrate 
# **kwargs for dynamic + named arguments 
def fn(**kwargs):  
    for emp, age in kwargs.items(): 
        print ("%s's age is %s." %(emp, age)) 
    
fn(John=25, Kalley=22, Tom=32)

The output:

John's age is 25.
Kalley's age is 22.
Tom's age is 32.

Q-35: Does Python have a Main() method?

The main() is the entry point function which happens to be called first in most programming languages.

Since Python is interpreter-based, so it sequentially executes the lines of the code one-by-one.

Python also does have a Main() method. But it gets executed whenever we run our Python script either by directly clicking it or starts it from the command line.

We can also override the Python default main() function using the Python if statement. Please see the below code.

print("Welcome")
print("__name__ contains: ", __name__)
def main():
    print("Testing the main function")
if __name__ == '__main__':
    main()

The output:

Welcome
__name__ contains:  __main__
Testing the main function

Q-36: What does the __ Name __ do in Python?

The name is a unique variable. Since Python doesn’t expose the main() function, so when its interpreter gets to run the script, it first executes the code which is at level 0 indentation.

To see whether the main() gets called, we can use the name variable in an if clause compares with the value “main.”

Q-37: What is the purpose of “end” in Python?

Python’s print() function always prints a newline in the end. The print() function accepts an optional parameter known as the ‘end.’ Its value is ‘\n’ by default. We can change the end character in a print statement with the value of our choice using this parameter.

# Example: Print a  instead of the new line in the end.
print("Let's learn" , end = ' ')  
print("Python") 

# Printing a dot in the end.
print("Learn to code from techbeamers" , end = '.')  
print("com", end = ' ')

The output is:

Let's learn Python
Learn to code from techbeamers.com

Q-38: When should you use the “break” in Python?

Python provides a break statement to exit from a loop. Whenever the break hits in the code, the control of the program immediately exits from the body of the loop.

The break statement in a nested loop causes the control to exit from the inner iterative block.

Q-39: What is the difference between pass and continue in Python?

The continue statement makes the loop to resume from the next iteration.

On the contrary, the pass statement instructs to do nothing, and the remainder of the code executes as usual.

Q-40: What does the len() function do in Python?

In Python, the len() is a primary string function. It determines the length of an input string.

>>> some_string = 'techbeamers'
>>> len(some_string)
11

Q-41: What does the chr() function do in Python?

The chr() function got re-added in Python 3.2. In version 3.0, it got removed.

It returns the string denoting a character whose Unicode code point is an integer.

For example, the chr(122) returns the string ‘z’ whereas the chr(1212) returns the string ‘Ҽ’.

Q-42: What does the ord() function do in Python?

The ord(char) in Python takes a string of size one and returns an integer denoting the Unicode code format of the character in case of a Unicode type object, or the value of the byte if the argument is of 8-bit string type.

>>> ord("z")
122

Q-43: What is Rstrip() in Python?

Python provides the rstrip() method which duplicates the string but leaves out the whitespace characters from the end.

The rstrip() escapes the characters from the right end based on the argument value, i.e., a string mentioning the group of characters to get excluded.

The signature of the rstrip() is:

str.rstrip([char sequence/pre>
#Example
test_str = 'Programming    '
# The trailing whitespaces are excluded
print(test_str.rstrip())

Q-44: What is whitespace in Python?

Whitespace represents the characters that we use for spacing and separation.

They possess an “empty” representation. In Python, it could be a tab or space.

Q-45: What is isalpha() in Python?

Python provides this built-in isalpha() function for the string handling purpose.

It returns True if all characters in the string are of alphabet type, else it returns False.

Q-46: How do you use the split() function in Python?

Python’s split() function works on strings to cut a large piece into smaller chunks, or sub-strings. We can specify a separator to start splitting, or it uses the space as one by default.

#Example
str = 'pdf csv json'
print(str.split(" "))
print(str.split())

The output:

['pdf', 'csv', 'json']
['pdf', 'csv', 'json']

Q-47: What does the join method do in Python?

Python provides the join() method which works on strings, lists, and tuples. It combines them and returns a united value.

Q-48: What does the Title() method do in Python?

Python provides the title() method to convert the first letter in each word to capital format while the rest turns to Lowercase.

#Example
str = 'lEaRn pYtHoN'
print(str.title())

The output:

Learn Python

Now, check out some general purpose Python interview questions.

Q-49: What makes the CPython different from Python?

CPython has its core developed in C. The prefix ‘C’ represents this fact. It runs an interpreter loop used for translating the Python-ish code to C language.

Q-50: Which package is the fastest form of Python?

PyPy provides maximum compatibility while utilizing CPython implementation for improving its performance.

The tests confirmed that PyPy is nearly five times faster than the CPython. It currently supports Python 2.7.

Q-51: What is GIL in Python language?

Python supports GIL (the global interpreter lock) which is a mutex used to secure access to Python objects, synchronizing multiple threads from running the Python bytecodes at the same time.

Q-52: How is Python thread safe?

Python ensures safe access to threads. It uses the GIL mutex to set synchronization. If a thread loses the GIL lock at any time, then you have to make the code thread-safe.

For example, many of the Python operations execute as atomic such as calling the sort() method on a list.

Q-53: How does Python manage the memory?

Python implements a heap manager internally which holds all of its objects and data structures.

This heap manager does the allocation/de-allocation of heap space for objects.

Q-54: What is a tuple in Python?

A tuple is a collection type data structure in Python which is immutable.

They are similar to sequences, just like the lists. However, There are some differences between a tuple and list; the former doesn’t allow modifications whereas the list does.

Also, the tuples use parentheses for enclosing, but the lists have square brackets in their syntax.

Q-55: What is a dictionary in Python programming?

A dictionary is a data structure known as an associative array in Python which stores a collection of objects.

The collection is a set of keys having a single associated value. We can call it a hash, a map, or a hashmap as it gets called in other programming languages.

Q-56: What is the set object in Python?

Sets are unordered collection objects in Python. They store unique and immutable objects. Python has its implementation derived from mathematics.

Q-57: What is the use of the dictionary in Python?

A dictionary has a group of objects (the keys) map to another group of objects (the values). A Python dictionary represents a mapping of unique Keys to Values.

They are mutable and hence will not change. The values associated with the keys can be of any Python types.

Q-58: Is Python list a linked list?

A Python list is a variable-length array which is different from C-style linked lists.

Internally, it has a contiguous array for referencing to other objects and stores a pointer to the array variable and its length in the list head structure.

Here are some Python interview questions on classes and objects.

Q-59: What is Class in Python?

Python supports object-oriented programming and provides almost all OOP features to use in programs.

A Python class is a blueprint for creating the objects. It defines member variables and gets their behavior associated with them.

We can make it by using the keyword “class.” An object gets created from the constructor. This object represents the instance of the class.

In Python, we generate classes and instances in the following way.

>>>class Human:  # Create the class
...     pass
>>>man = Human()  # Create the instance
>>>print(man)


Q-60: What are Attributes and Methods in a Python class?

A class is useless if it has not defined any functionality. We can do so by adding attributes. They work as containers for data and functions. We can add an attribute directly specifying inside the class body.

>>> class Human:
...     profession = "programmer" # specify the attribute 'profession' of the class
>>> man = Human()
>>> print(man.profession)
programmer

After we added the attributes, we can go on to define the functions. Generally, we call them methods. In the method signature, we always have to provide the first argument with a self-keyword.

>>> class Human:
    profession = "programmer"
    def set_profession(self, new_profession):
        self.profession = new_profession      
>>> man = Human()
>>> man.set_profession("Manager")
>>> print(man.profession)
Manager

Q-61: How to assign values for the Class attributes at runtime?

We can specify the values for the attributes at runtime. We need to add an init method and pass input to object constructor. See the following example demonstrating this.

>>> class Human:
    def __init__(self, profession):
        self.profession = profession
    def set_profession(self, new_profession):
        self.profession = new_profession

>>> man = Human("Manager")
>>> print(man.profession)
Manager

Q-62: What is Inheritance in Python programming?

Inheritance is an OOP mechanism which allows an object to access its parent class features. It carries forward the base class functionality to the child.

We do it intentionally to abstract away the similar code in different classes.

The common code rests with the base class, and the child class objects can access it via inheritance. Check out the below example.

class PC: # Base class
    processor = "Xeon" # Common attribute
    def set_processor(self, new_processor):
        processor = new_processor

class Desktop(PC): # Derived class
    os = "Mac OS High Sierra" # Personalized attribute
    ram = "32 GB"

class Laptop(PC): # Derived class
    os = "Windows 10 Pro 64" # Personalized attribute
    ram = "16 GB"

desk = Desktop()
print(desk.processor, desk.os, desk.ram)

lap = Laptop()
print(lap.processor, lap.os, lap.ram)

The output:

Xeon Mac OS High Sierra 32 GB
Xeon Windows 10 Pro 64 16 GB

Q-63: What is Composition in Python?

The composition is also a type of inheritance in Python. It intends to inherit from the base class but a little differently, i.e., by using an instance variable of the base class acting as a member of the derived class.

See the below diagram.

To demonstrate composition, we need to instantiate other objects in the class and then make use of those instances.

class PC: # Base class
    processor = "Xeon" # Common attribute
    def __init__(self, processor, ram):
        self.processor = processor
        self.ram = ram

    def set_processor(self, new_processor):
        processor = new_processor

    def get_PC(self):
        return "%s cpu & %s ram" % (self.processor, self.ram)

class Tablet():
    make = "Intel"
    def __init__(self, processor, ram, make):
        self.PC = PC(processor, ram) # Composition
        self.make = make

    def get_Tablet(self):
        return "Tablet with %s CPU & %s ram by %s" % (self.PC.processor, self.PC.ram, self.make)

if __name__ == "__main__":
    tab = Tablet("i7", "16 GB", "Intel")
    print(tab.get_Tablet())

The output is:

Tablet with i7 CPU & 16 GB ram by Intel

Q-64: What are Errors and Exceptions in Python programs?

Errors are coding issues in a program which may cause it to exit abnormally.

On the contrary, exceptions happen due to the occurrence of an external event which interrupts the normal flow of the program.

Q-65: How do you handle exceptions with Try/Except/Finally in Python?

Python lay down Try, Except, Finally constructs to handle errors as well as Exceptions. We enclose the unsafe code indented under the try block. And we can keep our fall-back code inside the except block. Any instructions intended for execution last should come under the finally block.

try:
    print("Executing code in the try block")
    print(exception)
except:
    print("Entering in the except block")
finally:
    print("Reached to the final block")

The output is:

Executing code in the try block
Entering in the except block
Reached to the final block

Q-66: How do you raise exceptions for a predefined condition in Python?

We can raise an exception based on some condition.

For example, if we want the user to enter only odd numbers, else will raise an exception.

# Example - Raise an exception
while True:
    try:
        value = int(input("Enter an odd number- "))
        if value%2 == 0:
            raise ValueError("Exited due to invalid input!!!")
        else:
            print("Value entered is : %s" % value)
    except ValueError as ex:
        print(ex)
        break

The output is:

Enter an odd number- 2
Exited due to invalid input!!!
Enter an odd number- 1
Value entered is : 1
Enter an odd number-

Q-67: What are Python Iterators?

Iterators in Python are array-like objects which allow moving on the next element. We use them in traversing a loop, for example, in a “for” loop.

Python library has a no. of iterators. For example, a list is also an iterator and we can start a for loop over it.

Q-68: What is the difference between an Iterator and Iterable?

The collection type like a list, tuple, dictionary, and set are all iterable objects whereas they are also iterable containers which return an iterator while traversing.

Here are some advanced-level Python interview questions.

Q-69: What are Python Generators?

A Generator is a kind of function which lets us specify a function that acts like an iterator and hence can get used in a “for” loop.

In a generator function, the yield keyword substitutes the return statement.

# Simple Python function
def fn():
    return "Simple Python function."

# Python Generator function
def generate():
    yield "Python Generator function."

print(next(generate()))

The output is:

Python Generator function.

Q-70: What are Closures in Python?

Python closures are function objects returned by another function. We use them to eliminate code redundancy.

In the example below, we’ve written a simple closure for multiplying numbers.

def multiply_number(num):
    def product(number):
        'product() here is a closure'
        return num * number
    return product

num_2 = multiply_number(2)
print(num_2(11))
print(num_2(24))

num_6 = multiply_number(6)
print(num_6(1))

The output is:

22
48
6

Q-71: What are Decorators in Python?

Python decorator gives us the ability to add new behavior to the given objects dynamically. In the example below, we’ve written a simple example to display a message pre and post the execution of a function.

def decorator_sample(func):
    def decorator_hook(*args, **kwargs):
        print("Before the function call")
        result = func(*args, **kwargs)
        print("After the function call")
        return result
    return decorator_hook

@decorator_sample
def product(x, y):
    "Function to multiply two numbers."
    return x * y

print(product(3, 3))

The output is:

Before the function call
After the function call
9

Q-72: How do you create a dictionary in Python?

Let’s take the example of building site statistics. For this, we first need to break up the key-value pairs using a colon(“:”). The keys should be of an immutable type, i.e., so we’ll use the data-types which don’t allow changes at runtime. We’ll choose from an int, string, or tuple.

However, we can take values of any kind. For distinguishing the data pairs, we can use a comma(“,”) and keep the whole stuff inside curly braces({…}).

>>> site_stats = {'site': 'tecbeamers.com', 'traffic': 10000, "type": "organic"}
>>> type(site_stats)

>>> print(site_stats)
{'type': 'organic', 'site': 'tecbeamers.com', 'traffic': 10000}

Q-73: How do you read from a dictionary in Python?

To fetch data from a dictionary, we can directly access using the keys. We can enclose a “key” using brackets […] after mentioning the variable name corresponding to the dictionary.

>>> site_stats = {'site': 'tecbeamers.com', 'traffic': 10000, "type": "organic"}
>>> print(site_stats["traffic"])

We can even call the get method to fetch the values from a dict. It also let us set a default value. If the key is missing, then the KeyError would occur.

>>> site_stats = {'site': 'tecbeamers.com', 'traffic': 10000, "type": "organic"}
>>> print(site_stats.get('site'))
tecbeamers.com

Q-74: How do you traverse through a dictionary object in Python?

We can use the “for” and “in” loop for traversing the dictionary object.

>>> site_stats = {'site': 'tecbeamers.com', 'traffic': 10000, "type": "organic"}
>>> for k, v in site_stats.items():
    print("The key is: %s" % k)
    print("The value is: %s" % v)
    print("++++++++++++++++++++++++")

The output is:

The key is: type
The value is: organic
++++++++++++++++++++++++
The key is: site
The value is: tecbeamers.com
++++++++++++++++++++++++
The key is: traffic
The value is: 10000
++++++++++++++++++++++++

Q-75: How do you add elements to a dictionary in Python?

We can add elements by modifying the dictionary with a fresh key and then set the value to it.

>>> # Setup a blank dictionary
>>> site_stats = {}
>>> site_stats['site'] = 'google.com'
>>> site_stats['traffic'] = 10000000000
>>> site_stats['type'] = 'Referral'
>>> print(site_stats)
{'type': 'Referral', 'site': 'google.com', 'traffic': 10000000000}

We can even join two dictionaries to get a bigger dictionary with the help of the update() method.

>>> site_stats['site'] = 'google.co.in'
>>> print(site_stats)
{'site': 'google.co.in'}
>>> site_stats_new = {'traffic': 1000000, "type": "social media"}
>>> site_stats.update(site_stats_new)
>>> print(site_stats)
{'type': 'social media', 'site': 'google.co.in', 'traffic': 1000000}

Q-76: How do you delete elements of a dictionary in Python?

We can delete a key in a dictionary by using the del() method.

>>> site_stats = {'site': 'tecbeamers.com', 'traffic': 10000, "type": "organic"}
>>> del site_stats["type"]
>>> print(site_stats)
{'site': 'google.co.in', 'traffic': 1000000}

Another method, we can use is the pop() function. It accepts the key as the parameter. Also, a second parameter, we can pass a default value if the key doesn’t exist.

>>> site_stats = {'site': 'tecbeamers.com', 'traffic': 10000, "type": "organic"}
>>> print(site_stats.pop("type", None))
organic
>>> print(site_stats)
{'site': 'tecbeamers.com', 'traffic': 10000}

Q-77: How do you check the presence of a key in a dictionary?

We can use Python’s “in” operator to test the presence of a key inside a dict object.

>>> site_stats = {'site': 'tecbeamers.com', 'traffic': 10000, "type": "organic"}
>>> 'site' in site_stats
True
>>> 'traffic' in site_stats
True
>>> "type" in site_stats
True

Earlier, Python also provided the has_key() method which got deprecated.

Q-78: What is the syntax for List comprehension in Python?

The signature for the list comprehension is as follows:

[ expression(var) for var in iterable ]

For example, the below code will return all the numbers from 10 to 20 and store them in a list.

>>> alist = [var for var in range(10, 20)]
>>> print(alist)

Q-79: What is the syntax for Dictionary comprehension in Python?

A dictionary has the same syntax as was for the list comprehension but the difference is that it uses curly braces:

{ aKey, itsValue for aKey in iterable }

For example, the below code will return all the numbers 10 to 20 as the keys and will store the respective squares of those numbers as the values.

>>> adict = {var:var**2 for var in range(10, 20)}
>>> print(adict)

Q-80: What is the syntax for Generator expression in Python?

The syntax for generator expression matches with the list comprehension, but the difference is that it uses parenthesis:

( expression(var) for var in iterable )

For example, the below code will create a generator object that generates the values from 10 to 20 upon using it.

>>> (var for var in range(10, 20))
 at 0x0000000003668728>
>>> list((var for var in range(10, 20)))

Now, see more Python interview questions for practice.

Q-81: How do you write a conditional expression in Python?

We can utilize the following single statement as a conditional expression. default_statment if Condition else another_statement

>>> no_of_days = 366
>>> is_leap_year = "Yes" if no_of_days == 366 else "No"
>>> print(is_leap_year)
Yes

Q-82: What do you know about the Python enumerate?

While using the iterators, sometimes we might have a use case to store the count of iterations. Python gets this task quite easy for us by giving a built-in method known as the enumerate().

The enumerate() function attaches a counter variable to an iterable and returns it as the “enumerated” object.

We can use this object directly in the “for” loops or transform it into a list of tuples by calling the list() method. It has the following signature:

enumerate(iterable, to_begin=0)
Arguments:
iterable: array type object which enables iteration
to_begin: the base index for the counter is to get started, its default value is 0
# Example - enumerate function 
alist = ["apple","mango", "orange"] 
astr = "banana"
  
# Let's set the enumerate objects 
list_obj = enumerate(alist) 
str_obj = enumerate(astr) 
  
print("list_obj type:", type(list_obj))
print("str_obj type:", type(str_obj))

print(list(enumerate(alist)) )  
# Move the starting index to two from zero
print(list(enumerate(astr, 2)))

The output is:

list_obj type: 
str_obj type: 
[(0, 'apple'), (1, 'mango'), (2, 'orange')]
[(2, 'b'), (3, 'a'), (4, 'n'), (5, 'a'), (6, 'n'), (7, 'a')]

Q-83: What is the use of globals() function in Python?

The globals() function in Python returns the current global symbol table as a dictionary object.

Python maintains a symbol table to keep all necessary information about a program. This info includes the names of variables, methods, and classes used by the program.

All the information in this table remains in the global scope of the program and Python allows us to retrieve it using the globals() method.

Signature: globals()

Arguments: None
# Example: globals() function 
x = 9
def fn(): 
    y = 3
    z = y + x
    # Calling the globals() method
    z = globals()['x'] = z
    return z
       
# Test Code     
ret = fn() 
print(ret)

The output is:

12

Q-84: Why do you use the zip() method in Python?

The zip method lets us map the corresponding index of multiple containers so that we can use them using as a single unit.

Signature: 
 zip(*iterators)
Arguments: 
 Python iterables or collections (e.g., list, string, etc.)
Returns: 
 A single iterator object with combined mapped values
# Example: zip() function
  
emp = [ "tom", "john", "jerry", "jake" ] 
age = [ 32, 28, 33, 44 ] 
dept = [ 'HR', 'Accounts', 'R&D', 'IT' ] 
  
# call zip() to map values 
out = zip(emp, age, dept)
  
# convert all values for printing them as set 
out = set(out) 
  
# Displaying the final values  
print ("The output of zip() is : ",end="") 
print (out)

The output is:

The output of zip() is : {('jerry', 33, 'R&D'), ('jake', 44, 'IT'), ('john', 28, 'Accounts'), ('tom', 32, 'HR')}

Q-85: What are Class or Static Variables in Python programming?

In Python, all the objects share common class or static variables.

But the instance or non-static variables are altogether different for different objects.

The programming languages like C++ and Java need to use the static keyword to make a variable as the class variable. However, Python has a unique way to declare a static variable.

All names initialized with a value in the class declaration becomes the class variables. And those which get assigned values in the class methods becomes the instance variables.

# Example 
class Test: 
    aclass = 'programming' # A class variable 
    def __init__(self, ainst): 
        self.ainst = ainst # An instance variable 
  
# Objects of CSStudent class 
test1 = Test(1) 
test2 = Test(2) 
  
print(test1.aclass)
print(test2.aclass)
print(test1.ainst)
print(test2.ainst)

# A class variable is also accessible using the class name
print(Test.aclass)

The output is:

programming
programming
1
2
programming

Let’s now answer some advanced-level Python interview questions.

Q-86: How does the ternary operator work in Python?

The ternary operator is an alternative for the conditional statements. It combines true or false values with a statement that you need to test.

The syntax would look like the one given below.

[onTrue] if [Condition] else [onFalse]

x, y = 35, 75
smaller = x if x < y else y
print(smaller)

Q-87: What does the “self” keyword do?

The self is a Python keyword which represents a variable that holds the instance of an object.

In almost, all the object-oriented languages, it is passed to the methods as a hidden parameter.

Q-88: What are the different methods to copy an object in Python?

There are two ways to copy objects in Python.

  • Python is a dynamic-typed language. It means that you don’t need to mention the data type of variables during their declaration. It allows to set variables like var1=101 and var2 =” You are an engineer.” without any error.
  • Python supports object orientated programming as you can define classes along with the composition and inheritance. It doesn’t use access specifiers like public or private).
  • Functions in Python are like first-class objects. It suggests you can assign them to variables, return from other methods and pass as arguments.
  • Developing using Python is quick but running it is often slower than compiled languages. Luckily, Python enables to include the “C” language extensions so you can optimize your scripts.
  • Python has several usages like web-based applications, test automation, data modeling, big data analytics and much more. Alternatively, you can utilize it as a “glue” layer to work with other languages.

Q-89: What is the purpose of docstrings in Python?

In Python, the docstring is what we call as the docstrings. It sets a process of recording Python functions, modules, and classes.

Q-90: Which Python function will you use to convert a number to a string?

For converting a number into a string, you can use the built-in function str(). If you want an octal or hexadecimal representation, use the inbuilt function oct() or hex().

Q-91: How do you debug a program in Python? Is it possible to step through the Python code?

Yes, we can use the Python debugger (pdb) to debug any Python program. And if we start a program using pdb, then it let us even step through the code.

Q-92: List down some of the PDB commands for debugging Python programs?

Here are a few PDB commands to start debugging Python code.

  • Python is a dynamic-typed language. It means that you don’t need to mention the data type of variables during their declaration. It allows to set variables like var1=101 and var2 =” You are an engineer.” without any error.
  • Python supports object orientated programming as you can define classes along with the composition and inheritance. It doesn’t use access specifiers like public or private).
  • Functions in Python are like first-class objects. It suggests you can assign them to variables, return from other methods and pass as arguments.
  • Developing using Python is quick but running it is often slower than compiled languages. Luckily, Python enables to include the “C” language extensions so you can optimize your scripts.
  • Python has several usages like web-based applications, test automation, data modeling, big data analytics and much more. Alternatively, you can utilize it as a “glue” layer to work with other languages.

Q-93: What is the command to debug a Python program?

The following command helps run a Python program in debug mode.

$ python -m pdb python-script.py

Q-94: How do you monitor the code flow of a program in Python?

In Python, we can use the sys module’s settrace() method to setup trace hooks and monitor the functions inside a program.

You need to define a trace callback method and pass it to the settrace() function. The callback should specify three arguments as shown below.

import sys

def trace_calls(frame, event, arg):
    # The 'call' event occurs before a function gets executed.
    if event != 'call':
        return
    # Next, inspect the frame data and print information.
    print 'Function name=%s, line num=%s' % (frame.f_code.co_name, frame.f_lineno)
    return

def demo2():
    print 'in demo2()'

def demo1():
    print 'in demo1()'
    demo2()

sys.settrace(trace_calls)
demo1()

Q-95: Why and when do you use generators in Python?

A generator in Python is a function which returns an iterable object. We can iterate on the generator object using the yield keyword. But we can only do that once because their values don’t persist in memory, they get the values on the fly.

Generators give us the ability to hold the execution of a function or a step as long as we want to keep it. However, here are a few examples where it is beneficial to use generators.

  • Python is a dynamic-typed language. It means that you don’t need to mention the data type of variables during their declaration. It allows to set variables like var1=101 and var2 =” You are an engineer.” without any error.
  • Python supports object orientated programming as you can define classes along with the composition and inheritance. It doesn’t use access specifiers like public or private).
  • Functions in Python are like first-class objects. It suggests you can assign them to variables, return from other methods and pass as arguments.
  • Developing using Python is quick but running it is often slower than compiled languages. Luckily, Python enables to include the “C” language extensions so you can optimize your scripts.
  • Python has several usages like web-based applications, test automation, data modeling, big data analytics and much more. Alternatively, you can utilize it as a “glue” layer to work with other languages.

Q-96: What does the yield keyword do in Python?

The yield keyword can turn any function into a generator. It works like a standard return keyword. But it’ll always return a generator object. Also, a method can have multiple calls to the yield keyword.

See the example below.

def testgen(index):
  weekdays = ['sun','mon','tue','wed','thu','fri','sat']
  yield weekdays[index]
  yield weekdays[index+1]

day = testgen(0)
print next(day), next(day)

#output: sun mon

Q-97: How to convert a list into other data types?

Sometimes, we don’t use lists as is. Instead, we have to convert them to other types.

Turn a list into a string.

We can use the ”.join() method which combines all elements into one and returns as a string.

weekdays = ['sun','mon','tue','wed','thu','fri','sat']
listAsString = ' '.join(weekdays)
print(listAsString)

#output: sun mon tue wed thu fri sat

Turn a list into a tuple.

Call Python’s tuple() function for converting a list into a tuple.

This function takes the list as its argument.

But remember, we can’t change the list after turning it into a tuple because it becomes immutable.

weekdays = ['sun','mon','tue','wed','thu','fri','sat']
listAsTuple = tuple(weekdays)
print(listAsTuple)

#output: ('sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat')

Turn a list into a set.

Converting a list to a set poses two side-effects.

  • Python is a dynamic-typed language. It means that you don’t need to mention the data type of variables during their declaration. It allows to set variables like var1=101 and var2 =” You are an engineer.” without any error.
  • Python supports object orientated programming as you can define classes along with the composition and inheritance. It doesn’t use access specifiers like public or private).
  • Functions in Python are like first-class objects. It suggests you can assign them to variables, return from other methods and pass as arguments.
  • Developing using Python is quick but running it is often slower than compiled languages. Luckily, Python enables to include the “C” language extensions so you can optimize your scripts.
  • Python has several usages like web-based applications, test automation, data modeling, big data analytics and much more. Alternatively, you can utilize it as a “glue” layer to work with other languages.

However, we can use the set() function to convert a list into a Set.

weekdays = ['sun','mon','tue','wed','thu','fri','sat','sun','tue']
listAsSet = set(weekdays)
print(listAsSet)

#output: set(['wed', 'sun', 'thu', 'tue', 'mon', 'fri', 'sat'])

Turn a list into a dictionary.

In a dictionary, each item represents a key-value pair. So converting a list isn’t as straightforward as it were for other data types.

However, we can achieve the conversion by breaking the list into a set of pairs and then call the zip() function to return them as tuples.

Passing the tuples into the dict() function would finally turn them into a dictionary.

weekdays = ['sun','mon','tue','wed','thu','fri']
listAsDict = dict(zip(weekdays[0::2], weekdays[1::2]))
print(listAsDict)

#output: {'sun': 'mon', 'thu': 'fri', 'tue': 'wed'}

Q-98: How do you count the occurrences of each item present in the list without explicitly mentioning them?

Unlike sets, lists can have items with the same values.

In Python, the list has a count() function which returns the occurrences of a particular item.

Count the occurrences of an individual item.

weekdays = ['sun','mon','tue','wed','thu','fri','sun','mon','mon']
print(weekdays.count('mon'))

#output: 3

Count the occurrences of each item in the list.

We’ll use the list comprehension along with the count() method. It’ll print the frequency of each of the items.

weekdays = ['sun','mon','tue','wed','thu','fri','sun','mon','mon']
print([[x,weekdays.count(x)] for x in set(weekdays)])

#output: [['wed', 1], ['sun', 2], ['thu', 1], ['tue', 1], ['mon', 3], ['fri', 1]]

Q-99: What is NumPy and how is it better than a list in Python?

NumPy is a Python package for scientific computing which can deal with large data sizes. It includes a powerful N-dimensional array object and a set of advanced functions.

Also, the NumPy arrays are superior to the built-in lists. There are a no. of reasons for this.

  • Python is a dynamic-typed language. It means that you don’t need to mention the data type of variables during their declaration. It allows to set variables like var1=101 and var2 =” You are an engineer.” without any error.
  • Python supports object orientated programming as you can define classes along with the composition and inheritance. It doesn’t use access specifiers like public or private).
  • Functions in Python are like first-class objects. It suggests you can assign them to variables, return from other methods and pass as arguments.
  • Developing using Python is quick but running it is often slower than compiled languages. Luckily, Python enables to include the “C” language extensions so you can optimize your scripts.
  • Python has several usages like web-based applications, test automation, data modeling, big data analytics and much more. Alternatively, you can utilize it as a “glue” layer to work with other languages.

Q-100: What are different ways to create an empty NumPy array in Python?

There are two methods which we can apply to create empty NumPy arrays.

The first method to create an empty array.

import numpy
numpy.array([])

The second method to create an empty array.

# Make an empty NumPy array
numpy.empty(shape=(0,0))

Summary – Essential Python Interview Questions

Please note that it is our commitment to bring fresh and useful content for the readers. And we are hopeful that all of you would have liked the latest set of Python interview questions.

However, if you want us to take upon a new subject, then please do let us know. We’ll certainly add it to our roadmap.

Next, we are keen to hear your feedback about the post and its content. Please steer your fingers to hit the comment box and give your genuine feedback. It’ll inspire us to write better and produce first-class content.

Thanks for reading ❤

PHP Interview Questions with Solutions: Prepare for PHP Interview

PHP Interview Questions with Solutions: Prepare for PHP Interview

Prepare for PHP Interviews. Set Variable With php.ini File. Logic & Output Behind PHP Code Segment. Class Concept, Error & Functions in PHP. Start PHP Now!

Description
In this course you will be introduced with some tricky questions that everyone face during their interview. In each solutions I have included some useful functions which we generally use at the time of development also. I have covered the following area in my course with Questions, Attractive Presentations and Practical Solutions that will help you to understand the logic behind PHP in a different way.

Some useful functions
PHP error types
Class concept
Access specifiers public, private and protected
Set variable with php.ini file
Operators introduced in PHP7
Logic and its output behind some code segment
Basic knowledge
PHP7, XAMPP Server, Notepad++
What will you learn
This course is build for the person who is facing interviews. Every question is well explained with the practical solution through videos. So that everybody can prepare themselves for the tricky questions asked during interviews
To continue:

75+ Python Interview Questions and Answers You Must Know in 2020

75+ Python Interview Questions and Answers You Must Know in 2020

In this post, you will get 75+ Python Interview Questions and Answers for Beginners

Python Interview Questions and Answers for Beginners

Starting with that is Python Interview Questions and Answers for Beginners. I have divided this post into different categories.

  • Common Python Interview Questions and Answers
  • Frequently asked Python Interview Questions and Answers
  • Basic Python Programming Interview Questions and Answers
  • Top Python Interview Questions and Answers
  • Technical Python Interview Questions and Answers
  • Python OOPS Interview Questions and Answers
  • Open-ended Python Interview Questions for Beginners
Common Python Interview Questions and Answers

The reason I am sharing these interview questions is that you can revise all your basic concepts. As you are a beginner, the interviewer will surely check your understanding of Python Fundamentals. Let’s start exploring the basic Python Interview Questions and Answers

Q.1. What are the key features of Python?

If it makes for an introductory language to programming, Python must mean something. These are its qualities:

  • Interpreted
  • Dynamically-typed
  • Object-oriented
  • Concise and simple
  • Free
  • Has a large community

Q.2. Differentiate between lists and tuples.

The major difference is that a list is mutable, but a tuple is immutable. Examples:

    >>> mylist=[1,3,3]
    >>> mylist[1]=2
    >>> mytuple=(1,3,3)
    >>> mytuple[1]=2

Traceback (most recent call last):

File “<pyshell#97>”, line 1, in

mytuple[1]=2

TypeError: ‘tuple’ object does not support item assignment

Q.3. Explain the ternary operator in Python.

Unlike C++, we don’t have ?: in Python, but we have this:

[on true] if [expression] else [on false]

If the expression is True, the statement under [on true] is executed. Else, that under [on false] is executed.

Below is how you would use it:

    >>> a,b=2,3
    >>> min=a if a<b else b
    >>> min

2

    >>> print("Hi") if a<b else print("Bye")

Hi

Q.4. What are negative indices?

Let’s take a list for this.

    >>> mylist=[0,1,2,3,4,5,6,7,8]

A negative index, unlike a positive one, begins searching from the right.

    >>> mylist[-3]

6

This also helps with slicing from the back:

    >>> mylist[-6:-1]

[3, 4, 5, 6, 7]

Q.5. Is Python case-sensitive?

A language is case-sensitive if it distinguishes between identifiers like myname and Myname. In other words, it cares about case- lowercase or uppercase. Let’s try this with Python.

    >>> myname='Ayushi'
    >>> Myname

Traceback (most recent call last):

File “<pyshell#3>”, line 1, in

Myname

NameError: name ‘Myname’ is not defined

As you can see, this raised a NameError. This means that Python is indeed case-sensitive.

Q.6. How long can an identifier be in Python?

In Python, an identifier can be of any length. Apart from that, there are certain rules we must follow to name one:

  • It can only begin with an underscore or a character from A-Z or a-z.
  • The rest of it can contain anything from the following: A-Z/a-z/_/0-9.
  • Python is case-sensitive, as we discussed in the previous question.
  • Keywords cannot be used as identifiers. Python has the following keywords:

Q.7. How would you convert a string into lowercase?

We use the lower() method for this.

    >>> 'AyuShi'.lower()

‘ayushi’

To convert it into uppercase, then, we use upper().

    >>> 'AyuShi'.upper()

‘AYUSHI’

Also, to check if a string is in all uppercase or all lowercase, we use the methods isupper() and islower().

    >>> 'AyuShi'.isupper()

False

    >>> 'AYUSHI'.isupper()

True

    >>> 'ayushi'.islower()

True

    >>> '@yu$hi'.islower()

True

    >>> '@YU$HI'.isupper()

True

So, characters like @ and $ will suffice for both cases

Also, istitle() will tell us if a string is in title case.

    >>> 'The Corpse Bride'.istitle()

True

Q.8. What is the pass statement in Python?

There may be times in our code when we haven’t decided what to do yet, but we must type something for it to be syntactically correct. In such a case, we use the pass statement.

    >>> def func(*args):
    pass
    >>>

Similarly, the break statement breaks out of a loop.

    >>> for i in range(7):
    if i==3: break
    print(i)

1

2

Finally, the continue statement skips to the next iteration.

    >>> for i in range(7):
    if i==3: continue
    print(i)

1

2

4

5

6

Hope you have read all the basic Python Interview Questions and Answers. Now. let’s move towards the second part of the blog – Most asked Python Interview Questions and Answers for freshers

Frequently Asked Python Interview Questions and Answers for Freshers

While solving or answering these questions, if you feel any difficulty, comment us. DataFlair is always ready to help you.

Q.9. Explain help() and dir() functions in Python.

The help() function displays the documentation string and help for its argument.

    >>> import copy
    >>> help(copy.copy)

Help on function copy in module copy:

copy(x)

Shallow copy operation on arbitrary Python objects.

See the module’s doc string for more info.

The dir() function displays all the members of an object(any kind).

    >>> dir(copy.copy)

[‘annotations’, ‘call’, ‘class’, ‘closure’, ‘code’, ‘defaults’, ‘delattr’, ‘dict’, ‘dir’, ‘doc’, ‘eq’, ‘format’, ‘ge’, ‘get’, ‘getattribute’, ‘globals’, ‘gt’, ‘hash’, ‘init’, ‘init_subclass’, ‘kwdefaults’, ‘le’, ‘lt’, ‘module’, ‘name’, ‘ne’, ‘new’, ‘qualname’, ‘reduce’, ‘reduce_ex’, ‘repr’, ‘setattr’, ‘sizeof’, ‘str’, ‘subclasshook’]

Q.10. How do you get a list of all the keys in a dictionary?

Be specific in these type of Python Interview Questions and Answers.

For this, we use the function keys().

    >>> mydict={'a':1,'b':2,'c':3,'e':5}
    >>> mydict.keys()

dict_keys([‘a’, ‘b’, ‘c’, ‘e’])

Q.11. What is slicing?

Slicing is a technique that allows us to retrieve only a part of a list, tuple, or string. For this, we use the slicing operator [].

    >>> (1,2,3,4,5)[2:4]

(3, 4)

    >>> [7,6,8,5,9][2:]

[8, 5, 9]

    >>> 'Hello'[:-1]

‘Hell’

Q.12. How would you declare a comment in Python?

Unlike languages like C++, Python does not have multiline comments. All it has is octothorpe (#). Anything following a hash is considered a comment, and the interpreter ignores it.

    >>> #line 1 of comment
    >>> #line 2 of comment

In fact, you can place a comment anywhere in your code. You can use it to explain your code.

Q.13. How will you check if all characters in a string are alphanumeric?

For this, we use the method isalnum().

Q.14. How will you capitalize the first letter of a string?

Simply using the method capitalize().

    >>> 'ayushi'.capitalize()

‘Ayushi’

    >>> type(str.capitalize)

<class ‘method_descriptor’>

However, it will let other characters be.

    >>> '@yushi'.capitalize()

‘@yushi’

    >>> 'Ayushi123'.isalnum()

True

    >>> 'Ayushi123!'.isalnum()

False

Other methods that we have include:

    >>> '123.3'.isdigit()

False

    >>> '123'.isnumeric()

True

    >>> 'ayushi'.islower()

True

    >>> 'Ayushi'.isupper()

False

    >>> 'Ayushi'.istitle()

True

    >>> ' '.isspace()

True

    >>> '123F'.isdecimal()

False

Q.15. We know Python is all the rage these days. But to be truly accepting of a great technology, you must know its pitfalls as well. Would you like to talk about this?

Of course. To be truly yourself, you must be accepting of your flaws. Only then can you move forward to work on them. Python has its flaws too:

  • Python’s interpreted nature imposes a speed penalty on it.
  • While Python is great for a lot of things, it is weak in mobile computing, and in browsers.
  • Being dynamically-typed, Python uses duck-typing (If it looks like a duck, it must be a duck). This can raise runtime errors.
  • Python has underdeveloped database access layers. This renders it a less-than-perfect choice for huge database applications.
  • And then, well, of course. Being easy makes it addictive. Once a Python-coder, always a Python coder.

Q.16. With Python, how do you find out which directory you are currently in?

To find this, we use the function/method getcwd(). We import it from the module os.

    >>> import os
    >>> os.getcwd()

‘C:\Users\lifei\AppData\Local\Programs\Python\Python36-32’

    >>> type(os.getcwd)

<class ‘builtin_function_or_method’>

We can also change the current working directory with chdir().

    >>> os.chdir('C:\\Users\\lifei\\Desktop')
    >>> os.getcwd()

‘C:\Users\lifei\Desktop’

Q.17. How do you insert an object at a given index in Python?

Let’s build a list first.

    >>> a=[1,2,4]

Now, we use the method insert. The first argument is the index at which to insert, the second is the value to insert.

    >>> a.insert(2,3)
    >>> a

[1, 2, 3, 4]

Q.18. And how do you reverse a list?

Using the reverse() method.

    >>> a.reverse()
    >>> a

[4, 3, 2, 1]

Q.19. What is the Python interpreter prompt?

This is the following sign for Python Interpreter:

>>>

If you have worked with the IDLE, you will see this prompt.

Q.20. How does a function return values?

A function uses the ‘return’ keyword to return a value. Take a look:

    >>> def add(a,b):
    return a+b

Q.21. How would you define a block in Python?

For any kind of statements, we possibly need to define a block of code under them. However, Python does not support curly braces. This means we must end such statements with colons and then indent the blocks under those with the same amount.

    >>> if 3>1:
    print("Hello")
    print("Goodbye")

Hello

Goodbye

Q.22. Why do we need break and continue in Python?

Both break and continue are statements that control flow in Python loops. break stops the current loop from executing further and transfers the control to the next block. continue jumps to the next iteration of the loop without exhausting it.

Q.23. Will the do-while loop work if you don’t end it with a semicolon?

Trick question! Python does not support an intrinsic do-while loop. Secondly, to terminate do-while loops is a necessity for languages like C++.

Q.24. In one line, show us how you’ll get the max alphabetical character from a string.

For this, we’ll simply use the max function.

    >>> max('flyiNg')

‘y’

The following are the ASCII values for all the letters of this string-

f- 102

l- 108

y- 121

i- 105

N- 78

g- 103

By this logic, try to explain the following line of code

    >>> max('fly{}iNg')

‘}’

(Bonus: } – 125)

Q.25. What is Python good for?

Python is a jack of many trades, check out Applications of Python to find out more.

Meanwhile, we’ll say we can use it for:

  • Web and Internet Development
  • Desktop GUI
  • Scientific and Numeric Applications
  • Software Development Applications
  • Applications in Education
  • Applications in Business
  • Database Access
  • Network Programming
  • Games, 3D Graphics
  • Other Python Applications

Q.26. Can you name ten built-in functions in Python and explain each in brief?

Ten Built-in Functions, you say? Okay, here you go.

complex()- Creates a complex number.

    >>> complex(3.5,4)

(3.5+4j)

eval()- Parses a string as an expression.

    >>> eval('print(max(22,22.0)-min(2,3))')

20

filter()- Filters in items for which the condition is true.

    >>> list(filter(lambda x:x%2==0,[1,2,0,False]))

[2, 0, False]

format()- Lets us format a string.

    >>> print("a={0} but b={1}".format(a,b))

a=2 but b=3

hash()- Returns the hash value of an object.

    >>> hash(3.7)

644245917

hex()- Converts an integer to a hexadecimal.

    >>> hex(14)

‘0xe’

input()- Reads and returns a line of string.

    >>> input('Enter a number')

Enter a number7

    ‘7’

len()- Returns the length of an object.

    >>> len('Ayushi')

6

locals()- Returns a dictionary of the current local symbol table.

    >>> locals()

{‘name’: ‘main’, ‘doc’: None, ‘package’: None, ‘loader’: <class ‘_frozen_importlib.BuiltinImporter’>, ‘spec’: None, ‘annotations’: {}, ‘builtins’: <module ‘builtins’ (built-in)>, ‘a’: 2, ‘b’: 3}

open()- Opens a file.

    >>> file=open('tabs.txt')

Q.27. What will the following code output?

    >>> word=’abcdefghij’
    >>> word[:3]+word[3:]

The output is ‘abcdefghij’. The first slice gives us ‘abc’, the next gives us ‘defghij’.

Q.28. How will you convert a list into a string?

We will use the join() method for this.

    >>> nums=['one','two','three','four','five','six','seven']
    >>> s=' '.join(nums)
    >>> s

‘one two three four five six seven’

Q.29. How will you remove a duplicate element from a list?

We can turn it into a set to do that.

    >>> list=[1,2,1,3,4,2]
    >>> set(list)

{1, 2, 3, 4}

Q.30. Can you explain the life cycle of a thread?

  • To create a thread, we create a class that we make override the run method of the thread class. Then, we instantiate it.
  • A thread that we just created is in the new state. When we make a call to start() on it, it forwards the threads for scheduling. These are in the ready state.
  • When execution begins, the thread is in the running state.
  • Calls to methods like sleep() and join() make a thread wait. Such a thread is in the waiting/blocked state.
  • When a thread is done waiting or executing, other waiting threads are sent for scheduling.
  • A running thread that is done executing terminates and is in the dead state.

Basic Python Program Interview Questions and Answers

Q.31. What is a dictionary in Python?

A python dictionary is something I have never seen in other languages like C++ or Java programming. It holds key-value pairs.

    >>> roots={25:5,16:4,9:3,4:2,1:1}
    >>> type(roots)

<class ‘dict’>

    >>> roots[9]

3

A dictionary is mutable, and we can also use a comprehension to create it.

    >>> roots={x**2😡 for x in range(5,0,-1)}
    >>> roots

{25: 5, 16: 4, 9: 3, 4: 2, 1: 1}

Q.32. Explain the //, %, and ** operators in Python.

The // operator performs floor division. It will return the integer part of the result on division.

    >>> 7//2

3

Normal division would return 3.5 here.

Similarly, ** performs exponentiation. a**b returns the value of a raised to the power b.

    >>> 2**10

1024

Finally, % is for modulus. This gives us the value left after the highest achievable division.

    >>> 13%7

6

    >>> 3.5%1.5

0.5

Q.33. What do you know about relational operators in Python.

Relational operators compare values.

Less than (<) If the value on the left is lesser, it returns True.

    >>> 'hi'<'Hi'

False
Greater than (>) If the value on the left is greater, it returns True.

    >>> 1.1+2.2>3.3

True

This is because of the flawed floating-point arithmetic in Python, due to hardware dependencies.

Less than or equal to (<=) If the value on the left is lesser than or equal to, it returns True.

    >>> 3.0<=3

True

Greater than or equal to (>=) If the value on the left is greater than or equal to, it returns True.

>>> True>=False

True

Equal to (==) If the two values are equal, it returns True.

    >>> {1,3,2,2}=={1,2,3}

True

Not equal to (!=) If the two values are unequal, it returns True.

    >>> True!=0.1

True

    >>> False!=0.1

True

You will surely face a question from Python Operators. There are chances that question may be in an indirect way. Prepare yourself for it with the best guide – Python Operators

Q.34. What are assignment operators in Python?

We can combine all arithmetic operators with the assignment symbol.

    >>> a=7
    >>> a+=1
    >>> a

8

    >>> a-=1
    >>> a

7

    >>> a*=2
    >>> a

14

    >>> a/=2
    >>> a

7.0

    >>> a**=2
    >>> a

49.0

    >>> a//=3
    >>> a

16.0

    >>> a%=4
    >>> a

0.0

Q.35. Explain logical operators in Python.

We have three logical operators- and, or, not.

>>> False and True

False

    >>> 7<7 or True

True

    >>> not 2==2

False

Q.36. What are membership operators?

With the operators ‘in’ and ‘not in’, we can confirm if a value is a member in another.

    >>> 'me' in 'disappointment'

True

    >>> 'us' not in 'disappointment'

True

Q.37. Explain identity operators in Python.

The operators ‘is’ and ‘is not’ tell us if two values have the same identity.

    >>> 10 is '10'

False

>>> True is not False

True

Q.38. Finally, tell us about bitwise operators in Python.

These operate on values bit by bit.

AND (&) This performs & on each bit pair.

>>> 0b110 & 0b010

2

OR (|) This performs | on each bit pair.

    >>> 3|2

3

XOR (^) This performs an exclusive-OR operation on each bit pair.

    >>> 3^2

1

Binary One’s Complement (~) This returns the one’s complement of a value.

    >>> ~2

-3

Binary Left-Shift (<<) This shifts the bits to the left by the specified amount.

    >>> 1<<2

4

Here, 001 was shifted to the left by two places to get 100, which is binary for 4.

Binary Right-Shift (>>)

    >>> 4>>2

1

Q.39. What data types does Python support?

Python provides us with five kinds of data types:

Numbers – Numbers use to hold numerical values.

    >>> a=7.0
    >>>

Strings – A string is a sequence of characters. We declare it using single or double quotes.

    >>> title="Ayushi's Book"

Lists – A list is an ordered collection of values, and we declare it using square brackets.

    >>> colors=['red','green','blue']
    >>> type(colors)

<class ‘list’>

Tuples – A tuple, like a list, is an ordered collection of values. The difference. However, is that a tuple is immutable. This means that we cannot change a value in it.

    >>> name=('Ayushi','Sharma')
    >>> name[0]='Avery'

Traceback (most recent call last):

File “<pyshell#129>”, line 1, in

name[0]=’Avery’

TypeError: ‘tuple’ object does not support item assignment

Dictionary – A dictionary is a data structure that holds key-value pairs. We declare it using curly braces.

    >>> squares={1:1,2:4,3:9,4:16,5:25}
    >>> type(squares)

<class ‘dict’>

    >>> type({})

<class ‘dict’>

We can also use a dictionary comprehension:

    >>> squares={x:x**2 for x in range(1,6)}
    >>> squares

{1: 1, 2: 4, 3: 9, 4: 16, 5: 25}

Q.40. What is a docstring?

A docstring is a documentation string that we use to explain what a construct does. We place it as the first thing under a function, class, or a method, to describe what it does. We declare a docstring using three sets of single or double-quotes.

    >>> def sayhi():
    """
    The function prints Hi
    """
    print("Hi")
    >>> sayhi()

Hi

To get a function’s docstring, we use its doc attribute.

>>> sayhi.__doc__

‘\n\tThis function prints Hi\n\t’

A docstring, unlike a comment, is retained at runtime.

Q.41. How would you convert a string into an int in Python?

If a string contains only numerical characters, you can convert it into an integer using the int() function.

    >>> int('227')

227

Let’s check the types:

    >>> type('227')

<class ‘str’>

    >>> type(int('227'))

<class ‘int’>

Q.42. How do you take input in Python?

For taking input from the user, we have the function input(). In Python 2, we had another function raw_input().

The input() function takes, as an argument, the text to be displayed for the task:

    >>> a=input('Enter a number')

Enter a number7

But if you have paid attention, you know that it takes input in the form of a string.

    >>> type(a)

<class ‘str’>

Multiplying this by 2 gives us this:

    >>> a*=2
    >>> a

’77’

So, what if we need to work on an integer instead?

We use the int() function for this.

    >>> a=int(input('Enter a number'))

Enter a number7

Now when we multiply it by 2, we get this:

    >>> a*=2
    >>> a

14

Q.43. What is a function?

When we want to execute a sequence of statements, we can give it a name. Let’s define a function to take two numbers and return the greater number.

    >>> def greater(a,b):
    return a is a>b else b
    >>> greater(3,3.5)

3.5

Q.44. What is recursion?

When a function makes a call to itself, it is termed recursion. But then, in order for it to avoid forming an infinite loop, we must have a base condition.

Let’s take an example.

    >>> def facto(n):
    if n==1: return 1
    return n*facto(n-1)
    >>> facto(4)

24

Q.45. What does the function zip() do?

One of the less common functions with beginners, zip() returns an iterator of tuples.

    >>> list(zip(['a','b','c'],[1,2,3]))

[(‘a’, 1), (‘b’, 2), (‘c’, 3)]

Here, it pairs items from the two lists and creates tuples with those. But it doesn’t have to be lists.

    >>> list(zip(('a','b','c'),(1,2,3)))

[(‘a’, 1), (‘b’, 2), (‘c’, 3)]

Q.46. How do you calculate the length of a string?

This is simple. We call the function len() on the string we want to calculate the length of.

    >>> len('Ayushi Sharma')

13

Q.47. Explain Python List Comprehension.

The list comprehension in python is a way to declare a list in one line of code. Let’s take a look at one such example.

    >>> [i for i in range(1,11,2)]

[1, 3, 5, 7, 9]

    >>> [i*2 for i in range(1,11,2)]

[2, 6, 10, 14, 18]

Q.48. How do you get all values from a Python dictionary?

We saw previously, to get all keys from a dictionary, we make a call to the keys() method. Similarly, for values, we use the method values().

    >>> 'd' in {'a':1,'b':2,'c':3,'d':4}.values()

False

    >>> 4 in {'a':1,'b':2,'c':3,'d':4}.values()

True

Q.49. What if you want to toggle case for a Python string?

We have the swapcase() method from the str class to do just that.

    >>> 'AyuShi'.swapcase()

‘aYUsHI’

Let’s apply some concepts now, shall we? Questions 50 through 52 assume the string ‘I love Python’. You need to do the needful.

Q.50. Write code to print only upto the letter t.

    >>> i=0
    >>> while s[i]!='t':
    print(s[i],end=’’)
    i+=1

I love Py

Q.51. Write code to print everything in the string except the spaces.

    >>> for i in s:
    if i==' ': continue
    print(i,end='')

IlovePython

Q.52. Now, print this string five times in a row.

    >>> for i in range(6):
    print(s)

I love Python

I love Python

I love Python

I love Python

I love Python

I love Python

Okay, moving on to more domains to conquer.

Q.53. What is the purpose of bytes() in Python?

bytes() is a built-in function in Python that returns an immutable bytes object. Let’s take an example.

    >>> bytes([2,4,8])

b’\x02\x04\x08′

    >>> bytes(5)

b’\x00\x00\x00\x00\x00′

    >>> bytes('world','utf-8')

b’world’

Q.54. What is a control flow statement?

A Python program usually starts to execute from the first line. From there, it moves through each statement just once and as soon as it’s done with the last statement, it transactions the program. However, sometimes, we may want to take a more twisted path through the code. Control flow statements let us disturb the normal execution flow of a program and bend it to our will.

Q.55. Create a new list to convert the following list of number strings to a list of numbers.

nums=[‘22’,’68’,’110’,’89’,’31’,’12’]

We will use the int() function with a list comprehension to convert these strings into integers and put them in a list.

    >>> [int(i) for i in nums]

[22, 68, 110, 89, 31, 12]

Q.56. Given the first and last names of all employees in your firm, what data type will you use to store it?

I can use a dictionary to store that. It would be something like this-

{‘first_name’:’Ayushi’,’second_name’:’Sharma’

Top Python Interview Questions and Answers

Q.57. How would you work with numbers other than those in the decimal number system?

With Python, it is possible to type numbers in binary, octal, and hexadecimal.

Binary numbers are made of 0 and 1. To type in binary, we use the prefix 0b or 0B.

    >>> int(0b1010)

10

To convert a number into its binary form, we use bin().

    >>> bin(0xf)

‘0b1111’

Octal numbers may have digits from 0 to 7. We use the prefix 0o or 0O.

    >>> oct(8)

‘0o10’

Hexadecimal numbers may have digits from 0 to 15. We use the prefix 0x or 0X.

    >>> hex(16)

‘0x10’

    >>> hex(15)

‘0xf’

DataFlair’s latest article on Python Numbers with Examples

Q.58. What does the following code output?

    >>> def extendList(val, list=[]):
    list.append(val)
    return list
    >>> list1 = extendList(10)
    >>> list2 = extendList(123,[])
    >>> list3 = extendList('a')
    >>> list1,list2,list3

([10, ‘a’], [123], [10, ‘a’])

You’d expect the output to be something like this:

([10],[123],[‘a’])

Well, this is because the list argument does not initialize to its default value ([]) every time we make a call to the function. Once we define the function, it creates a new list. Then, whenever we call it again without a list argument, it uses the same list. This is because it calculates the expressions in the default arguments when we define the function, not when we call it.

Q.59. How many arguments can the range() function take?

The range() function in Python can take up to 3 arguments. Let’s see this one by one.

a. One argument

When we pass only one argument, it takes it as the stop value. Here, the start value is 0, and the step value is +1.

    >>> list(range(5))

[0, 1, 2, 3, 4]

    >>> list(range(-5))

[]

    >>> list(range(0))

[]

b. Two arguments

When we pass two arguments, the first one is the start value, and the second is the stop value.

    >>> list(range(2,7))

[2, 3, 4, 5, 6]

    >>> list(range(7,2))

[]

    >>> list(range(-3,4))

[-3, -2, -1, 0, 1, 2, 3]

c. Three arguments

Here, the first argument is the start value, the second is the stop value, and the third is the step value.

    >>> list(range(2,9,2))

[2, 4, 6, 8]

    >>> list(range(9,2,-1))

[9, 8, 7, 6, 5, 4, 3]

Q.60. What is PEP 8?

PEP 8 is a coding convention that lets us write more readable code. In other words, it is a set of recommendations.

Q.61. How is Python different from Java?

Following is the comparison of Python vs Java

  • Java is faster than Python
  • Python mandates indentation. Java needs braces.
  • Python is dynamically-typed; Java is statically typed.
  • Python is simple and concise; Java is verbose
  • Python is interpreted
  • Java is platform-independent
  • Java has stronger database-access with JDBC

Q.62. What is the best code you can write to swap two numbers?

I can perform the swapping in one statement.

>>> a,b=b,a

Here’s the entire code, though

    >>> a,b=2,3
    >>> a,b=b,a
    >>> a,b

(3, 2)

Q.63. How can you declare multiple assignments in one statement?

This is one of the most asked interview questions for Python freshers –

There are two ways to do this:

**First – **

    >>> a,b,c=3,4,5 #This assigns 3, 4, and 5 to a, b, and c respectively

**Second – **

    >>> a=b=c=3 #This assigns 3 to a, b, and c

Q.64. If you are ever stuck in an infinite loop, how will you break out of it?

For this, we press Ctrl+C. This interrupts the execution. Let’s create an infinite loop to demonstrate this.

    >>> def counterfunc(n):
    while(n==7):print(n)
    >>> counterfunc(7)

7

7

7

7

7

7

7

7

7

7

7

7

7

7

7

7

7

Traceback (most recent call last):

File “<pyshell#332>”, line 1, in

counterfunc(7)

File “<pyshell#331>”, line 2, in counterfunc

while(n==7):print(n)

KeyboardInterrupt

Technical Python Interview Questions and Answers

Q.65. How do we execute Python?

Python files first compile to bytecode. Then, the host executes them.

Q.66. Explain Python’s parameter-passing mechanism.

To pass its parameters to a function, Python uses pass-by-reference. If you change a parameter within a function, the change reflects in the calling function. This is its default behavior. However, when we pass literal arguments like strings, numbers, or tuples, they pass by value. This is because they are immutable.

Q.67. What is the with statement in Python?

Using the with statement, we open files, process data in files, and even close them without having to make a call to the close() method. This makes exception-handling simpler with the cleanup activities. Here’s a demonstration-

    >>> with open('data.txt') as data:
    #processing statements

Q.68. How is a .pyc file different from a .py file?

While both files hold bytecode, .pyc is the compiled version of a Python file. It has platform-independent bytecode. Hence, we can execute it on any platform that supports the .pyc format. Python automatically generates it to improve performance(in terms of load time, not speed).

Python OOPS Interview Questions and Answers

Q.69. What makes Python object-oriented?

Again the frequently asked Python Interview Question

Python is object-oriented because it follows the Object-Oriented programming paradigm. This is a paradigm that revolves around classes and their instances (objects). With this kind of programming, we have the following features:

  • Encapsulation
  • Abstraction
  • Inheritance
  • Polymorphism
  • Data hiding

Q.70. How many types of objects does Python support?

Objects in Python are mutable and immutable. Let’s talk about these.

Immutable objects- Those which do not let us modify their contents. Examples of these will be tuples, booleans, strings, integers, floats, and complexes. Iterations on such objects are faster.

    >>> tuple=(1,2,4)
    >>> tuple

(1, 2, 4)

    >>> 2+4j

(2+4j)

Mutable objects – Those that let you modify their contents. Examples of these are lists, sets, and dicts. Iterations on such objects are slower.

    >>> [2,4,9]

[2, 4, 9]

    >>> dict1={1:1,2:2}
    >>> dict1

{1: 1, 2: 2}

While two equal immutable objects’ reference variables share the same address, it is possible to create two mutable objects with the same content.

Open-ended Python Interview Questions

Q.71 Why do you want to work for this company?

Q.72 Where do you see yourself in 10 years?

Q.73 What will you bring to the table if we hire you?

Q.74 Tell me about your best personal project. What challenges did you face, and how did it change the way you work?

Q.75 Would you have a problem with menial tasks?

Q.76 What makes you like Python over other languages? (The most commonly asked Python interview questions)