Concept Of Python Language - SKengineers
WHAT IS PYTHON?
Python is an interpreted, object-oriented, high-level
programming language with dynamic semantics. Its high-level built in data
structures, combined with dynamic typing and dynamic binding, make it very
attractive for Rapid Application Development, as well as for use as a scripting
or glue language to connect existing components together. Python's simple, easy
to learn syntax emphasizes readability and therefore reduces the cost of
program maintenance. Python supports modules and packages, which encourages program
modularity and code reuse. 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.
Often, programmers fall in love with Python because of the increased productivity it provides. Since there is no compilation step, the edit-test-debug cycle is incredibly fast. Debugging Python programs is easy: a bug or bad input will never cause a segmentation fault. Instead, when the interpreter discovers an error, it raises an exception. When the program doesn't catch the exception, the interpreter prints a stack trace. A source level debugger allows inspection of local and global variables, evaluation of arbitrary expressions, setting breakpoints, stepping through the code a line at a time, and so on. The debugger is written in Python itself, testifying to Python's introspective power. On the other hand, often the quickest way to debug a program is to add a few print statements to the source: the fast edit-test-debug cycle makes this simple approach very effective.
What is
Python used for?
Python is commonly used for developing websites and
software, task automation, data analysis, and data visualization. Since it’s
relatively easy to learn, Python has been adopted by many non-programmers such
as accountants and scientists, for a variety of everyday tasks, like organizing
finances.
“Writing programs is a very creative and rewarding
activity,” says University of Michigan and Coursera instructor Charles R
Severance in his book Python for Everybody. “You can write programs for many
reasons, ranging from making your living to solving a difficult data analysis
problem to having fun to helping someone else solve a problem.”
Here’s a closer look at some of the common ways Python is
used.
If you’re new to Python (and programming in general), you
can begin writing your first Python program in minutes by taking Python for
Everybody from the University of Michigan.
Data
analysis and machine learning -
Python has become a staple in data science, allowing data
analysts and other professionals to use the language to conduct complex
statistical calculations, create data visualizations, build machine learning
algorithms, manipulate and analyze data, and complete other data-related tasks.
Python can build a wide range of different data
visualizations, like line and bar graphs, pie charts, histograms, and 3D plots.
Python also has a number of libraries that enable coders to write programs for
data analysis and machine learning more quickly and efficiently, like
TensorFlow and Keras.
Learn
Python for data analysis -
Start building the job-ready skills you’ll need as a data
analyst, including Python, SQL, and Excel, with the IBM Data Analyst
Professional Certificate on Coursera. You can finish in less than six months
with a credential from an industry leader.
Web development
-
Python is often used to develop the back end of a website or
application—the parts that a user doesn’t see. Python’s role in web development
can include sending data to and from servers, processing data and communicating
with databases, URL routing, and ensuring security. Python offers several
frameworks for web development. Commonly used ones include Django and Flask.
Some web development jobs that use Python include back-end
engineers, full stack engineers, Python developers, software engineers, and
DevOps engineers.
Automation or scripting -
If you find yourself performing a task over and over again,
you could work more efficiently by automating it with Python. Writing code used
to build these automated processes is called scripting. In the coding world,
automation can be used to check for errors across multiple files, convert files,
execute simple math, and remove duplicates in data.
Python can even be used by relative beginners to automate
simple tasks on the computer—such as renaming files, finding and downloading
online content or sending emails or texts at desired intervals.
Learn
Python for automation -
Boost your Python automation credentials with the Google IT
Automation with Python Professional Certificate.
Software
testing and prototyping -
In software development, Python can aid in tasks like build
control, bug tracking, and testing. With Python, software developers can
automate testing for new products or features. Some Python tools used for
software testing include Green and Requestium.
Everyday
tasks -
Python isn't only for programmers and data scientists.
Learning Python can open new possibilities for those in less data-heavy
professions, like journalists, small business owners, or social media
marketers. Python can also enable non-programmer to simplify certain tasks in
their lives. Here are just a few of the tasks you could automate with Python:
Keep track of stock market or crypto prices
Send yourself a text reminder to carry an umbrella anytime
it’s raining
Update your grocery shopping list
Renaming large batches of files
Converting text files to spreadsheets
Randomly assign chores to family members
Fill out online forms automatically
Why is
Python so popular?
Python is popular for a number of reasons. Here’s a deeper
look at what makes it so versatile and easy to use for coders.
It has a simple syntax that mimics natural language, so it’s
easier to read and understand. This makes it quicker to build projects, and
faster to improve on them.
It’s versatile. Python can be used for many different tasks,
from web development to machine learning.
It’s beginner friendly, making it popular for entry-level
coders.
It’s open source, which means it’s free to use and
distribute, even for commercial purposes.
Python’s archive of modules and libraries—bundles of code
that third-party users have created to expand Python’s capabilities—is vast and
growing.
Python has a large and active community that contributes to
Python’s pool of modules and libraries, and acts as a helpful resource for
other programmers. The vast support community means that if coders run into a
stumbling block, finding a solution is relatively easy; somebody is bound to
have run into the same problem before.
Programming
examples -
Hello world program -
print('Hello, world!')
Program to calculate the factorial of a positive integer:
n = int(input('Type a number, and its factorial will be
printed: '))
if n < 0:
raise
ValueError('You must enter a non-negative integer')
factorial = 1
for i in range(2, n + 1):
factorial *= i
print(factorial)
Python
Examples -
Python is
a great choice for -
Web and Internet development (e.g., Django and Pyramid
frameworks, Flask and Bottle micro-frameworks)
Scientific and numeric computing (e.g., SciPy – a collection
of packages for the purposes of mathematics, science, and engineering; Ipython
– an interactive shell that features editing and recording of work sessions)
Education (it’s a brilliant language for teaching
programming!)
Desktop GUIs (e.g., wxWidgets, Kivy, Qt)
Software Development (build control, management, and testing
– Scons, Buildbot, Apache Gump, Roundup, Trac)
Business applications (ERP and e-commerce systems – Odoo,
Tryton)
Games (e.g., Battlefield series, Sid Meier\’s Civilization
IV…), websites and services (e.g., Dropbox, UBER, Pinterest, BuzzFeed…)
Implementations
-
CPython is the reference implementation of Python. It is
written in C, meeting the C89 standard with several select C99 features (with
later C versions out, it's considered outdated; CPython includes its own C
extensions, but third-party extensions are not limited to older C versions, can
e.g. be implemented with C11 or C++ It compiles Python programs into an
intermediate bytecode which is then executed by its virtual machine. CPython is
distributed with a large standard library written in a mixture of C and native
Python. It is available for many platforms, including Windows (starting with
Python 3.9, the Python installer deliberately fails to install on Windows 7 and
8; XP was supported until Python 3.5) and
most modern Unix-like systems, including macOS (and Apple M1 Macs, since Python
3.9.1, with experimental installer) and unofficial support for e.g. VMS.
Platform portability was one of its earliest priorities, during the Python 1
and Python 2 time-frame, even OS/2 and Solaris were supported; support has
since been dropped for a lot of platforms.
Other
implementations -
PyPy is a fast, compliant interpreter of Python 2.7 and 3.6.
Its just-in-time compiler brings a significant speed improvement over CPython
but several libraries written in C cannot be used with it.
Stackless Python is a significant fork of CPython that
implements microthreads; it does not use the call stack in the same way, thus
allowing massively concurrent programs. PyPy also has a stackless version.
MicroPython and CircuitPython are Python 3 variants
optimized for microcontrollers, including Lego Mindstorms EV3.
Pyston is a variant of the Python runtime that uses
just-in-time compilation to speed up the execution of Python programs.
Cinder is a performance-oriented fork of CPython 3.8 that
contains a number of optimizations including bytecode inline caching, eager
evaluation of coroutines, a method-at-a-time JIT and an experimental bytecode
compiler.
Unsupported
implementations -
Other just-in-time Python compilers have been developed, but
are now unsupported:
Google began a project named Unladen Swallow in 2009, with
the aim of speeding up the Python interpreter fivefold by using the LLVM, and
of improving its multithreading ability to scale to thousands of cores, while
ordinary implementations suffer from the global interpreter lock.
Psyco is a discontinued just-in-time specializing compiler
that integrates with CPython and transforms bytecode to machine code at
runtime. The emitted code is specialized for certain data types and is faster
than the standard Python code. Psyco does not support Python 2.7 or later.
PyS60 was a Python 2 interpreter for Series 60 mobile phones
released by Nokia in 2005. It implemented many of the modules from the standard
library and some additional modules for integrating with the Symbian operating
system. The Nokia N900 also supports Python with GTK widget libraries, enabling
programs to be written and run on the target device.
Cross-compilers
to other languages -
There are several compilers to high-level object languages,
with either unrestricted Python, a restricted subset of Python, or a language
similar to Python as the source language:
Cython compiles (a superset of) Python 2.7 to C (while the
resulting code is also usable with Python 3 and also e.g. C++).
Nuitka compiles Python into C++.
Pythran compiles a subset of Python 3 to C++.
Pyrex (latest release in 2010) and Shed Skin (latest release
in 2013) compile to C and C++ respectively.
Google's Grumpy (latest release in 2017) transpiles Python 2
to Go.
IronPython allows running Python 2.7 programs (and an alpha,
released in 2021, is also available for "Python 3.4, although features and
behaviors from later versions may be included"on the .NET Common Language
Runtime.
Jython compiles Python 2.7 to Java bytecode, allowing the
use of the Java libraries from a Python program.
MyHDL is a Python-based hardware description language (HDL),
that converts MyHDL code to Verilog or VHDL code.
Numba uses LLVM to compile a subset of Python to machine
code.
Brython, Transcryptand Pyjs (latest release in 2012) compile
Python to JavaScript.
RPython can be compiled to C, and is used to build the PyPy
interpreter of Python.
Performance
-
A performance comparison of various Python implementations
on a non-numerical (combinatorial) workload was presented at EuroSciPy '13.
Python's performance compared to other programming languages is also
benchmarked by The Computer Language Benchmarks Game.
Development
-
Python's development is conducted largely through the Python
Enhancement Proposal (PEP) process, the primary mechanism for proposing major
new features, collecting community input on issues and documenting Python
design decisions. Python coding style is covered in PEP 8. Outstanding PEPs are
reviewed and commented on by the Python community and the steering council.
Enhancement of the language corresponds with development of
the CPython reference implementation. The mailing list python-dev is the
primary forum for the language's development. Specific issues are discussed in
the Roundup bug tracker hosted at bugs.python.org. Development originally took
place on a self-hosted source-code repository running Mercurial, until Python
moved to GitHub in January 2017.
CPython's public releases come in three types, distinguished
by which part of the version number is incremented:
Backward-incompatible versions, where code is expected to
break and needs to be manually ported. The first part of the version number is
incremented. These releases happen infrequently—version 3.0 was released 8
years after 2.0.
Major or "feature" releases are largely compatible
with the previous version but introduce new features. The second part of the
version number is incremented. Starting with Python 3.9, these releases are
expected to happen annually. Each major version is supported by bugfixes for
several years after its release.
Bugfix releases, which introduce no new features, occur
about every 3 months and are made when a sufficient number of bugs have been
fixed upstream since the last release. Security vulnerabilities are also
patched in these releases. The third and final part of the version number is
incremented.
Many alpha, beta, and release-candidates are also released
as previews and for testing before final releases. Although there is a rough
schedule for each release, they are often delayed if the code is not ready.
Python's development team monitors the state of the code by running the large
unit test suite during development.
The major academic conference on Python is PyCon. There are
also special Python mentoring programmes, such as Pyladies.
Python 3.10 deprecated wstr (to be removed in Python 3.12;
meaning Python extensions need to be modified by then), and added pattern
matching to the language.
API
documentation generators -
Tools that can generate documentation for Python API include
pydoc (available as part of standard library), Sphinx, Pdoc and its forks,
Doxygen and Graphviz, among others.
Naming -
Python's name is derived from the British comedy group Monty
Python, whom Python creator Guido van Rossum enjoyed while developing the
language. Monty Python references appear frequently in Python code and culture;
for example, the metasyntactic variables often used in Python literature are
spam and eggs instead of the traditional foo and bar. The official Python
documentation also contains various references to Monty Python routines.
The prefix Py- is used to show that something is related to
Python. Examples of the use of this prefix in names of Python applications or
libraries include Pygame, a binding of SDL to Python (commonly used to create
games); PyQt and PyGTK, which bind Qt and GTK to Python respectively; and PyPy,
a Python implementation originally written in Python.
Comments
Post a Comment