Python Questions
5.34K subscribers
1 photo
7 links
Tasks for Beginners, Interview Questions, Regular expressions, simple coding problems, Quiz etc.

Useful Resources — »»» @python_resources_iGnani
Projects for Practice — »»» @python_projects_repository
Discussion Forum — »»» @python_programmers_club
Download Telegram
#interviewQuestions : 0004

Is Python a Scripting Language?

Python is capable of scripting, but it is more than that. It is considered as a general-purpose programming language.
#interviewQuestions : 0005

Is Python interpreted or compiled?

A common question: “Is Python interpreted or compiled?” Usually, the asker has a simple model of the world in mind, and as is typical, the world is more complicated.
In the simple model of the world, “compile” means to convert a program in a high-level language into a binary executable full of machine code (CPU instructions). When you compile a C program, this is what happens. The result is a file that your operating system can run for you.

In the simple definition of “interpreted”, executing a program means reading the source code a line at a time, and doing what it says.
Compiling is a more general idea: take a program in one language (or form), and convert it into another language or form.
In Python, the source code is compiled into a much simpler form called bytecode. These are instructions similar in spirit to CPU instructions, but instead of being executed by the CPU, they are executed by software called a virtual machine.

So, if you can explain all this, then you can say its both a compiled and interpreted language.

But, if you want to give a simple and short answer, then say it is a interpreted language.
#interviewQuestions : 0006

What is pep 8?

PEP 8, sometimes spelled PEP8 or PEP-8, is a document that provides guidelines and best practices on how to write Python code. It was written in 2001 by Guido van Rossum, Barry Warsaw, and Nick Coghlan. The primary focus of PEP 8 is to improve the readability and consistency of Python code.

PEP stands for Python Enhancement Proposal, and there are several of them. A PEP is a document that describes new features proposed for Python and documents aspects of Python, like design and style, for the community.
#interviewQuestions : 0007

Q: What is the output of the following statement? Explain Why?
Q: Explain // and how it works?
Q: Explain Floor Division?

16//-3
Output: -6

// (Floor division)
It gives the floor value of the quotient produced by dividing the two operands. In other words, the floor division // rounds the result down to the nearest whole number.

print(x/y)
print(x//y)

Notice that we are using the same values for x and y operands. But the result is quite different between / and //.

When the result of floor division (//) is positive, it is as though the fractional portion is truncated off, leaving only the integer portion.
When the result is negative, the result is floored, i.e., rounded away from zero (towards negative infinity). In other words, rounded down to the next smallest (greater negative) integer.

Let us see some more examples.

print(float(x)//float(y)) # Notice the result will also be a float.

x = -13 # Notice the value of `x` is assigned by with a unary negation (`-`) operator
y = 3
print(x//y) # Notice the result.

# Instead of rounding up to 4 like in the case of a positive result, it round up to -5, the lesser value

x= -13.0 # We changed the type of `x` from int to float. No change in value.
print(x//y) # What will be the result.

Unlike the standard division (/), the result is not always a float. But when one of the operands is a float, then the result will also be a float.

Division by zero will yield in the same error as above.
#interviewQuestions : 0008

Q: List.copy() does a shallow copy of the list, but when we check their id's they point to different address? Why?

A shallow copy means constructing a new collection object and then populating it with references to the child objects found in the original.

Hence, when you check their id's they both point to different address.

check out this code
L1 = 1, 2, 3, 4

# Using copy() to create a shallow copy
L2 = L1.copy()

print(id(L1), id(L2))
>>> 2763664559240 2763665433480
In the above result, address are different, they both point to different locations.


But, the elements will be pointing to the same objects in both the lists.
Check this code:

print(id(L10), id(L20))
>>> 140703554137856 140703554137856

See the result, the elements point to the same address in memory.

#list #collection #shallowCopy
#interviewQuestions : 0009

Q: What can we do using Python
Q: Applications of Python
Q: Explain some of the areas where we can use Python

As mentioned before, Python is one of the most widely used language over the web.
It is known for its general purpose nature that makes it applicable in almost each domain of software development. Python as a whole can be used in any sphere of development.

To list few of them here:
○ Databases
Python provides interfaces to all major commercial databases. There by making it useful to create tools or GUI of databases, and also to use with an application which involves interacting with data.

○ Web Applications - We can use Python to develop web applications.
- It provides libraries to handle internet protocols such as HTML and XML, JSON, Email processing, request, beautifulSoup, Feedparser etc.
- There are many well-known web Frameworks such as Django, FastAPI, Pyramid, Flask etc to design and develop web based applications.

○ Desktop GUI Programming
- Python supports GUI applications that can be installed and run locally on systems like Windows, Linux, iOS etc.
- Python provides Tk GUI library to develop user interface in python based application.
- Some other useful toolkits wxWidgets, Kivy, pyqt that are useable on several platforms. The Kivy is popular for writing multitouch applications.

○ BigData and Data Science -
- Python and Big Data is an inseparable combination when we consider a programming language for big data development phase. Being Open Source, wide community, and a huge library, its best suited for Big Data projects.
- Python has become the number 1 language in Data Science projects.
- Some important packages Pandas, Numpy, SciPy, Theano, Scikit-learn, etc provide everything that a developer needs to work on Big Data and machine learning projects.
- PySpark is also an example of its use.
- Compatible with Hadoop. As Python big data is compatible, similarly Hadoop and big data are synonymous with each other. Hence, Python has been made inherently compatible with Hadoop to work with big data. Python consists of Pydoop package which helps in accessing HDFS API and also writing Hadoop MapReduce programming. Besides that Pydoop enables MapReduce programming to solve complex big data problems with minimal effort.
- An example is IBM using python, they even have a Python SDK for Watson, and they use python extensively.
- Netflix, Spotify use extensively for their recommendation and analytics engine.

○ Console Based Application - We can use Python to develop console based applications. IPython is the best example for this.

○ Multimedia Applications - Python is awesome to perform multiple tasks and can be used to develop audio and video applications.

○ Python is can also be used to develop
- 3D CAD Applications
- Enterprise Applications
- Image Processors and editors

There are several such applications which can be developed using Python
#interviewQuestions : 0010

Q: What is a Namespace in Python?

A namespace is basically a system to make sure that all the names of each and every object in a Python program are unique and can be used without any conflict.

You might already know that everything in Python like strings, lists, functions, etc. is an object. Python implements namespaces as dictionaries. There is a name-to-object mapping, with the names as keys and the objects as values. Multiple namespaces can use the same name and map it to a different object. Here are a few examples of namespaces:

Local Namespace: This namespace includes local names inside a function. This namespace is created when a function is called, and it only lasts until the function returns.

Global Namespace: This namespace includes names from various imported modules that you are using in a project. It is created when the module is included in the project, and it lasts until the script ends.

Built-in Namespace: This namespace includes built-in functions and built-in exception names.
#interviewQuestions : 0011

Q: Explain the following assignment?

x, y, z = 5, 10, 15
a = b = c = 0

a = x - z
x -= z

b = y - y + z
y -= (y + z)
print(b, y)

15 -15

Notice
the result in the here, it should be 15 and 15, but the value of y is -15.
Do you know why?
When the statements are evaluated, the statements are evaluated from left to right. But before that, anything within the braces are executed first.

So, in the first statement, since there is no curly braces, it first executes y - y and the result + z, this becomes 15
In the second statement, the expression within curly braces is executed, which is y + z, which comes to 25 and then now the expression becomes y -= 25, which is same as y = y- 25, hence the result -15.
#interviewQuestions : 0012

What is PYTHONPATH?

PYTHONPATH is an environment variable can be set, to add additional directories where python will look for modules and packages.

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.

For most installations, you should not set these variables since they are not needed for Python to run. Python knows where to find its standard library.

The only reason to set PYTHONPATH is to maintain directories of custom Python libraries that you do not want to install in the global default location (i.e., the site-packages directory).
#interviewQuestions : 0013

What are python modules?

Python modules are files containing Python code.

A module can define functions, classes and variables. A module can also include runnable code. Grouping related code into a module makes the code easier to understand and use.