1. What are the key features of Python?
Python is an interpreted language. That means that, unlike languages like C and its variants, Python does not need to be compiled before it is run. Other interpreted languages include PHP and Ruby.
Python is dynamically typed, this means that you don’t need to state the types of variables when you declare them or anything like that. You can do things like x=111 and then x=”I’m a string” without error
Python is well suited to object orientated programming in that it allows the definition of classes along with composition and inheritance. Python does not have access specifiers (like C++’s public, private), the justification for this point is given as “we are all adults here”
In Python, functions are first-class objects. This means that they can be assigned to variables, returned from other functions and passed into functions. Classes are also first class objects
Writing Python code is quick but running it is often slower than compiled languages. Fortunately，Python allows the inclusion of C based extensions so bottlenecks can be optimized away and often are. The numpy package is a good example of this, it’s really quite quick because a lot of the number crunching it does isn’t actually done by Python
2. What is dictionary in Python?
The built-in datatypes in Python is called dictionary. It defines one-to-one relationship between keys and values. Dictionaries contain pair of keys and their corresponding values. Dictionaries are indexed by keys.
3. How is Multithreading achieved in Python?
Python has a multi-threading package but if you want to multi-thread to speed your code up, then it’s usually not a good idea to use it.
Python has a construct called the Global Interpreter Lock (GIL). The GIL makes sure that only one of your ‘threads’ can execute at any one time. A thread acquires the GIL, does a little work, then passes the GIL onto the next thread.
This happens very quickly so to the human eye it may seem like your threads are executing in parallel, but they are really just taking turns using the same CPU core.
All this GIL passing adds overhead to execution. This means that if you want to make your code run faster then using the threading package often isn’t a good idea.
4. What does this mean: *args,kwargs? And why would we use it?
We use *args when we aren’t sure how many arguments are going to be passed to a function, or if we want to pass a stored list or tuple of arguments to a function. **kwargsis used when we don’t know how many keyword arguments will be passed to a function, or it can be used to pass the values of a dictionary as keyword arguments. The identifiers args and kwargs are a convention, you could also use *bob and **billy but that would not be wise. (Online Training Institute)
5. What are Python’s dictionaries?
Python’s dictionaries are kind of hash table type. They work like associative arrays or hashes found in Perl and consist of key-value pairs. A dictionary key can be almost any Python type, but are usually numbers or strings. Values, on the other hand, can be any arbitrary Python object.
6. How will you convert an integer to an unicode character in python?
Converts an integer to a Unicode character.
7. What is the difference between del() and remove() methods of list?
To remove a list element, you can use either the del statement if you know exactly which element(s) you are deleting or the remove() method if you do not know.
8. How Does Python Handle Memory Management?
Python uses private heaps to maintain its memory. So the heap holds all the Python objects and the data structures. This area is only accessible to the Python interpreter; programmers can’t use it.
And it’s the Python memory manager that handles the Private heap. It does the required allocation of the memory for Python objects.
Python employs a built-in garbage collector, which salvages all the unused memory and offloads it to the heap space. (python coding interview questions)
9. 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.
10. 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.
We can replace loops with generators for efficiently calculating results involving large data sets.
Generators are useful when we don’t want all the results and wish to hold back for some time.
Instead of using a callback function, we can replace it with a generator. We can write a loop inside the function doing the same thing as the callback and turns it into a generator. (Python Interview Questions and Answers – The Best 2019 Latest Top 51)
11. Name the File-related modules in Python?
Python provides libraries / modules with functions that enable you to manipulate text files and binary files on file system. Using them you can create files, update their contents, copy, and delete files. The libraries are : os, os.path, and shutil.
12. Is Python object oriented? what is object oriented programming?
Yes. Python is Object Oriented Programming language. OOP is the programming paradigm based on classes and instances of those classes called objects. The features of OOP are:
Encapsulation, Data Abstraction, Inheritance, Polymorphism.
13. Explain Inheritance in Python with an example?
Inheritance allows One class to gain all the members(say attributes and methods) of another class. Inheritance provides code reusability, makes it easier to create and maintain an application. The class from which we are inheriting is called super-class and the class that is inherited is called a derived / child class.
They are different types of inheritance supported by Python:
Single Inheritance – where a derived class acquires the members of a single super class.
Multi-level inheritance – a derived class d1 in inherited from base class base1, and d2 are inherited from base2.
Hierarchical inheritance – from one base class you can inherit any number of child classes
Multiple inheritance – a derived class is inherited from more than one base class.
14. What are negative indexes 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 goes 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 . The negative index is also used to show the index to represent the string in correct order.
15. How many kinds of sequences are supported by Python? What are they
Python supports 7 sequence types. They are str, list, tuple, unicode, byte array, xrange, and buffer. where xrange is deprecated in python 3.5.X.
16. Does Python supports interfaces like in Java?
Python does not provide interfaces like in Java. Abstract Base Class (ABC) and its feature are provided by the Python’s “abc” module. Abstract Base Class is a mechanism for specifying what methods must be implemented by its implementation subclasses. The use of ABC’c provides a sort of “understanding” about methods and their expected behaviour. This module was made available from Python 2.7 version onwards. (python coding interview questions)
17. What’s the Difference between a For Loop and a While Loop?
In Python, a loop iterates over popular data types (like dictionaries, lists, or strings) while the condition is true. This means that the program control will pass to the line immediately following the loop whenever the condition is false. In this scenario, it’s not a question of preference, but a question of what your data structures are.
In Python (and in almost any other programming language), For Loop is the most common type of loop. For Loop is often leveraged to iterate through the elements of an array.
For Loop can also be used to perform a fixed number of iterations and iterate by a given (positive or even negative) increment. It’s important to note that by default, the increment will always be one.
While Loop can be used in Python to perform an indefinite number of iterations as long as the condition remains true.
While (condition) do…
When using the While Loop, you have to explicitly specify a counter to keep track of how many times the loop was executed. However, While Loop can’t define its own variable. Instead, it has to be previously defined and will continue to exist even after you exit the loop.
When compared to For Loop, While Loop is inefficient because it’s much slower. This can be attributed to the fact that it checks the condition after each iteration. However, if you need to perform one or more conditional checks in a For Loop, you will want to consider using While Loop instead (as these checks won’t be required).
19. What is the lambda operator?
The lambda operator is used to create anonymous functions. It is mostly used in cases where one wishes to pass functions as parameters. or assign them to variable names. (Python Training Online)
20. Explain the use of break and continue in Python looping?
The break statement stops the execution of the current loop. and transfers control to the next block. The continue statement ends the current block’s execution and jumps to the next iteration of the loop.
21. How does the Python version numbering scheme work?
Python versions are numbered A.B.C or A.B.
A is the major version number. It is only incremented for major changes in the language.
B is the minor version number, incremented for less earth-shattering changes.
C is the micro-level. It is incremented for each bug fix release.
Not all releases are bug fix releases. In the run-up to a new major release, ‘A’ series of development releases are made denoted as alpha, beta, or release candidate.
Alphas are early releases in which interfaces aren’t finalized yet; it’s not unexpected to see an interface change between two alpha releases.
Betas are more stable, preserving existing interfaces but possibly adding new modules, and release candidates are frozen, making no changes except as needed to fix critical bugs.
Alpha, beta and release candidate versions have an additional suffix.
The suffix for an alpha version is “aN” for some small number N,
The suffix for a beta version is “bN” for some small number N,
And the suffix for a release candidate version is “cN” for some small number N.
In other words, all versions labeled 2.0aN precede the versions labeled 2.0bN, which precede versions labeled 2.0cN, and those precede 2.0.
You may also find version numbers with a “+” suffix, e.g. “2.2+”. These are unreleased versions, built directly from the subversion trunk. In practice, after a final minor release is made, the subversion trunk is incremented to the next minor version, which becomes the “a0” version, e.g. “2.4a0”. (python coding interview questions)
22. How do I send mail from a Python script?
Use the standard library module smtplib. Here’s a very simple interactive mail sender that uses it. This method will work on any host that supports an SMTP listener. (python coding interview questions)
23. What is a Tuple?
- Tuple Objects can be created by using parenthesis or by calling tuple function or by assigning multiple values to a single variable
- Tuple objects are immutable objects
- Incision order is preserved
- Duplicate elements are allowed
- Heterogeneous elements are allowed
- Tuple supports both positive and negative indexing
- The elements of the tuple can be mutable or immutable
24. What is Garbage Collection?
- The concept of removing unused or unreferenced objects from the memory location is known as a Garbage Collection.
- While executing the program, if garbage collection takes place then more memory space is available for the program and rest of the program execution becomes faster.
- Garbage collector is a predefined program, which removes the unused or unreferenced objects from the memory location
- Any object reference count becomes zero then we call that object as a unused or unreferenced object
- Then no.of reference variables which are pointing the object is known as a reference count of the object.
- While executing the python program if any object reference count becomes zero, then internally python interpreter calls the garbage collector and garbage collector will remove that object from memory location.
25. What is Hierarchical Inheritance?
The concept of inheriting the properties from one class into multiple classes separately is known as hierarchical inheritance.
26. How to pass optional or keyword parameters from one function to another in Python?
We can arrange arguments using the * and ** specifiers in the function’s parameter list.
27. What tools can be used to unit test your Python code?
The best and easiest way is to use ‘unittest’ python standard library to test units/classes. The features supported are very similar to the other unit testing tools such as JUnit, TestNG.
28. What is the best way to parse strings and find patterns in Python?
Python has built-in support to parse strings using Regular expression module. Import the module and use the functions to find a sub-string, replace a part of a string, etc. (python coding interview questions)
29. Which databases are supported by Python?
MySQL (Structured) and MongoDB (Unstructured) are the prominent databases that are supported natively in Python. Import the module and start using the functions to interact with the database.
30. What is the starting point of Python code execution?
As Python is an interpreter, it starts reading the code from the source file and starts executing them.
However, if you want to start from the main function, you should have the following special variable set in your source file as:
32. What is the use of Assertions in Python?
Assert statement is used to evaluate the expression attached. If the expression is false, then python raised AssertionError Exception.
33. What is the difference between shallow copy and deep copy?
Shallow copy is used when a new instance type gets created and it keeps values that are copied whereas deep copy stores values that are already copied.
A shallow copy has faster program execution whereas deep coy makes it slow.
34. What are the advantages of Python?
Depending on requirements for the availability of the application, the size of the user population and other factors you can decide how to divide the development environment from the production environment.
For certain applications, it is acceptable to combine the development server with the deployment server, as long as the end users understand that sometimes the application is not available.
Other applications may require two (development and production) or even three (development, test and production) servers.
In Application Express applications can be moved from environment to environment using an export and import facility for application definitions.
With one server available to run the database and Application Express, you can still separate the development version of an application from its production version by using two workspaces accessing separate schemas.
In this case one workspace will be used by developers and the other will be the workspace in which the application is deployed in production.
35. What is zip() function in Python?
The Python zip() function is used to transform multiple lists, i.e., list1, list2, list3 and many more into a single list of tuples. This method takes an iterable and returns a tuple of the iterable. If we don’t pass iterable, it returns an empty iterator.
36. What is the difference between remove() function and del statement?
The del statement is used to remove list, dictionary or a key. We need to pass an index which we want to delete. Del is a fast way to remove elements from the list.
The remove() method is used to remove elements from the list. It searches the element before deleting which makes it slower than del. Del and remove both are used to remove element but del has a performance edge over remove. (python coding interview questions)
37. Why do we use join() function in Python?
This method is used to concatenate a string with an iterable object. It returns a new string which is the concatenation of the strings in iterable. It throws an exception TypeError if iterable contains any non-string value.
38. Define the support for APEX that exists?
Application Express could be the best community for some to help deliver, develop & the use of APEX applications. The basic support is from APEX forum of Oracle Tech Network. We can find answers & tips related to development from in & out of Oracle.
39. 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.
40. Which are the file related libraries/modules in Python?
Python provides libraries/modules including functions that facilitate us to manipulate text files and binary files on the file system. By using these libraries, we can create files, update their contents, copy, and delete files.
These libraries are os, os.path, and the shutil.
os and os.path: os and os.path libraries include functions for accessing the filesystem.
shutil: This library is used to copy and delete the files.
41. 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.