Revised Python Project Report (2) - 1
Revised Python Project Report (2) - 1
ON
SUBMITTED BY
ACADEMIC YEAR
2024-25
DRIEMS, POLYTECHNIC, TANGI, CUTTACK
CERTIFICATE
We are thankful to our Principal Dr. Tapaswini Sahu and the HOD, Er. Ladu
Kishore Sahoo, Department of Computer Science & Engineering,
DRIEMS, Polytechnic, Tangi, Cuttack for his invaluable guidance and
assistance, without which the accomplishment of the task would have never
been possible.
We also thank our guide Er. Shuvam Das for giving this opportunity to
explore into the real world and realize the interrelation without which a Project
can never progress. In our present project, we have chosen the topic- “A
COMPREHENSIVE REVIEW ON PYTHON IN DAY TO DAY LIFE”.
relevant domain is the foremost task for any beginner incomputers. Choosing a
beginner-friendly programming language is very important as it acts as a catalyst in the path
applications, advantages, and disadvantages, etc. It also discusses in brief the object-
oriented concepts that can be implemented easily using Python that may help reader to
understand to opt Python as a beginner in programming.
Certificate ii
Acknowledgement iii
Abstract iv
List of Figures v
Table of Contents vi
PHASE-I
1. Introduction to python
1.1 Introduction 1
1.2 Motivation 3
2. Literature Survey
3. Proposed Work
3.2 Methodology 12
PHASE-II
4. Implementation
4.1 Implementation 35
5. Result Analysis
5.2 Advantages 41
5.3 Disadvantages 42
5.4 Maintenance 43
Reference 47
vi
CHAPTER 1
PHASE-I
INTRODUCTION
1.1 INTRODUCTION:
Python ia a very popular programming language. It was created by Guido van
Rossum in 1991. It is used for parallel computing system and has a
comparatively simple and easy syntax for coding and still it is a powerful
programming [Link] is also used in various field like web development,
software development and it is also used by data scientist. It also used for
creating real time applications or user interective applications. It has very
simple syntax and it is iterpreted language and it is object oriented and high
level programming language. There code is when you writen, it feel like you
write normal english language. It follow intendation when you write their code.
It has large and advanced library like Matplotlib, Numpy, Pandas, SciPy and so
[Link] has the interpreter for java known as JPython, which is similar to the
interpreter for C language.
In [1] Perchelt, represented the idea that often debates about the better
programming language tends to be inconclusive in the end so, Perchelt have try
to solve this debate by empirical comparison of seven different languages i.e. C,
C++, Java, Perl, Python, Tcl and Rexx. Perchelt starts his study by
implementation of the same program in all the languages and then Perchelt
analyzed different implementation by the different programmers. This removes
the biased due the implementation by the single programmer and allow the
comparison of variability of different program properties each langue produce.
According to Perchelt there two main categories of language among these
seven languages. Scripting languages like Perl, Python, Rexx and Tcl that focus
on interpretation rather than compilation whereas Conventional languages like
C, C++, Java focus on less interpretation and more on compilation. Perchelt,
represented the results data in the boxplot, to give the clear visual
representation of the comparison of languages. Perchelt also used bad-to-good
ratio, Median comparison and Wilcoxon rank sum test and results of each of
these test is a p value. Perchelt run program to test seven main properties i.e.
runtime, initialization phase, memory consumption. program structure, work
time and productivity, program reliability and length and amount of
commenting. Perchelt study concludes that constructing and writing script
languages, Python and Perl run faster than Tcl for both phases that are
initialization of phenocode and searching through data structure while C and C+
+ was faster than Java and scripts. Perchelt study is very generalized and had
evident conclusion but their limitation due to restricted number of
implementations and programmers investigated for implementation. The
resulting groups off language may not hold when applied to different problem.
In [2] Millman, [Link] present the idea that for past decades python has emerged
and used in scientific research. Millman [Link] describes the history of python
that although python come with its various type of build-in data types but still it
was not sufficient to use for numerical computing, so matrix-sig was developed.
It was a group of special interest that worked on developing array data type in
python. Jim hugunin developed C-extension module called Numeric. It was
based of Jim felton’s extension and ideas from matrixsig, but soon after he left
to develop python implementation
1.2 Motivation
Google has used Python from the start, and it has established
itself as one of the tech giant’s main server-side languages.
Guido van Rossum, Python’s creator, worked there for several
years, overseeing the language’s development.
Spotify uses the language for data analysis and backend services.
According to its team, Python’s ease of use leads to a
lightning-fast development pipeline. Spotify performs a ton of
analysis to give recommendations to its users, so it needs a
productive tool that works well. Python to the rescue!
CHAPTER 2
LITERATURE SURVEY
Python is a popular programming language for research,
and a variety of research methods can be used with it. Here
are some of the most common methods:
hypotheses .
Survey studies: Survey studies involve collecting data from
a large number of people. This can be a useful method for
understanding the attitudes or opinions of a population.
CHAPTER 3.
PROPOSED WORK
3.1 Objective of proposed work
Python is s general purpose programming language that
supports multiple programming paradigms. A high-level
programming language that takes very few lines compared
to other programming languages to accomplish a task.
Python today is considered as one of the easiest
programming language to begin with because of its super
user-friendly coding style. The language comes with large
number of built-in methods as a part of standard library.
The main features of Python are: it is simple and easy
to
learn, free to use and open source, high level programming
language, platform independent, portability, dynamically
typed, both procedure oriented and object oriented,
interpreted, extensible, embedded, extensive library.
Guido van Rossum began working on Python in the late
1980s and first released it in 1991 as Python 0.9.0. It is
dynamically-typed programming language which means the
user doesn’t have to declare the data type for the values
to
be stored in the program. In 2000, Python 2.0 was released
while Python 3.0 was released in 2008 that is not completely
backward-compatible with earlier versions
3.2 Methodology
Features of python: -
1. Simple and easy syntax: Python has very easy syntax as
compare to other programming language like C, C++, Java and
so on. And there syntax is also easily readable and
understandable. python is dynamically typed, means you
don’t need to specify a variable data type , direct use and
assign value.
2. Object Oriented Language: One of the best feature of
python is it support OOPS concept like java, C++. Means in
this we can create and use class, objects, inheritance,
abstraction and polymorphism. python supports oops concept
that is make easier to solve real world problems and
maintain complex projects.
3. GUI programming support: Python supports Graphical user
interface programming, allowing developers to create user
interactive applications with buttons. Graphical User
interfaces can we create in python by using python module
like Tkinter and so on.PyQt5 is one of the most famous and
used module in python for creating GUI apps.
4. Large and standard Libraries: Python has aprox 137000
libraries in current time and this very large numbers.
Python have some most used and popular libraries are
matplotlib, numpy, pandas, Tkinter, SciPy and so on. This
extensive library provides modules and packages to help
developers to perform a wide range of tasks without needing
to install additional tools.
5. Manage Databases: The Python language has powerfull
features for database management. it supports tools like
SQLite, MySQL, ORACLE, Sybase, PostgreSQL and so on. It also
support Data Definition language. Data Manipulation language
and Data Query Statements.
.
B. Scientific and Numeric
Artificial intelligence and machine learning are becoming
part of everyday life, more and more applications are build
having complex structures and algorithms that perform lot
of mathematical and scientific computation to achieve the
required task. Python comes with large numbers of libraries
to the rescue, and because of its high-level data
abstraction,
libraries like, Numpy, Pandas, Scipy, Scikit-learn can
be
easily used to get the work done.
C. Software Development
Python is used to build control and management software
using SCons. For automated continuous compilation and
testing, Buildbot and Apache Gumpr can be used. For bug
tracking and project management Roundup or Trac can be
used.
E. Education
Python is best fit for any new learner because of high
readability and easy to use syntax. From introductory
to
advance level, python stands great for people may or may
not having any solid knowledge of coding. With great
community support and availability of learning resources, a
person can easily learn python and start experimenting with
the domain specific libraries within few days.
34
PHASE-II
CHAPTER. 4
4. IMPLIMENTATION
Python Implementations
An "implementation" of Python should be taken to mean a
program or environment which provides support for the
execution of programs written in the Python language, as
represented by the CPython reference implementation.
There have been and are several distinct software packages
providing what we all recognize as Python, although some of
those are more like distributions or variants of some existing
implementation than a completely new implementation of the
language.
CPython Variants
These are implementations based on the CPython runtime core
(the de-facto reference Python implementation), but with
extended behaviour or features in some aspects.
CrossTwine Linker - a combination of CPython and an add-on
library offering improved performance (currently
proprietary)
Stackless Python - CPython with an emphasis on concurrency
using tasklets and channels (used by dspython for the
Nintendo DS)
Pyston - a fork of CPython, originally developed at Dropbox
but now by independent developers, performance-focused
including bytecode quickening and a lightweight JIT.
Cinder, a fork of CPython by Instagram, containing a number
of optimizations like bytecode rewriting and a method-at-a-
time JIT compiler.
Pyjion, a JIT extension for CPython that compiles Python
code to CIL (.NET) and executes it on the CLR.
unladen-swallow - "an optimization branch of CPython,
intended to be fully compatible and significantly faster",
originally considered for merging with CPython subject
to PEP 3146, but now unmaintained
S6, a JIT extension for CPython that also contains its own
bytecode interpreter
wpython - a re-implementation of CPython using "wordcode"
instead of bytecode
eGenix PyRun - Python runtime (CPython + std library)
compressed into a single 3-4MB binary
x-python - The C Python Interpreter written in Python;
useful for educational purposes. There is also bytecode
debugger for it
Falcon - a Python register machine shipped as an extension
module
RegCPython - a fork of CPython with a register-based
bytecode interpreter
Reduced Python Variants
These provide a subset of the full language + standard
library, for use in embedded scenarios (see also
the EmbeddedPython topic)
MicroPython - Python for microcontrollers (runs on the
pyboard and the BBC Microbit)
CircuitPython - Adafruit’s branch of MicroPython
Also look at the sections on Python compilers and extensions
below, some of which would qualify as CPython variants.
Other Implementations
These are re-implementations of the Python language that do
not depend on (or necessarily interact with)
the CPython runtime core. Many of them reuse (a large part
of) the standard library implementation.
Note that most of these projects have not yet achieved
language compliance. However, many of these have goals and
features or run in certain environments that make them
interesting in their own regard. The only implementations that
are known to be compatible with a given version of the
language are IronPython, Jython and PyPy.
Working Implementations
The following implementations may be not comprehensive or even
complete, but at the very least can be said to be working in
that you can run typical programs with them already:
PyPy - Python in Python, includes a tracing JIT compiler
Jython - Python in Java for the Java platform
IronPython - Python in C# for the Common Language Runtime
(CLR/.NET) and the FePy project's IronPython Community
Edition (IPCE)
GraalPython - Python in Java, using the Graal just-in-time
compiler and the Truffle interpreter implementation
framework
Skybison - A C++ from scratch implementation of Python 3.8
using a moving GC, hidden classes and a template JIT.
Brython - a way to run Python in the browser through
translation to JavaScript
CLPython - Python in Common Lisp
HotPy - a virtual machine for Python supporting bytecode
optimisation and translation (to native code) using type
information gathered at runtime
pyjs - (formally Pyjamas) a Python to JavaScript compiler
plus Web/GUI framework
PyMite - Python for embedded devices
pyvm - a Python-related virtual machine and software suite
providing a nearly self-contained "userspace" system
RapydScript - a Python-like language that compiles
to JavaScript
SNAPpy - "a subset of the Python language that has been
optimized for use in low-power embedded devices" (apparently
proprietary)
tinypy - a minimalist implementation of Python in 64K of
code
Transcrypt - Python 3.6 to JavaScript precompiler with
lean and fast generated code, sourcemaps, built-in
minification, optional static type-checking, JSX support
Tentative Implementations
The following implementations are apparent works in progress;
they may not be able to run typical programs:
Berp - an implementation of Python 3 in Haskell, providing
an interactive environment as well as a compiler
phpython - a Python interpreter written in PHP
Pyjaco - a Python to JavaScript compiler similar to Pyjs
but more lightweight
Pystacho is, like Skulpt, Python in JavaScript
[Link]
[Link]/users/z3p/files/[Link] - a CPython
2 bytecode interpreter written in Python 2,
abandoned mentioned on the PyPy mailing list in 2003
Skulpt - Python in JavaScript
Typhon - a Rubinius-based implementation of Python
Violet - a Swift implementation of Python
RustPython - RustPython is a Python interpreter written
in Rust. Aims at compatibility with Python 3.11+.
pocketpy - pocketpy is a lightweight (~10000 LOC) Python
interpreter for game scripting
Extensions
These are typically part of CPython (or some other
implementation) but change the implementation's behaviour:
Psyco - a just-in-time specialising compiler for CPython,
abandoned, works only for CPython 2.6.
Compilers
These compilers usually implement something close to Python,
although some compilers may impose restrictions that alter the
nature of the language:
Cython - a widely used optimising Python-to-C compiler,
CPython extension module generator, and wrapper language for
binding external libraries. Interacts with CPython runtime
and supports embedding CPython in stand-alone binaries.
Nuitka - a Python-to-C++ compiler using libpython at
runtime, attempting some compile-time and run-time
optimisations. Interacts with CPython runtime.
MyPyC compiles fully typed Python code to a C extension,
based on mypy.
2c-python - a static Python-to-C compiler, apparently
translating CPython bytecode to C
Compyler - an attempt to "transliterate the bytecode into
x86 assembly" (now abandoned)
GCC Python Front-End - an in-progress effort to compile
Python code within the GCC infrastructure
Pyc - performs static analysis in order to compile Python
programs, uses similar techniques to Shed Skin
Shed Skin - a Python-to-C++ compiler, restricted to an
implicitly statically typed subset of the language for which
it can automatically infer efficient types through whole-
program analysis
unPython - a Python to C compiler using type annotations
VOC - A transpiler that converts Python bytecode into Java
bytecode.
Numerical Accelerators
Numba - NumPy-aware optimizing runtime compiler for Python
Pythran - ahead of time compiler for a subset of Python
with a focus on scientific computing
Copperhead - purely functional data-parallel Python,
compiles to multi-core and GPU backends
Parakeet - runtime compiler for a numerical subset of
Python
Similar but Distinct Languages
These languages don't attempt to be directly compatible even
with a subset of Python, choosing to provide their own set of
features:
Alore - a compilable language with optional typing and
Python/Ruby inspired syntax; an Alore-Python bridge is
planned; development effort has been transferred to mypy
(see below)
Cobra
Converge - inspired by Python, Haskell, Icon and Smalltalk,
provides macros which can be evaluated at compile-time
Delight - based on the D programming language
Genie - based on the same foundations (Gtk+, GNOME) as the
Vala programming language, supposedly inspired by Boo
mypy - Python with optional static typing and some local
type inference
Mython - an extensible variant of the Python programming
language, apparently a front-end for CPython
Nim - statically typed, compiles to C, C++, and JS,
features parameterised types, macros, and so on
Pythonect - a dataflow-oriented language adopting the basic
Python expression syntax, implemented in Python and
integrated with the Python environment
Roket Secured Language - an interpreter for a Python-like
language for applications where "restricted Python"
execution is desired
Serpent - inspired by Python, supporting real-time garbage
collection and multiple virtual machines in separate
threads (more information)
Serpentine - a language with Python-like syntax for the
Dalvik virtual machine
sneklang - "Snek is a tiny embeddable language targeting
processors with only a few kB of flash and ram."
Starlark - "Starlark (formerly known as Skylark) is a
language intended for use as a configuration language."
Wirbel - a compilable language with similar restrictions to
Shed Skin (statically typed names, lists cannot mix elements
of different types), no longer actively developed as of
2011-07-21
CHAPTER 5
RESULT ANALYSIS
5.2 Advantages
Result analysis offers numerous advantages across academic,
industrial, and research-oriented applications. One major
advantage is informed decision-making. By analyzing results
systematically, organizations and researchers can make
evidence-based decisions rather than relying on assumptions or
intuition.
Another advantage is performance evaluation. Result analysis
helps measure the effectiveness of a system, model, or process
by comparing expected outcomes with actual results. This
enables identification of strengths and areas requiring
improvement.
Accuracy and reliability are also enhanced through proper
analysis. Statistical and analytical techniques reduce
ambiguity and help validate findings. This increases
confidence in the conclusions drawn from the data.
Result analysis also supports optimization. By understanding
which factors contribute most to success or failure, resources
can be allocated more efficiently. Processes can be refined to
improve productivity, cost-effectiveness, and quality.
Additionally, it promotes transparency and accountability.
Clearly documented results and interpretations allow
stakeholders to verify outcomes and understand how conclusions
were reached. This is particularly important in academic
research, audits, and compliance-driven projects.
Finally, result analysis aids in future planning. Insights
gained from current results serve as a foundation for
forecasting, strategy development, and innovation.
5.3 Disadvantages
Despite its benefits, result analysis also has certain
limitations and challenges. One major disadvantage is
dependency on data quality. Inaccurate, incomplete, or biased
data can lead to misleading results and incorrect conclusions.
Another limitation is complexity. Advanced analytical methods
and visualization tools often require specialized knowledge
and technical expertise. Without proper skills, results may be
misinterpreted or oversimplified.
Time and cost constraints can also be disadvantages.
Collecting data, processing it, and performing detailed
analysis may require significant time, computational
resources, and financial investment.
Over-reliance on visualization can sometimes be misleading.
Poorly designed charts or inappropriate visualization
techniques may distort information or hide important details.
This can result in wrong interpretations by stakeholders.
Additionally, result analysis may not capture qualitative
aspects effectively. Factors such as user satisfaction,
behavior, or contextual influences are sometimes difficult to
quantify and may be overlooked.
Thus, while result analysis is powerful, it must be applied
carefully with awareness of its limitations.
5.4 Maintenance
Maintenance is an essential aspect of result analysis,
especially in systems that operate continuously or are updated
regularly. It involves ensuring that data sources, analytical
models, and visualization tools remain accurate, relevant, and
functional over time.
One key maintenance activity is data updating. As new data is
generated, datasets must be refreshed to reflect current
conditions. Outdated data can reduce the relevance and
reliability of analysis results.
Model and system maintenance is equally important. Analytical
models may degrade over time due to changes in underlying
patterns or external factors. Regular validation,
recalibration, and retraining of models help maintain
accuracy.
Visualization tools and dashboards also require maintenance.
This includes updating layouts, correcting errors, and
adapting visuals to new requirements or user feedback. Well-
maintained dashboards ensure continued usability and clarity.
Security and data integrity are critical maintenance concerns.
Proper access control, backup mechanisms, and data validation
processes protect analytical systems from data loss,
unauthorized access, and corruption.
Finally, documentation and user training are part of effective
maintenance. Clear documentation ensures continuity when
personnel change, while periodic training helps users
interpret results correctly and use tools efficiently.
In conclusion, regular maintenance sustains the effectiveness
of result analysis and ensures long-term value from analytical
systems.
44
CHAPTER 6
Conclusion
The Future of Python 4.0 remains uncertain, but Guido van
Rossum's insights offer a glimpse into the thoughtful approach
shaping the language's next evolution. Whether or not Python 4.0
is released, the ongoing development of Python continues to
impact modern software development profoundly. Rossum's vision
and leadership will play a critical role in guiding Python's
future.
REFERENCE
Van Rossum, G., & Drake, F. L. (2009). Python 3 Reference
Manual. CreateSpace.
Van Rossum, G. (1995). Python Tutorial. Centrum voor
Wiskunde en Informatica (CWI), Amsterdam.
Python Software Foundation. Python Official Documentation.
Available at: [Link]
Lutz, M. (2013). Learning Python (5th ed.). O’Reilly
Media.
McKinney, W. (2017). Python for Data Analysis. O’Reilly
Media.
Sweigart, A. (2015). Automate the Boring Stuff with
Python. No Starch Press.
Summerfield, M. (2010). Programming in Python 3: A
Complete Introduction to the Python Language. Addison-Wesley.
48