Pythoneers

Report
A Gentle Introduction to
Python
Iraklis Akritas Pipeline TD/Plugin-Tools Programmer Candidate
Presenter Information

Please feel free to email me with any questions as well as connect with me:

Email

LinkedIn

Twitter

Google+

Website
Where does the name Python come
from?
The Burmese Python (Python
molurus bivittatus) is the largest
subspecies of the Indian Python and
one of the six largest snakes in the
world. [Wikipedia]
We wish…
Python – A fun language to learn and use

An important goal of the Python developers is making Python fun to use. This
is reflected in the origin of the name which is derived from the television
series Monty Python's Flying Circus.
Python Creator

Guido van Rossum is a Dutch computer programmer who is best known
as the author of the Python programming language. In the Python
community, Van Rossum is known as a "Benevolent Dictator For Life"
(BDFL), meaning that he continues to oversee the Python development
process, making decisions where necessary. He was employed
by Google until 7 December 2012, where he spent half his time
developing the Python language. In January, Guido will be moving
to Dropbox. [Wikipedia]
“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...”
Python Lingo

A common neologism in the Python community is pythonic, which can have a
wide range of meanings related to program style. To say that code is pythonic
is to say that it uses Python idioms well, that it is natural or shows fluency in
the language, that it conforms with Python's minimalist philosophy and
emphasis on readability. In contrast, code that is difficult to understand or
reads like a rough transcription from another programming language is
called unpythonic.

Users and admirers of Python—most especially those considered
knowledgeable or experienced—are often referred to
as Pythonists, Pythonistas, and Pythoneers.

HINT: When googling how to get something done in python preppend pythonic
way of…
Advice and Resources for Python
newcomers

Python has a lot of free material online, do not rush to buy expensive books.
One of the best books available is Dive into Python.

Code Academy and Mechanical MOOC have great series about learning Python.

Google also offers a Python class.

Python Best Practises – Stackoverflow

When programming or shall I say scripting in Python, ensure that you are
following a valid code formatting standard to the letter. When posting your
code for help in various forums, unformatted Python code normally leads to
complaints about unreadability, you will be instructed to re-format your code
before getting an answer. I highly recommend Google’s style guide or for the
hard-core amongst us you can head to the official PEP(Python enhancement
proposals). As we will see soon, formatting is a big part of Python scripting.

One of my favourites, learn Python in ten minutes.
Python FAQ

Is Python a dead language?



On the contrary – Python user base is actually growing!
Why use Python?

Python is extremely fun to develop in.

Everything can be done with Python.

If something can't be done, you can create an extension for it.

Everything can not only be done, but it can be done fast. For example a program that takes you weeks in C++ might take you a day in Python.

Great for prototyping, and even for usage in a commercial setting.

Because it is a modern, elegant, highest level OO language.

Because it is highly expressive, i.e., you will earn higher productivity.

Because it comes with "batteries included" i.e. libraries for whatever you want.

Because it is well documented and has a well-established and growing community.
Where is Python used?

Everywhere! Both in industry and Academia

Art Middleware – Tools and Plugins

Research

Web Development and Web Applications

Game Development

Windows Applications
Python – Hello World
Really Simple:
Simple:
Python – Hello World

What do we notice?

The interchangeable use of single and double quotes in Python

Where did all the braces go?

Avoid mixing tabs and spaces in the indentation of a given single block, unless you
know what every system that touches your code may do with tabs. Otherwise, what
you see in your editor may not be what Python sees when it counts tabs as a number
of spaces. It's safer to use all tabs or all spaces for each block; how many is up to you.

First of all, you can write the inner block all on one line if you like, therefore not
having to care about indentation at all. The following three versions of an "if"
statement are all valid and do exactly the same thing (output omitted for brevity):
Python - Why not just use braces?

C/C++ code – Any Problems?
The "else" always applies to the nearest "if", unless you use braces. This is an
essential problem in C and C++. Of course, you could resort to always use
braces, no matter what, but that's tiresome and bloats the source code, and it
doesn't prevent you from accidentally obfuscating the code by still having the
wrong indentation. (And that's just a very simple example. In practice, C code
can be much more complex.)
In Python, the above problems can never occur, because indentation levels and
logical block structure are always consistent. The program always does what you
expect when you look at the indentation.
Python – Hello World


Defining functions and using control flow statements

Use of the def keyword and colon

No need for braces when using control flow statements
What are those weird variables that have two leading and ending underscores
such as __name__ and what is the use of __main__?

“rather than devising a new syntax for special kinds of class methods (such as
initializers and destructors), I decided that these features could be handled by
simply requiring the user to implement methods with special names such as
__init__, __del__, and so forth. This naming convention was taken from C where
identifiers starting with underscores are reserved by the compiler and often have
special meaning (e.g., macros such as __FILE__ in the C preprocessor).”

The if __name__ == "__main__": ... trick exists in Python so that our Python files
can act as either reusable modules, or as standalone programs. -- [Demo 5]
Python Versions

Please note that Python has different versions:

Newer versions add new functionality but many times also modify existing
functionality, beware of the changes! You may be unpleasantly surprised that a
function you used to use in the past takes additional or fewer arguments or does
not require brackets etc…

Current stable version is Python 2.7.3

Current development version is Python 3.3.0

Massive discussion amongst the community about moving to Python 3 or staying
with 2.

HINT: The virtualenv kit provides the ability to create virtual Python environments
that do not interfere with either each other, or the main Python installation.
Python Variables

Python uses hash # for comments

Dynamic typing


In Java, C++, and other statically typed languages, you must specify the data type of the function return value and each function
argument. On the other hand, Python is a dynamically typed language. In Python you never have to explicitly specify the data type of
anything. Based on what value you assign, Python will keep track of the data type internally.

Int

Float

Strings

Lists - like one-dimensional arrays

Tuples

Dictionaries - associative arrays

Booleans and None

Decimal and set types are also available
Mutable vs Unmutable

The value of some objects can change. Objects whose value can change are said to be mutable; objects whose value is unchangeable once
they are created are called immutable.

An object’s mutability is determined by its type; for instance, numbers, strings and tuples are immutable, while dictionaries and lists are
mutable.
Python – Integers and floats

Python will *always convert integer variables to floats during.

A perfect time to talk about casting – any suggestions of how it is done?

Funny moment [discovered yesterday ]

Remember when I was talking about Python different versions? Well when I was
trying to divide two integers together I was always getting a float result! Why?

“You need to know at least that the math functionality is changing, even if you
don't care as much about the actual implementation. Many programmers recognize
that this is one of the most controversial updates to Python so far.”

What is "true division" you ask? It means that even if with a pair of integer
operands, the result is a floating-point value instead of a truncated integer result.
Python - Strings

str class

String functions

String concatenation
Python - Lists

List functionality

Use for homogenous collections

Mutable - that is, you can delete or add elements, or change the value of any of the elements inside
the list.

Lists uses [] notation in Python

Lists cannot be used in certain contexts. For example, you can't use a list as the key in a dictionary.

List slicing/stepping

How do we go about retrieving list members in popular languages such as C++ and Java? Last, first, first five,
last six, reverse etc?
From simple all element printing
To…
Python - Tuples

Use for heterogeneous collections.

Similar to what you'd use structs for in C/C++

Immutable - Once you have assembled a tuple, you cannot add or delete elements
or change the value of an element inside the tuple.

You can't add elements to a tuple. Tuples have no append or extend method.

You can't remove elements from a tuple. Tuples have no remove or pop method.

You can't find elements in a tuple. Tuples have no index method.

You can, however, use in to see if an element exists in the tuple.

Tuples use the () notation in Python

When shall I use them?

Tuples are faster than lists. If you're defining a constant set of values and all you're ever
going to do with it is iterate through it, use a tuple instead of a list.
Python - Dictionaries

Python dictionaries are like hash tables

Dictionaries use the {} notation in Python

Good alternative for switch statements

Capabilities:

Ability to iterate over keys or values.

Ability to add key-value pairs dynamically.

Look-up by key.
Python – Booleans - None

Python uses True and False for bool operations. Please note the capitalized
first letter.

None. Basically, the data type means non existent, not known or empty. Use
for error checking etc
Python – Control Flow Statements

If/else

Parentheses are not needed around the condition. Use parentheses to group subexpressions and control order of evaluation when the natural operator precedence
is not what you want.

For loop

While loop
Python – Functions

As mentioned before functions in Python use the def keyword.

Remember the indentation rules and the colon after the parenthesis.

Python functions do not need to specify return types, if you need to return
one or more values (data structure) then just use the return keyword.

Python functions do not specify parameter types.

Depending on who will use the program you may have to validate input
parameters.

Default parameters -> non-default arguments come before default arguments

We will briefly revisit functions in a moment.
Python - Classes

A brief demo about classes

Python encapsulation


Many Python users don't feel the need for private variable. Some
consider information hiding to be unpythonic, in that it suggests that the class in
question contains ill-planned internals
Use of _ for methods, variables
Python – Few of my favourite tricks

Comparison

Ternary operator

Python module and class information

Power of operator
A taste of advanced topics…

List comprehensions

Lambdas
How to get started?

Install Python and use the guide to set it up

Use one of the available learning resources mentioned in these slides

Get yourself a nice IDE or a text editor



Text Editors

Sublime Text

Notepad++
IDEs

Eclipse

PyCharm

Wing
Start Coding!
Summary

Python is a flexible and versatile language to use

Python has a lot of hidden gems, I am amazed that every time I sit down to code in Python I encounter
something new. Angry about the lack of braces? How about from __future__ import braces? [discovered last
night]

How many people think I had to install Python on the machine today to show you the demos?

Python usage and community is rapidly growing. Community is also as fun and friendly as Python itself ->
comments about the ability to import braces

As we are moving towards the cloud era, web languages are useful to know

Python has countless sources online to help you learn, making it tantalizingly hard to resist!
Thank you for your time and attention
Q&A

Demo Plugin – How do I use Python?

Any questions or remarks?

similar documents