Python

Top 40 Python Interview Questions & Answers

1. What is Python? What are the benefits of using Python?

Python is a programming language with objects, modules, threads, exceptions and automatic memory management. The benefits of pythons are that it is simple and easy, portable, extensible, build-in data structure and it is an open source.

2. What is PEP 8?

PEP 8 is a coding convention, a set of recommendation, about how to write your Python code more readable.

3. How Python is interpreted?

Python language is an interpreted language. Python program runs directly from the source code. It converts the source code that is written by the programmer into an intermediate language, which is again translated into machine language that has to be executed.

4. What is pickling and unpickling?

Pickle module accepts any Python object and converts it into a string representation and dumps it into a file by using dump function, this process is called pickling. While the process of retrieving original Python objects from the stored string representation is called unpickling.

5. How memory is managed in Python?

Python memory is managed by Python private heap space. All Python objects and data structures are located in a private heap. The programmer does not have an access to this private heap and interpreter takes care of this Python private heap.

The allocation of Python heap space for Python objects is done by Python memory manager. The core API gives access to some tools for the programmer to code.

Python also have an inbuilt garbage collector, which recycle all the unused memory and frees the memory and makes it available to the heap space.


6. What are Python decorators?

A Python decorator is a specific change that we make in Python syntax to alter functions easily.

7. What are the tools that help to find bugs or perform static analysis?

PyChecker is a static analysis tool that detects the bugs in Python source code and warns about the style and complexity of the bug. Pylint is another tool that verifies whether the module meets the coding standard.

8. What is the difference between list and tuple?

The difference between list and tuple is that list is mutable while tuple is not. Tuple can be hashed for e.g as a key for dictionaries.

9. How are arguments passed by value or by reference?

Everything in Python is an object and all variables hold references to the objects. The references values are according to the functions; as a result you cannot change the value of the references. However, you can change the objects if it is mutable.

10. What is Dict and List comprehensions are?

They are syntax constructions to ease the creation of a Dictionary or List based on existing iterable.


11. What is lambda in Python?

It is a single expression anonymous function often used as inline function.

12. What is namespace in Python?

In Python, every name introduced has a place where it lives and can be hooked for. This is known as namespace. It is like a box where a variable name is mapped to the object placed.

Whenever the variable is searched out, this box will be searched, to get corresponding object.

13. What are the built-in type does python provides?

There are mutable and Immutable types of Pythons built in types. Mutable built-in types
  • List
  • Sets
  • Dictionaries

Immutable built-in types

  • Strings
  • Tuples
  • Numbers

14. Why lambda forms in python does not have statements?

A lambda form in python does not have statements as it is used to make new function object and then return them at runtime.


15. In Python what are iterators?

In Python, iterators are used to iterate a group of elements, containers like list.

16. In Python what is slicing?

A mechanism to select a range of items from sequence types like list, tuple, strings etc. is known as slicing.

17. What is pass in Python?

Pass means, no-operation Python statement, or in other words it is a place holder in compound statement, where there should be a blank left and nothing has to be written there.

18. What is unittest in Python?

A unit testing framework in Python is known as unittest. It supports sharing of setups, automation testing, shutdown code for tests, aggregation of tests into collections etc.

19. What are generators in Python?

The way of implementing iterators are known as generators. It is a normal function except that it yields expression in the function.

20. How can you copy an object in Python?

To copy an object in Python, you can try copy.copy () or copy.deepcopy() for the general case. You cannot copy all objects but most of them.

21. What is docstring in Python?

A Python documentation string is known as docstring, it is a way of documenting Python functions, modules and classes.


22. What is negative index in Python?

Python sequences can be index in positive and negative numbers. For positive index, 0 is the first index, 1 is the second index and so forth. For negative index, (-1) is the last index and (-2) is the second last index and so forth.


23. Explain how to delete a file in Python?

By using a command os.remove (filename) or os.unlink(filename)

24. Explain how can you generate random numbers in Python?

To generate random numbers in Python, you need to import command as import random random.random()

This returns a random floating point number in the range [0,1)

25. What is the difference between Xrange and range?

Xrange returns the xrange object while range returns the list, and uses the same memory and no matter what the range size is.

26. How can you share global variables across modules?

To share global variables across modules within a single program, create a special module. Import the config module in all modules of your application. The module will be available as a global variable across modules.

27. What is module and package in Python?

In Python, module is the way to structure program. Each Python program file is a module, which imports other modules like objects and attributes.The folder of Python program is a package of modules. A package can have modules or subfolders.

28. Explain how can you make a Python Script executable on Unix?

To make a Python Script executable on Unix, you need to do two things,
Script file's mode must be executable and the first line must begin with # ( #!/usr/local/bin/python)

29. How you can convert a number to a string?

In order to convert a number into a string, use the inbuilt function str(). If you want a octal or hexadecimal representation, use the inbuilt function oct() or hex().

30. Mention what are the rules for local and global variables in Python?

Local variables: If a variable is assigned a new value anywhere within the function's body, it's assumed to be local.

Global variables: Those variables that are only referenced inside a function are implicitly global.

31. Explain how can you access a module written in Python from C?

You can access a module written in Python from C by following method,
Module = =PyImport_ImportModule("");

32. Mention the use of // operator in Python?

It is a Floor Divisionoperator , which is used for dividing two operands with the result as quotient showing only digits before the decimal point. For instance, 10//5 = 2 and 10.0//5.0 = 2.0.

33. Mention five benefits of using Python?

  • Python comprises of a huge standard library for most Internet platforms like Email,
  • HTML, etc.
  • Python does not require explicit memory management as the interpreter itself allocates the memory to new variables and free them automatically
  • Provide easy readability due to use of square brackets
  • Easy-to-learn for beginners
  • Having the built-in data types saves programming time and effort from declaring variables

34. Explain what is Flask & its benefits?

Flask is a web micro framework for Python based on “Werkzeug, Jinja 2 and good intentions” BSD licensed. Werkzeug and jingja are two of its dependencies.
Flask is part of the micro-framework. Which means it will have little to no dependencies on external libraries. It makes the framework light while there is little dependency to update and less security bugs.

35. Mention the use of the split function in Python?

The use of the split function in Python is that it breaks a string into shorter strings using the defined separator. It gives a list of all words present in the string.

36. Mention what is the difference between Django, Pyramid, and Flask?

  • Flask is a “microframework” primarily build for a small application with simpler requirements. In flask, you have to use external libraries. Flask is ready to use.
  • Pyramid are build for larger applications. It provides flexibility and lets the developer use the right tools for their project. The developer can choose the database, URL structure, templating style and more. Pyramid is heavy configurable.
  • Like Pyramid, Django can also used for larger applications. It includes an ORM.

37. Explain what is the common way for the Flask script to work?

The common way for the flask script to work is Either it should be the import path for your application Or the path to a Python file
 

38. Explain how you can access sessions in Flask?

A session basically allows you to remember information from one request to another. In a flask, it uses a signed cookie so the user can look at the session contents and modify. The user can modify the session if only it has the secret key Flask.secret_key.

39. Mention what is Flask-WTF and what are their features?

Flask-WTF offers simple integration with WTForms. Features include for Flask WTF are - 

  • Integration with wtforms
  • Secure form with csrf token
  • Global csrf protection
  • Internationalization integration
  • Recaptcha supporting
  • File upload that works with Flask Uploads

40. Is Flask an MVC model and if yes give an example showing MVC pattern for your application?

Basically, Flask is a minimalistic framework which behaves same as MVC framework. So MVC is a perfect fit for Flask, and the pattern for MVC we will consider for the following example.

Model: This represents the data and interacts with the database.

Code

```python
# models.py

From flask_sqlalchemy import SQLAlchemy

Db = SQLAlchemy()

Class User(db.Model):
    Id = db.Column(db.Integer, primary_key=True)
    Username = db.Column(db.String(80), unique=True, nullable=False)
    Email = db.Column(db.String(120), unique=True, nullable=False)

    Def __repr__(self):
        Return ‘<User %r>’ % self.username

    Def save_to_db(self):
        Db.session.add(self)
        Db.session.commit()
```

2. View : This represents the presentation layer of the application, defining routes and handling requests.

Code

```python
# views.py

From flask import Flask, request
From models import User, db

App = Flask(__name__)
App.config[‘SQLALCHEMY_DATABASE_URI’] = ‘sqlite:///example.db’
Db.init_app(app)

@app.route(‘/register’, methods=[‘POST’])
Def register():
    Username = request.form.get(‘username’)
    Email = request.form.get(‘email’)
    User = User(username=username, email=email)
    User.save_to_db()
    Return “User registered successfully!”

If __name__ == ‘__main__’:
    App.run(debug=True)
```

3. Controller: This contains the application logic and handles user input.

Code

```python
# controller.py
# Not needed in this simple example as the logic is handled within the view function.
```

In this example, the Flask routes (views) handle incoming HTTP requests and interact with the model to manipulate data. The model represents the data structure and provides methods to interact with the database. This separation of concerns adheres to the MVC pattern, making the application easier to maintain and understand.

41. What are the applications of Python?

Python is used in various software domains some application areas are given below. 

  • Web and Internet Development
  • Games 
  • Scientific and computational applications
  • Language development
  • Image processing and graphic design applications
  • Enterprise and business applications development
  • Operating systems
  • GUI based desktop applications 
 
Python provides various web frameworks to develop web applications. The popular python web frameworks are Django, Pyramid, Flask. 

Python's standard library supports for E-mail processing, FTP, IMAP, and other Internet protocols. 

Python's SciPy and NumPy helps in scientific and computational application development. 

Python's Tkinter library supports to create a desktop based GUI applications. 

42. Why Python?

Python is an interpreted, object-oriented, high-level programming language with dynamic semantics. o Python is compatible with different platforms like Windows, Mac, Linux, Raspberry Pi, etc. Python has a simple syntax as compared to other languages. 

Python allows a developer to write programs with fewer lines than some other programming languages. 

Python runs on an interpreter system, means that the code can be executed as soon as it is written. It helps to provide a prototype very quickly. 

Python can be described as a procedural way, an object-orientated way or a functional way. 

The Python interpreter and the extensive standard library are available in source or binary form without charge for all major platforms, and can be freely distributed. 

43. What is Python?

Python was created by Guido van Rossum, and released in 1991. 

It is a general-purpose computer programming language. It is a high-level, objectoriented language which can run equally on different platforms such as Windows, Linux, UNIX, and Macintosh. Its high-level built-in data structures, combined with dynamic typing and dynamic binding. It is widely used in data science, machine learning and artificial intelligence domain. 

It is easy to learn and require less code to develop the applications. 

It is widely used for: 

  • Web development (server-side). 
  • Software development.
  • Mathematics.
  • System scripting. 


44. What is PEP 8?

PEP 8 stands for Python Enhancement Proposal, it can be defined as a document that helps us to provide the guidelines on how to write the Python code. It is basically a set of rules that specify how to format Python code for maximum readability. It was written by Guido van Rossum, Barry Warsaw and Nick Coghlan in 2001. 

45. What are the advantages of Python?

Python is Interpreted language 

Interpreted: Python is an interpreted language. It does not require prior compilation of code and executes instructions directly. 

It is Free and open source 

Free and open source: It is an open-source project which is publicly available to reuse. It can be downloaded free of cost. 

It is Extensible 

Extensible: It is very flexible and extensible with any module. 

Object-oriented 

Object-oriented: Python allows to implement the Object-Oriented concepts to build application solution. 

It has Built-in data structure 

Built-in data structure: Tuple, List, and Dictionary are useful integrated data structures provided by the language. 

Readability 

High-Level Language

Cross-platform 

Portable: Python programs can run on cross platforms without affecting its performance. 


46. What do you mean by Python literals?

Literals can be defined as a data which is given in a variable or constant.

Python supports the following literals: 

String Literals 
String literals are formed by enclosing text in the single or double quotes. For example, string literals are string values. 
Example
# in single quotes   
single = 'JavaTpoint'   
# in double quotes   
double = "JavaTpoint"   
# multi-line String   
multi = '''''Java   
T   
point'''   
9.      
print(single)   
print(double)   
print(multi)   

Python supports three types of numeric literals integer, float and complex. 
Example
# Integer literal     
a = 10     
#Float Literal     
b = 12.3      
#Complex Literal      
x = 3.14j     
print(a)   
print(b)   
print(x) Output: 
10 
12.3 
3.14j 

Boolean Literals 
Boolean literals are used to denote Boolean values. It contains either True or False. 
Example
p = (1 == True)   
q = (1 == False)   
r = True + 3   
s = False + 7   
print("p is", p)   
print("q is", q)   
print("r:", r)   
print("s:", s)   

Special Literals
Python contains one special literal, that is, 'None'. This special literal is used for defining a null variable. If 'None' is compared with anything else other than a 'None', it will return false. 
Example
word = None   
print(word) Output: 
None 

47. What is Python's parameter passing mechanism?

There are two parameters passing mechanism in Python: 

  • Pass by references
  • Pass by value 

    By default, all the parameters (arguments) are passed "by reference" to the functions. Thus, if you change the value of the parameter within a function, the change is reflected in the calling function as well. It indicates the original variable. For example, if a variable is declared as a = 10, and passed to a function where it's value is modified to a = 20. Both the variables denote to the same value. 

    The pass by value is that whenever we pass the arguments to the function only values pass to the function, no reference passes to the function. It makes it immutable that means not changeable. Both variables hold the different values, and original value persists even after modifying in the function. 

    Python has a default argument concept which helps to call a method using an arbitrary number of arguments. 

    48. Explain Python Functions?

    A function is a section of the program or a block of code that is written once and can be executed whenever required in the program. A function is a block of self-contained statements which has a valid name, parameters list, and body. Functions make programming more functional and modular to perform modular tasks. Python provides several built-in functions to complete tasks and also allows a user to create new functions as well. 

    There are three types of functions: 

    Built-In Functions: copy(), len(), count() are the some built-in functions. 

    User-defined Functions: Functions which are defined by a user known as user-defined functions. 

    Anonymous Functions: These functions are also known as lambda functions because they are not declared with the standard def keyword. 

    Example: A general syntax of user defined function is given below. 

    def function_name(parameters list):     

    #--- statements---     

    return a_value     


    49. What is zip() function in Python?

    Python zip() function returns a zip object, which maps a similar index of multiple containers. It takes an iterable, convert into iterator and aggregates the elements based on iterables passed. It returns an iterator of tuples. 


    Signature 
    zip(iterator1, iterator2, iterator3 ...)     

    Parameters iterator1, iterator2, iterator3: These are iterator objects that are joined together. Return 

    It returns an iterator from two or more iterators. 

    Note: If the given lists are of different lengths, zip stops generating tuples when the first list ends. It means two lists are having 3, and 5 lengths will create a 3-tuple. 


    50. How to overload constructors or methods in Python?

    Python's constructor: _init__ () is the first method of a class. Whenever we try to instantiate an object __init__() is automatically invoked by python to initialize members of an object.

    We can't overload constructors or methods in Python. It shows an error if we try to overload. 

    Example
    class student:     
    def __init__(self, name):     
    self.name = name     
    def __init__(self, name, email):     
    self.name = name     
    self.email = email       
    # This line will generate an error     
    #st = student("rahul")     
    # This line will call the second constructor     
    st = student("rahul", "rahul@gmail.com")     
    print("Name: ", st.name)   
    print("Email id: ", st.email)   

    Output: 
    Name: rahul 
    Email id: rahul@gmail.com 

    51. What is the difference between remove() function and del statement?

    The user can use the remove() function to delete a specific object in the list. 

    Example

    list_1 = [ 3, 5, 7, 3, 9, 3 ]    

    print(list_1)   

    list_1.remove(3)    

    print("After removal: ", list_1)   

    Output

    [3, 5, 7, 3, 9, 3] 

    After removal: [5, 7, 3, 9, 3] 

    If you want to delete an object at a specific location (index) in the list, you can either use del or pop. 

    Example

    list_1 = [ 3, 5, 7, 3, 9, 3 ]    

    print(list_1)   

    del list_1[2]   

    print("After deleting: ", list_1)   

    Output

    [3, 5, 7, 3, 9, 3] 

    After deleting: [3, 5, 3, 9, 3] 

    Note: You don't need to import any extra module to use these functions for removing an element from the list. 

    We cannot use these methods with a tuple because the tuple is different from the list.

    52. What is swapcase() function in the Python?

    It is a string's function which converts all uppercase characters into lowercase and vice versa. It is used to alter the existing case of the string. This method creates a copy of the string which contains all the characters in the swap case. If the string is in lowercase, it generates a small case string and vice versa. It automatically ignores all the nonalphabetic characters. See an example below. 

    Example
    string = "IT IS IN LOWERCASE."   
    print(string.swapcase())   
    string = "it is in uppercase."   
    print(string.swapcase())

    Output
    it is in lowercase. IT IS IN UPPERCASE.  

    53. How to remove whitespaces from a string in Python?

    To remove the whitespaces and trailing spaces from the string, Python providies strip([str]) built-in function. This function returns a copy of the string after removing whitespaces if present. Otherwise returns original string. 

    Example

    string = " javatpoint "   

    string2 = " javatpoint "   

    string3 = " javatpoint"   

    print(string)   

    print(string2)   

    print(string3)   

    print("After stripping all have placed in a sequence:")   

    print(string.strip())   

    print(string2.strip())   

    print(string3.strip())   

    Output

    javatpoint  

        javatpoint javatpoint 

    After stripping all have placed in a sequence: Javatpoint javatpoint javatpoint 


     


    54. How to remove leading whitespaces from a string in the Python?

    To remove leading characters from a string, we can use lstrip() function. It is Python string function which takes an optional char type parameter. If a parameter is provided, it removes the character. Otherwise, it removes all the leading spaces from the string. 

    Example
    string = " javatpoint "    
    string2 = " javatpoint "   
    print(string)   
    print(string2)   
    print("After stripping all leading whitespaces:")   
    print(string.lstrip())   
    print(string2.lstrip())   

    Output
    javatpoint  
        javatpoint         
    After stripping all leading whitespaces: 
    javatpoint javatpoint

    55. Why do we use join() function in Python?

    The join() is defined as a string method which returns a string value. It is concatenated with the elements of an iterable. It provides a flexible way to concatenate the strings. 

    Example
    str = "Rohan"   
    str2 = "ab"   
    # Calling function     
    str2 = str.join(str2)     
    # Displaying result     
    print(str2)

    Output
    aRohanb

    56. What is the use of break statement?

    The break statement is used to terminate the execution of the current loop. Break always breaks the current execution and transfer control to outside the current block. If the block is in a loop, it exits from the loop, and if the break is in a nested loop, it exits from the innermost loop. 

    Example
    list_1 = ['X', 'Y', 'Z']   
    list_2 = [11, 22, 33]   
    for i in list_1:   
    for j in list_2:   
    print(i, j)   
    if i == 'Y' and j == 33:   
    print('BREAK')   
    break   
    else:   
    continue   
    break

    Output
    X 11 
    X 22 
    33 
    11 
    Y 22 
    Y 33 
    BREAK

    57. Give an example of shuffle() method?

    This method shuffles the given string or an array. It randomizes the items in the array. This method is present in the random module. So, we need to import it and then we can call the function. It shuffles elements each time when the function calls and produces different output. 

    Example

    # import the random module   

    import random   

    # declare a list   

    sample_list1 = ['Z', 'Y', 'X', 'W', 'V', 'U']   

    print("Original LIST1: ")   

    print(sample_list1)   

    # first shuffle    

    random.shuffle(sample_list1)   

    print("\nAfter the first shuffle of LIST1: ")   

    print(sample_list1)   

    # second shuffle   

    random.shuffle(sample_list1)   

    print("\nAfter the second shuffle of LIST1: ")   

    print(sample_list1)

    Output

    Original LIST1:  

    ['Z', 'Y', 'X', 'W', 'V', 'U'] 

    After the first shuffle of LIST1:  

    ['V', 'U', 'W', 'X', 'Y', 'Z']

    After the second shuffle of LIST1:  

    ['Z', 'Y', 'X', 'U', 'V', 'W']

    58. What is tuple in Python?

    A tuple is a built-in data collection type. It allows us to store values in a sequence. It is immutable, so no change is reflected in the original data. It uses () brackets rather than [] square brackets to create a tuple. We cannot remove any element but can find in the tuple. We can use indexing to get elements. It also allows traversing elements in reverse order by using negative indexing. Tuple supports various methods like max(), sum(), sorted(), Len() etc. 

    To create a tuple, we can declare it as below. 

    Example

    # Declaring tuple  

    tup = (2,4,6,8)   

    # Displaying value   

    print(tup)    

    # Displaying Single value   

    print(tup[2])

    Output

    (2, 4, 6, 8) 

    It is immutable. So updating tuple will lead to an error. 

    Example

    # Declaring tuple   

    tup = (2,4,6,8)   

    # Displaying value   

    print(tup)   

    # Displaying Single value   

    print(tup[2])   

    # Updating by assigning new value   

    tup[2]=22   

    # Displaying Single value   

    print(tup[2])   

    Output

    tup[2]=22  

    TypeError: 'tuple' object does not support item assignment (2, 4, 6, 8)

    59. What is an operator in Python?

    An operator is a particular symbol which is used on some values and produces an output as a result. An operator works on operands. Operands are numeric literals or variables which hold some values. Operators can be unary, binary or ternary. An operator which requires a single operand known as a unary operator, which require two operands known as a binary operator and which require three operands is called ternary operator. 
     
    Example
    # Unary Operator   
    A = 12   
    B = -(A)   
    print (B)   
    # Binary Operator   
    A = 12   
    B = 13   
    print (A + B)   
    print (B * A)   
    #Ternary Operator   
    A = 12   
    B = 13   
    min = A if A < B else B   
    print(min)

    Output
    # Unary Operator 
    -12 
    # Binary Operator 
    25 
    156 
    # Ternary Operator 
    12 

    The Python provides libraries/modules that enable you to manipulate text files and binary files on the file system. It helps to create files, update their contents, copy, and delete files. The libraries are os, os.path, and shutil. 

    Here, os and os.path - modules include a function for accessing the filesystem while shutil - module enables you to copy and delete the files.

    61. What are the different types of operators in Python?

    Python uses a rich set of operators to perform a variety of operations. Some individual operators like membership and identity operators are not so familiar but allow to perform operations. 

    • Arithmetic Operators
    • Relational Operators
    • Assignment Operators
    • Logical Operators
    • Membership Operators
    • Identity Operators
    • Bitwise Operators
    Arithmetic operators perform basic arithmetic operations.
    For example "+" is used to add and "?" is used for subtraction. 

    Example
    # Adding two values   
    print(12+23)   
    # Subtracting two values   
    print(12-23)   
    # Multiplying two values   
    print(12*23)   
    # Dividing two values   
    print(12/23)   

    Output
    35
    -11
    276
    0.52173

    Relational Operators are used to comparing the values. These operators test the conditions and then returns a boolean value either True or False. 

    Example
    a, b = 10, 12   
    print(a==b) # False   
    print(a<b) # True   
    print(a<=b) # True   
    print(a!=b) # True   

    Output:
    False
    True
    True
    True

    62. What are the different file processing modes supported by Python?

    Python provides four modes to open files. The read-only (r), write-only (w), read-write (rw) and append mode (a). 'r' is used to open a file in read-only mode, 'w' is used to open a file in write-only mode, 'rw' is used to open in reading and write mode, 'a' is used to open a file in append mode. If the mode is not specified, by default file opens in read-only mode. 

    Read-only mode (r): Open a file for reading. It is the default mode. 
    Write-only mode (w): Open a file for writing. If the file contains data, data would be lost. Other a new file is created. 
    Read-Write mode (rw): Open a file for reading, write mode. It means updating mode.
    Append mode (a): Open for writing, append to the end of the file, if the file exists.

    63. How to create a Unicode string in Python?

    In Python 3, the old Unicode type has replaced by "str" type, and the string is treated as Unicode by default. We can make a string in Unicode by using art.title.encode("utf8") function. 

    Example

    unicode_1 = ("\u0123", "\u2665", "\U0001f638", "\u265E", "\u265F", "\u2168")   

    print (unicode_1)   

    Output

    unicode_1: ('ģ', '♥', '😸', '♞', '♟', 'Ⅸ')

    64. Is Python interpreted language?

    Python is an interpreted language. The Python language program runs directly from the source code. It converts the source code into an intermediate language code, which is again translated into machine language that has to be executed. 
    Unlike Java or C, Python does not require compilation before execution.

    65. How is memory managed in Python?

    Memory is managed in Python in the following ways: 

    Memory management in python is managed by Python private heap space. All Python objects and data structures are located in a private heap. The programmer does not have access to this private heap. The python interpreter takes care of this instead.The allocation of heap space for Python objects is done by Python's memory manager. The core API gives access to some tools for the programmer to code. 

    Python also has an inbuilt garbage collector, which recycles all the unused memory and so that it can be made available to the heap space. 

    66. What is the Python decorator?

    Decorators are very powerful and a useful tool in Python that allows the programmers to add functionality to an existing code. This is also called metaprogramming because a part of the program tries to modify another part of the program at compile time. It allows the user to wrap another function to extend the behaviour of the wrapped function, without permanently modifying it. 

    Example
    def function_is_called():   
    def function_is_returned():   
    print("JavaTpoint")   
    return function_is_returned   
    new_1 = function_is_called()   
    # Outputs "JavaTpoint"   
    new_1()

    Output
    JavaTpoint

    Functions & Decorators
    A function is a block of code that performs a specific task whereas a decorator is a function that modifies other functions. 

    67. What are the rules for a local and global variable in Python?

    Global Variables

    Variables declared outside a function or in global space are called global variables. 

    If a variable is ever assigned a new value inside the function, the variable is implicitly local, and we need to declare it as 'global' explicitly. To make a variable globally, we need to declare it by using global keyword. 

    Global variables are accessible anywhere in the program, and any function can access and modify its value. 

    Example

    A = "JavaTpoint"   

    def my_function():   

    print(A)   

    my_function()

    Output

    JavaTpoint

    Local Variables 

    Any variable declared inside a function is known as a local variable. This variable is present in the local space and not in the global space. 

    If a variable is assigned a new value anywhere within the function's body, it's assumed to be a local. 

    Local variables are accessible within local body only. 

    Example

    def my_function2():   

    K = "JavaTpoint Local"   

    print(K)   

    my_function2()

    Output

    JavaTpoint Local

    68. What is a generator in Python?

    In Python, the generator is a way that specifies how to implement iterators. It is a normal function except that it yields expression in the function. It does not implements __itr__ and next() method and reduce other overheads as well. 

    If a function contains at least a yield statement, it becomes a generator. The yield keyword pauses the current execution by saving its states and then resume from the same when required. 

    69. What is the namespace in Python?

    The namespace is a fundamental idea to structure and organize the code that is more useful in large projects. However, it could be a bit difficult concept to grasp if you're new to programming. Hence, we tried to make namespaces just a little easier to understand. 

    A namespace is defined as a simple system to control the names in a program. It ensures that names are unique and won't lead to any conflict. 

    Also, Python implements namespaces in the form of dictionaries and maintains nameto-object mapping where names act as keys and the objects as values.

    70. What are iterators in Python?

    In Python, iterators are used to iterate a group of elements, containers like a list. Iterators are the collection of items, and it can be a list, tuple, or a dictionary. Python iterator implements __itr__ and next() method to iterate the stored elements. In Python, we generally use loops to iterate over the collections (list, tuple). 

    Iterators are objects which can be traversed though or iterated upon. 

    71. What is Pass in Python?

    Pass specifies a Python statement without operations. It is a placeholder in a compound statement. If we want to create an empty class or functions, the pass keyword helps to pass the control without error. 

    Example
    class Student:    
    pass # Passing class     
    class Student:     
    def info():   
    pass # Passing function 

    72. What is slicing in Python?

    Slicing is a mechanism used to select a range of items from sequence type like list, tuple, and string. It is beneficial and easy to get elements from a range by using slice way. It requires a : (colon) which separates the start and end index of the field. All the data collection types List or tuple allows us to use slicing to fetch elements. Although we can get elements by specifying an index, we get only single element whereas using slicing we can get a group of elements. 
     
    Example
    Q = "JavaTpoint, Python Interview Questions!"   
    print(Q[2:25])   

    Output
    vaTpoint, Python Interv 

    73. What is a dictionary in Python?

    The Python dictionary is a built-in data type. It defines a one-to-one relationship between keys and values. Dictionaries contain a pair of keys and their corresponding values. It stores elements in key and value pairs. The keys are unique whereas values can be duplicate. The key accesses the dictionary elements. 
    Keys index dictionaries. 

    Example
    The following example contains some keys Country Hero & Cartoon. Their corresponding values are India, Modi, and Rahul respectively. 
    dict = {'Country': 'India', 'Hero': 'Modi', 'Cartoon': 'Rahul'}   
    print ("Country: ", dict['Country'])     
    print ("Hero: ", dict['Hero'])   
    print ("Cartoon: ", dict['Cartoon'])

    Output
    Country: India Hero: Modi 
    Cartoon: Rahul 

    74. Which programming language is a good choice between Java and Python?

    Java and Python both are object-oriented programming languages. Let's compare both on some criteria given below: 


    CriteriaJavaPython
    Ease of use 
    GoodVery Good
    Coding Speed 
    AverageExcellent
    Data types 
    Static type Dynamic type 
    Data Science and Machine learning application
    AverageVery Good 



    75. What is a negative index in Python and why are they used?

    The sequences in Python are indexed and it consists of the positive as well as negative numbers. The numbers that are positive uses '0' that is uses as first index and '1' as the second index and the process go on like that. 

    The index for the negative number starts from '-1' that represents the last index in the sequence and '-2' as the penultimate index and the sequence carries forward like the positive number. 

    The negative index is used to remove any new-line spaces from the string and allow the string to except the last character that is given as S[:-1]. The negative index is also used to show the index to represent the string in correct order. 

    76. What is pickling and unpickling in Python?

    The Python pickle is defined as a module which accepts any Python object and converts it into a string representation. It dumps the Python object into a file using the dump function; this process is called Pickling. 

    The process of retrieving the original Python objects from the stored string representation is called as Unpickling. 

    77. Explain docstring in Python?

    The Python docstring is a string literal that occurs as the first statement in a module, function, class, or method definition. It provides a convenient way to associate the documentation. 

    String literals occurring immediately after a simple assignment at the top are called "attribute docstrings". 

    String literals occurring immediately after another docstring are called "additional docstrings". 

    Python uses triple quotes to create docstrings even though the string fits on one line. 

    Docstring phrase ends with a period (.) and can be multiple lines. It may consist of spaces and other special chars. 

    Example

    # One-line docstrings   

    def hello():   

    """A function to greet."""   

    return "hello" 

    78. What are the differences between Python 2.x and Python 3.x?

    Python 2.x is an older version of Python. Python 3.x is newer and latest version. Python 2.x is legacy now. Python 3.x is the present and future of this language. 

    The most visible difference between Python2 and Python3 is in print statement (function). In Python 2, it looks like print "Hello", and in Python 3, it is print ("Hello"). 

    String in Python2 is ASCII implicitly, and in Python3 it is Unicode. 

    The xrange() method has removed from Python 3 version. A new keyword as is introduced in Error handling. 

    79. What is the usage of help() and dir() function in Python?

    Help() and dir() both functions are accessible from the Python interpreter and used for viewing a consolidated dump of built-in functions. 

    Help() function: The help() function is used to display the documentation string and also facilitates us to see the help related to modules, keywords, and attributes. 

    Dir() function: The dir() function is used to display the defined symbols.

    80. What is the shortest method to open a text file and display its content?

    The shortest way to open a text file is by using "with" command in the following manner

    Example
    with open("FILE NAME", "r") as fp:   
    fileData = fp.read()     
    # To print the contents of the file      
    print(fileData)

    Output
    "The data of the file will be printed." 

    81. How Python does Compile-time and Run-time code checking?

    In Python, some amount of coding is done at compile time, but most of the checking such as type, name, etc. are postponed until code execution. Consequently, if the Python code references a user-defined function that does not exist, the code will compile successfully. The Python code will fail only with an exception when the code execution path does not exist.

    82. What is type conversion in Python?

    Type conversion refers to the conversion of one data type into another. 

    int() - converts any data type into integer type
    float() - converts any data type into float type
    ord() - converts characters into integer
    hex() - converts integers to hexadecimal
    oct() - converts integer to octal
    tuple() - This function is used to convert to a tuple
    set() - This function returns the type after converting to set.
    list() - This function is used to convert any data type to a list type
    dict() - This function is used to convert a tuple of order (key,value) into a dictionary
    str() - Used to convert integer into a string. 
    complex(real,imag) - This functionconverts real numbers to complex(real,imag) number. 

    83. What is the difference between Python Arrays and lists?

    Arrays and lists, in Python, have the same way of storing data. But, arrays can hold only a single data type elements whereas lists can hold any data type elements. 

    Example
    import array as arr   
    User_Array = arr.array('i', [1,2,3,4])   
    User_list = [1, 'abc', 1.20]   
    print (User_Array)   
    print (User_list) Output: 
    array('i', [1, 2, 3, 4]) 
    [1, 'abc', 1.2] 

    84. What is lambda function in Python?

    The anonymous function in python is a function that is defined without a name. The normal functions are defined using a keyword "def", whereas, the anonymous functions are defined using the lambda function. The anonymous functions are also called as lambda functions. 

    85. Give the output of this example: A[3] if A=[1,4,6,7,9,66,4,94]

    Since indexing starts from zero, an element present at 3rd index is 7. So, the output is 7. 

    86. What is the usage of enumerate () function in Python?

    The enumerate() function is used to iterate through the sequence and retrieve the index position and its corresponding value at the same time. 

    Example

    list_1 = ["A","B","C"]   

    s_1 = "Javatpoint"    

    # creating enumerate objects   

    object_1 = enumerate(list_1) 5. object_2 = enumerate(s_1)   

    print ("Return type:",type(object_1))   

    print (list(enumerate(list_1)))   

    print (list(enumerate(s_1)))

    Output

    Return type:  

    [(0, 'A'), (1, 'B'), (2, 'C')] 

    [(0, 'J'), (1, 'a'), (2, 'v'), (3, 'a'), (4, 't'), (5, 'p'), (6, 'o'), (7, 'i'), (8, 'n'), (9, 't')] 

    87. Why do lambda forms in Python not have the statements?

    Lambda forms in Python does not have the statement because it is used to make the new function object and return them in runtime. 

    88. How to send an email in Python Language?

    To send an email, Python provides smtplib and email modules. Import these modules into the created mail script and send mail by authenticating a user. 
    It has a method SMTP(smtp-server, port). It requires two parameters to establish SMTP connection. 
    A simple example to send an email is given below. 

    Example
    import smtplib     
    # Calling SMTP     
    s = smtplib.SMTP('smtp.gmail.com', 587)     
    # TLS for network security     
    s.starttls()     
    # User email Authentication     
    s.login("sender@email_id", "sender_email_id_password")     
    # Message to be sent     
    message = "Message_sender_need_to_send"     
    # Sending the mail     
    s.sendmail("sender@email_id ", "receiver@email_id", message)     

    89. What are functions in Python?

    A function is a block of code which is executed only when it is called. To define a Python function, the def keyword is used. 
    Example
    def New_func():   
    print ("Hi, Welcome to JavaTpoint")   
    New_func() #calling the function

    Output
    Hi, Welcome to JavaTpoint 

    90. What is self in Python?

    Self is an instance or an object of a class. In Python, this is explicitly included as the first parameter. However, this is not the case in Java where it's optional. It helps to differentiate between the methods and attributes of a class with local variables. 

    The self-variable in the init method refers to the newly created object while in other methods, it refers to the object whose method was called. 

    91. How can you generate random numbers in Python?

    Random module is the standard module that is used to generate a random number.

    The method is defined as: 
    • import random   
    • random.random   
    The statement random.random() method return the floating point number that is in the range of [0, 1). The function generates random float numbers. The methods that are used with the random class are the bound methods of the hidden instances. The instances of the Random can be done to show the multi-threading programs that creates a different instance of individual threads. The other random generators that are used in this are: 

    randrange(a, b): it chooses an integer and define the range in-between [a, b). It returns the elements by selecting it randomly from the range that is specified. It doesn't build a range object. 

    uniform(a, b): it chooses a floating point number that is defined in the range of [a,b).Iyt returns the floating point number 

    normalvariate(mean, sdev): it is used for the normal distribution where the mu is a mean and the sdev is a sigma that is used for standard deviation. 

    The Random class that is used and instantiated creates independent multiple random number generators. 

    92. What is __init__?

    The __init__ is a method or constructor in Python. This method is automatically called to allocate memory when a new object/ instance of a class is created. All classes have the __init__ method. 

    Example

    class Employee_1:   

    def __init__(self, name, age,salary):   

    self.name = name   

    self.age = age   

    self.salary = 20000   

    E_1 = Employee_1("pqr", 20, 25000)   

    # E1 is the instance of class Employee.   

    #__init__ allocates memory for E1.    

    print(E_1.name)   

    print(E_1.age)   

    print(E_1.salary) Output: 

    pqr 20 

    25000

    93. What are python modules? Name some commonly used built-in modules in Python?

    Python modules are files containing Python code. This code can either be functions classes or variables. A Python module is a .py file containing executable code. 

    Some of the commonly used built-in modules are: 
    • os
    • sys
    • math
    • random
    • data time
    • JSON 

    94. What is PYTHONPATH?

    PYTHONPATH is an environment variable which is used when a module is imported. Whenever a module is imported, PYTHONPATH is also looked up to check for the presence of the imported modules in various directories. The interpreter uses it to determine which module to load.

    95. What is the difference between range & xrange?

    For the most part, xrange and range are the exact same in terms of functionality. They both provide a way to generate a list of integers for you to use, however you please. The only difference is that range returns a Python list object and x range returns an xrange object. 

    This means that xrange doesn't actually generate a static list at run-time like range does. It creates the values as you need them with a special technique called yielding. This technique is used with a type of object known as generators. That means that if you have a really gigantic range you'd like to generate a list for, say one billion, xrange is the function to use. 

    This is especially true if you have a really memory sensitive system such as a cell phone that you are working with, as range will use as much memory as it can to create your array of integers, which can result in a Memory Error and crash your program. It's a memory hungry beast. 

    96. Explain the use of session in Django framework?

    Django provides a session that lets the user store and retrieve data on a per-site-visitor basis. Django abstracts the process of sending and receiving cookies, by placing a session ID cookie on the client side, and storing all the related data on the server side. 
     
    So, the data itself is not stored client side. This is good from a security perspective. 

    97. Mention what the Django templates consist of.

    The template is a simple text file. It can create any text-based format like XML, CSV, HTML, etc. A template contains variables that get replaced with values when the template is evaluated and tags (% tag %) that control the logic of the template. 

    98. What advantages do NumPy arrays offer over (nested) Python lists?

    Python's lists are efficient general-purpose containers. They support (fairly) efficient insertion, deletion, appending, and concatenation, and Python's list comprehensions make them easy to construct and manipulate. 

    They have certain limitations: they don't support "vectorized" operations like elementwise addition and multiplication, and the fact that they can contain objects of differing types mean that Python must store type information for every element, and must execute type dispatching code when operating on each element. 

    NumPy is not just more efficient; it is also more convenient. We get a lot of vector and matrix operations for free, which sometimes allow one to avoid unnecessary work. And they are also efficiently implemented. 

    NumPy array is faster and we get a lot built in with NumPy, FFTs, convolutions, fast searching, basic statistics, linear algebra, histograms, etc.

    99. is python compiled language or interpreted language?

    python is an interpreted language

    line

    Copyrights © 2024 letsupdateskills All rights reserved