0% found this document useful (0 votes)
19 views5 pages

Python Notes 2

2
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
19 views5 pages

Python Notes 2

2
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd

Python Notes 2

What is
Python?----------------------------------------------------------------------------
-----------------------------------------------------------------------------------
--------------
Python is a widely-used, interpreted, object-oriented, and high-level programming
language with dynamic semantics, used for general-purpose programming.
The name of the Python programming language comes from an old BBC television comedy
sketch series called Monty Python's Flying Circus.
Python's creator named the language in honor of the TV show.

Who created
Python?----------------------------------------------------------------------------
-----------------------------------------------------------------------------------
----------
One of the amazing features of Python is the fact that it is actually one person's
work.
New programming languages are developed and published by large companies employing
lots of experts, and due to copyright rules, it is very hard to name any of the
people in the project.
Python is an exception.
There are not many languages whose authors are known by name.
Python was created by Guido van Rossum, born in 1956 in Haarlem, the Netherlands.
Of course, Guido van Rossum did not develop and evolve all the Python components
himself.
The speed with which Python has spread around the world is a result of the
continuous work of thousands (very often anonymous) programmers, testers and users.
Many of them weren't IT specialists and enthusiasts, but it must be said that the
very first idea (the seed from which Python sprouted) came to one head, Guido's.

A hobby programming
project?---------------------------------------------------------------------------
-----------------------------------------------------------------------------------
--
In December 1989, I was looking for a "hobby" programming project that would keep
me occupied during the week around Christmas.
My office would be closed, but I had a home computer, and not much else on my
hands.
I decided to write an interpreter for the new scripting language I had been
thinking about lately: a descendant of ABC that would appeal to Unix/C hackers.
I chose Python as a working title for the project
In 1999, Guido van Rossum defined his goals for Python.
An easy and intuitive language just as powerful as those of the major competitors
and open source, so anyone can contribute to its development.
Code that is as understandable as plain English and suitable for everyday tasks,
allowing for short development times.
About 20 years later, it is clear that all these intentions have been fulfilled.
Some sources say that Python is the most popular programming language in the world,
while others claim it's the second or the third.
Either way, it still occupies a high rank in the top ten of the PYPL PopularitY of
Programming Language and the TIOBE Programming Community Index.
Python isn't a young language anymore.
It is mature and trustworthy.
It's not a one-hit wonder.
It's a bright star in the programming firmament, and time spent learning Python is
a very good investment.
What makess Python so
special?---------------------------------------------------------------------------
-----------------------------------------------------------------------------------
How does it happen that programmers, young and old, experienced and novice, want to
use it?
How did it happen that large companies adopted Python and implemented their
flagship products using it?
There are many reasons we've listed some of them already, but let's enumerate them
again in a more practical manner.
It's easy to learn, the time needed to learn Python is shorter than for many other
languages; this means that it's possible to start the actual programming faster.
It's easy to teach, the teaching workload is smaller than that needed by other
languages.
This means that the teacher can put more emphasis on general (language-independent)
programming techniques, not losing energy on exotic tricks, WEIRD exceptions and
incomprehensible rules.
It's easy to use for writing new software, it's often possible to write code faster
when using Python.
It's easy to understand, it's also often easier to understand someone else's code
faster if it is written in Python.
It's easy to obtain, install and deploy, Python is free, open and multiplatform and
not all languages can boast that.

Python
Rivals?----------------------------------------------------------------------------
-----------------------------------------------------------------------------------
---------------
Python has two direct competitors, with comparable properties and predispositions.
Thes are: Perl – a scripting language originally authored by Larry Wall;
Ruby – a scripting language originally authored by Yukihiro Matsumoto.
The former is more traditional and more conservative than Python, and resembles
some of the old languages derived from the classic C programming language.
In contrast, the latter is more innovative and more full of fresh ideas than
Python.
Python itself lies somewhere between these two creations.
The Internet is full of forums with infinite discussions on the superiority of one
of these three over the others, should you wish to learn more about each of them.

Where can i see Python in


action?----------------------------------------------------------------------------
-------------------------------------------------------------------------------
We see it every day and almost everywhere.
It's used extensively to implement complex Internet services like search engines,
cloud storage and tools, social media and so on
Whenever you use any of these services, you are actually very close to Python,
although you wouldn't know it.
Many developing tools are implemented in Python.
More and more everyday-use applications are being written in Python.
Lots of scientists have abandoned expensive proprietary tools and switched to
Python.
Lots of IT project testers have started using Python to carry out repeatable test
procedures.

Why not
Python?----------------------------------------------------------------------------
-----------------------------------------------------------------------------------
--------------
Despite Python's growing popularity, there are still some niches where Python is
absent, or is rarely seen.
Low-level programming (sometimes called "close to metal" programming).
If you want to implement an extremely effective driver or graphical engine, you
wouldn't use Python;
Applications for mobile devices although this territory is still waiting to be
conquered by Python, it will most likely happen someday.

There is more than one


Python-----------------------------------------------------------------------------
----------------------------------------------------------------------------------
There are two main kinds of Python, called Python 2 and Python 3.
Python 2 is an older version of the original Python.
Its development has since been intentionally stalled, although that doesn't mean
that there are no updates to it.
On the contrary, the updates are issued on a regular basis, but they are not
intended to modify the language in any significant way.
They rather fix any freshly discovered bugs and security holes.
Python 2's development path has reached a dead end already, but Python 2 itself is
still very much alive.
Python 3 is the newer (or to be more precise, the current) version of the language.
It's going through its own evolutionary path, creating its own standards and
habits.
These two versions of Python aren't compatible with each other.
Python 2 scripts won't run in a Python 3 environment and vice versa.
So if you want the old Python 2 code to be run by a Python 3 interpreter, the only
possible solution is to rewrite it.
Though not from scratch, of course, as large parts of the code may remain
untouched, but you do have to revise all the code to find all possible
incompatibilities.
Unfortunately, this process cannot be fully automatized.
It's too hard, too time-consuming, too expensive, and too risky to migrate an old
Python 2 application to a new platform.
It's even possible that rewriting the code will introduce new bugs into it.
It's easier, and more sensible, to leave these systems alone and to improve the
existing interpreter, instead of trying to work inside the already functioning
source code.
Python 3 isn't just a better version of Python 2 it is a completely different
language, although it's very similar to its predecessor.
When you look at them from a distance, they appear to be the same, but when you
look closely, though, you notice a lot of differences.
If you're modifying an old existing Python solution, then it's highly likely that
it was coded in Python 2.
This is the reason why Python 2 is still in use.
There are too many existing Python 2 applications to discard it altogether.

Python
Implementations?-------------------------------------------------------------------
-----------------------------------------------------------------------------------
---------------
The traditional implementation of Python, called CPython, is Guido van Rossum's
reference version of the Python computing language, and it's most often called just
"Python".
When you hear the name CPython, it's most probably used to distinguish it from
other, non-traditional, alternative implementations.
But, first things first.
There are the Pythons which are maintained by the people gathered around the PSF
(Python Software Foundation).
It is a community that aims to develop, improve, expand, and popularize Python and
its environment.
The PSF's president is Guido von Rossum himself, and for this reason, these Pythons
are called canonical.
They are also considered to be reference Pythons, as any other implementation of
the language should follow all standards established by the PSF.
Guido van Rossum used the "C" programming language to implement the very first
version of his language and this decision is still in force.
All Pythons coming from the PSF are written in the "C" language.
There are many reasons for this approach.
One of them is that thanks to it, Python may be easily ported and migrated to all
platforms with the ability to compile and run "C" language programs.
Virtually all platforms have this feature, which opens up many expansion
opportunities for Python.
This is why the PSF implementation is often referred to as CPython.
This is the most influential Python among all the Pythons in the world.

Cython?----------------------------------------------------------------------------
-----------------------------------------------------------------------------------
----------------------
Cython is one of a possible number of solutions to the most painful of Python's
traits the lack of efficiency.
Large and complex mathematical calculations may be easily coded in Python.
Which is much easier than in "C" or any other traditional language, but the
resulting code execution may be extremely time-consuming.
How are these two contradictions reconciled?
One solution is to write your mathematical ideas using Python.
Then when you're absolutely sure that your code is correct and produces valid
results, you can translate it into "C". Certainly, "C" will run much faster than
pure Python.
This is what Cython is intended to do to automatically translate the Python code
(clean and clear, but not too swift) into "C" code (complicated and talkative, but
agile).

Jython?----------------------------------------------------------------------------
-----------------------------------------------------------------------------------
----------------------
Another version of Python is called Jython.
"J" is for "Java". Imagine a Python written in Java instead of C.
This is useful, for example, if you develop large and complex systems written
entirely in Java and want to add some Python flexibility to them.
The traditional CPython may be difficult to integrate into such an environment, as
C and Java live in completely different worlds and don't share many common ideas.
Jython can communicate with existing Java infrastructure more effectively.
This is why some projects find it useful and necessary.
The current Jython implementation follows Python 2 standards.
There is no Jython conforming to Python 3, so far.

PyPy?------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
----------------------
The PyPy logo is a rebus.
Can you solve it? It means: a Python within a Python.
In other words, it represents a Python environment written in Python-like language
named RPython (Restricted Python).
It is actually a subset of Python.
The source code of PyPy is not run in the interpretation manner, but is instead
translated into the C programming language and then executed separately.
This is useful because if you want to test any new feature that may or may not be
introduced into mainstream Python implementation, it's easier to check it with PyPy
than with CPython.
This is why PyPy is rather a tool for people developing Python than for the rest of
the users.
This doesn't make PyPy any less important or less serious than CPython, of course.
In addition, PyPy is compatible with the Python 3 language.

MicroPython?-----------------------------------------------------------------------
-----------------------------------------------------------------------------------
----------------------
MicroPython is an efficient open source software implementation of Python 3 that is
optimized to run on microcontrollers.
It includes a small subset of the Python Standard Library.
It is largely packed with a large number of features such as interactive prompt or
arbitrary precision integers, as well as modules that give the programmer access to
low-level hardware.
Originally created by Damien George, an Australian programmer, who in the year 2013
ran a successful campaign on Kickstarter.
He released the first MicroPython version with an STM32F4-powered development board
called pyboard.
In 2017, MicroPython was used to create CircuitPython, another one open source
programming language that runs on the microcontroller hardware.
It is a derivative of the MicroPython language.

Common questions

Powered by AI

Guido van Rossum's goals for Python included making it an easy and intuitive language suitable for everyday tasks, much like plain English . These goals align well with contemporary applications in education, where Python is highly favored because of its simplicity and readability, which lower the learning curve and allow educators to focus more on teaching programming concepts rather than language-specific syntax. This 'teachability' makes Python a popular choice in introductory programming courses worldwide .

The various implementations of Python, such as CPython, Jython, and PyPy, enhance its adaptability by providing solutions tailored to specific needs. Jython, for instance, allows Python code to run on Java environments, thus integrating Python's flexibility with Java's robustness . PyPy, on the other hand, provides a platform for testing new features due to its quick execution and compatibility with Python 3 . These implementations allow Python to be used efficiently in different technical environments, broadening its appeal and usability.

Python was created by Guido van Rossum in 1989 as a hobby project during the Christmas holidays. Its design was influenced by the need for a descendant of ABC that would appeal to Unix/C hackers, which positioned it as an intuitive yet powerful language suitable for a broad range of applications. This, combined with its open-source nature, has helped it gain popularity and acceptance across diverse environments . Python's ease of learning and use, as well as its strong community support, have further consolidated its place in both educational and professional settings .

The Python Software Foundation (PSF) plays a crucial role in maintaining Python's relevance by establishing standards and overseeing the development of the language. The PSF ensures that canonical Python versions, such as CPython, follow established guidelines for consistency and reliability . By organizing a community-driven approach to Python's evolution, the PSF helps ensure the language remains responsive to the needs of its users, incorporating feedback and contributions from a global developer community .

Python is favored for its simplicity and readability, which allows programmers to write and understand code more efficiently than languages like Perl, known for its complexity, or Ruby, which although innovative, may not be as intuitive for all users. Python's dynamic semantics and its powerful standard libraries contribute to its robustness for various applications. Furthermore, Python's strong community support and extensive libraries make it a practical choice for both new learners and experienced developers .

Python's strategic development focused on clarity and readability, enabling developers to produce easily maintainable code. Its powerful libraries and frameworks, along with its open-source nature, allow large companies to build scalable, efficient solutions at lower costs . Furthermore, its adaptability through multiple implementations like CPython, Jython, and PyPy supports its integration into diverse technological ecosystems, making it ideal for flagship product development across different platforms . The language's robust community support ensures continuous improvement and reliability, thus building trust with large enterprises .

MicroPython differentiates itself by being a minimal implementation of Python 3, optimized to run on microcontrollers, unlike traditional Python implementations meant for full-scale computing environments . It includes essential features and a subset of the standard library, allowing it to manage constrained hardware resources effectively. This makes Python accessible for embedded systems, expanding its usability into domains like IoT and automation where traditional Python's overheads might otherwise make it unsuitable .

CPython, the canonical implementation of Python, is written in the C programming language, which significantly enhances its portability across platforms. Since most computing platforms support C and have compilers capable of running C code, CPython can be compiled and executed on a wide range of systems . This choice of implementation language enables Python to transcend platform barriers, making it a versatile choice for developers needing a consistent environment across different hardware and operating systems .

Organizations might hesitate to transition from Python 2 to Python 3 due to compatibility challenges. Python 2 and Python 3 are not directly compatible, requiring significant modification of code to transition, which is labor-intensive and costly . The risk of introducing new bugs during migration and the resource allocation needed to ensure a seamless transition may discourage organizations, particularly if stable and functional legacy systems are already in place .

Python's status as a free, open-source language significantly contributes to its worldwide adoption and development. It encourages a vast community of developers to contribute to its evolution, leading to the continuous enhancement of its features and the expansion of its libraries . This openness also lowers the barrier to entry for individuals and organizations, promoting its inclusion in educational curricula and professional projects. Ultimately, this model fosters an inclusive ecosystem that supports innovation and adaptability, making Python widely accessible and adopted globally .

You might also like