Python3 Programming Language
Tahani Almanie
CSCI 5448| Fall 2015
https://upload.wikimedia.org/wikipedia/commons/c/c3/Python-logo-notext.svg
Presentation Outline
Python Overview
Python Data Types
Python Control Structures
Python Input\output
Python Functions
Python File Handling
Python Exception Handling
Python Modules
Python Classes
Python vs. Java Examples
Python Useful Tools
Who uses Python? By Tahani Almanie | CSCI 5448
Python Overview
By Tahani Almanie | CSCI 5448
What is Python?
Python is a high-level programming language which is:
Interpreted: Python is processed at runtime by the interpreter.
Interactive: You can use a Python prompt and interact with the interpreter
directly to write your programs.
Object-Oriented: Python supports Object-Oriented technique of programming.
Beginner’s Language: Python is a great language for the beginner-level
programmers and supports the development of a wide range of applications.
By Tahani Almanie | CSCI 5448
History of Python
Python was conceptualized by Guido Van Rossum in the late
1980s.
Rossum published the first version of Python code (0.9.0) in
February 1991 at the CWI (Centrum Wiskunde & Informatica)
in the Netherlands , Amsterdam.
Python is derived from ABC programming language, which is a
general-purpose programming language that had been
developed at the CWI.
Rossum chose the name "Python", since he was a big fan of
Monty Python's Flying Circus.
Python is now maintained by a core development team at the
institute, although Rossum still holds a vital role in directing
its progress. https://en.wikipedia.org/wiki/Guido_van_Rossum#/media/File:Guido_van_Rossum_OSCON_2006.jpg
By Tahani Almanie | CSCI 5448
Python Versions
Release dates for the major and minor versions:
Python 1.0 - January 1994
Python 1.5 - December 31, 1997
Python 1.6 - September 5, 2000
Python 2.0 - October 16, 2000
Python 2.1 - April 17, 2001
Python 2.2 - December 21, 2001
Python 2.3 - July 29, 2003
Python 2.4 - November 30, 2004
Python 2.5 - September 19, 2006
Python 2.6 - October 1, 2008
Python 2.7 - July 3, 2010
By Tahani Almanie | CSCI 5448
Python Versions
Release dates for the major and minor versions:
Python 3.0 - December 3, 2008
Python 3.1 - June 27, 2009
Python 3.2 - February 20, 2011
Python 3.3 - September 29, 2012
Python 3.4 - March 16, 2014
Python 3.5 - September 13, 2015
By Tahani Almanie | CSCI 5448
Key Changes in Python 3.0
Python 2's print statement has been replaced by the print() function.
Old: New:
There is only one integer type left, int.
Some methods such as map() and filter( ) return iterator objects in Python 3
instead of lists in Python 2.
In Python 3, a TypeError is raised as warning if we try to compare unorderable
types. e.g. 1 < ’ ', 0 > None are no longer valid
Python 3 provides Unicode (utf-8) strings while Python 2 has ASCII str( ) types
and separate unicode( ).
A new built-in string formatting method format() replaces the % string
formatting operator.
By Tahani Almanie | CSCI 5448
Key Changes in Python 3.0
In Python 3, we should enclose the exception argument in parentheses.
Old: New:
In Python 3, we have to use the as keyword now in the handling of
exceptions.
Old: New:
The division of two integers returns a float instead of an integer. "//" can
be used to have the "old" behavior.
By Tahani Almanie | CSCI 5448
Python Features
Easy to learn, easy to read and easy to maintain.
Portable: It can run on various hardware platforms and has the same
interface on all platforms.
Extendable: You can add low-level modules to the Python interpreter.
Scalable: Python provides a good structure and support for large programs.
Python has support for an interactive mode of testing and debugging.
Python has a broad standard library cross-platform.
Everything in Python is an object: variables, functions, even code. Every
object has an ID, a type, and a value.
By Tahani Almanie | CSCI 5448
More Features ..
Python provides interfaces to all major commercial databases.
Python supports functional and structured programming methods as well as
OOP.
Python provides very high-level dynamic data types and supports dynamic
type checking.
Python supports GUI applications
Python supports automatic garbage collection.
Python can be easily integrated with C, C++, and Java.
By Tahani Almanie | CSCI 5448
Python Syntax
By Tahani Almanie | CSCI 5448
Basic Syntax
Indentation is used in Python to delimit blocks. The number of spaces
is variable, but all statements within the same block must be
indented the same amount.
The header line for compound statements, such as if, while, def, and
class should be terminated with a colon ( : )
The semicolon ( ; ) is optional at the end of statement. Error!
Printing to the Screen:
Reading Keyboard Input:
Comments
• Single line:
• Multiple lines:
Python files have extension .py
By Tahani Almanie | CSCI 5448
Variables
Python is dynamically typed. You do not need to
declare variables!
The declaration happens automatically when
you assign a value to a variable.
Variables can change type, simply by assigning
them a new value of a different type.
Python allows you to assign a single value to
several variables simultaneously.
You can also assign multiple objects to multiple
variables.
By Tahani Almanie | CSCI 5448
Python Data Types
By Tahani Almanie | CSCI 5448
Numbers
Numbers are Immutable objects in Python that cannot change their values.
There are three built-in data types for numbers in Python3:
• Integer (int)
• Floating-point numbers (float)
• Complex numbers: <real part> + <imaginary part>j (not used much in Python programming)
Common Number Functions
Function Description
int(x) to convert x to an integer
float(x) to convert x to a floating-point number
abs(x) The absolute value of x
cmp(x,y) -1 if x < y, 0 if x == y, or 1 if x > y
exp(x) The exponential of x: ex
log(x) The natural logarithm of x, for x> 0
pow(x,y) The value of x**y
sqrt(x) The square root of x for x > 0
By Tahani Almanie | CSCI 5448
Strings
Python Strings are Immutable objects that cannot change their values.
You can update an existing string by (re)assigning a variable to another string.
Python does not support a character type; these are treated as strings of length one.
Python accepts single ('), double (") and triple (''' or """) quotes to denote string literals.
String indexes starting at 0 in the beginning of the string and working their way from -1
at the end.
By Tahani Almanie | CSCI 5448
Strings
String Formatting
Common String Operators
Assume string variable a holds 'Hello' and variable b holds 'Python’
Operator Description Example
+ Concatenation - Adds values on either side of the operator a + b will give HelloPython
* Repetition - Creates new strings, concatenating multiple copies of a*2 will give HelloHello
the same string
[] Slice - Gives the character from the given index a[1] will give e
a[-1] will give o
[:] Range Slice - Gives the characters from the given range a[1:4] will give ell
in Membership - Returns true if a character exists in the given string ‘H’ in a will give True
By Tahani Almanie | CSCI 5448
Strings
Common String Methods
Method Description
str.count(sub, beg= Counts how many times sub occurs in string or in a substring of string if
0,end=len(str)) starting index beg and ending index end are given.
str.isalpha() Returns True if string has at least 1 character and all characters are
alphanumeric and False otherwise.
str.isdigit() Returns True if string contains only digits and False otherwise.
str.lower() Converts all uppercase letters in string to lowercase.
str.upper() Converts lowercase letters in string to uppercase.
str.replace(old, new) Replaces all occurrences of old in string with new.
str.split(str=‘ ’) Splits string according to delimiter str (space if not provided)
and returns list of substrings.
str.strip() Removes all leading and trailing whitespace of string.
str.title() Returns "titlecased" version of string.
Common String Functions str(x) :to convert x to a string
len(string):gives the total length of the string
By Tahani Almanie | CSCI 5448
Lists
A list in Python is an ordered group of items or elements, and these list elements don't
have to be of the same type.
Python Lists are mutable objects that can change their values.
A list contains items separated by commas and enclosed within square brackets.
List indexes like strings starting at 0 in the beginning of the list and working their way
from -1 at the end.
Similar to strings, Lists operations include slicing ([ ] and [:]) , concatenation (+),
repetition (*), and membership (in).
This example shows how to access, update and delete list elements:
access
slice
update
delete
By Tahani Almanie | CSCI 5448
Lists
Lists can have sublists as elements and these sublists may contain other sublists
as well.
Common List Functions
Function Description
cmp(list1, list2) Compares elements of both lists.
len(list) Gives the total length of the list.
max(list) Returns item from the list with max value.
min(list) Returns item from the list with min value.
list(tuple) Converts a tuple into list.
By Tahani Almanie | CSCI 5448
Lists
Common List Methods
Method Description
list.append(obj) Appends object obj to list
list.insert(index, obj) Inserts object obj into list at offset index
list.count(obj) Returns count of how many times obj occurs in list
list.index(obj) Returns the lowest index in list that obj appears
list.remove(obj) Removes object obj from list
list.reverse() Reverses objects of list in place
list.sort() Sorts objects of list in place
List Comprehensions
Each list comprehension consists of an expression followed by a for clause.
List comprehension
By Tahani Almanie | CSCI 5448
Tuples
Python Tuples are Immutable objects that cannot be changed once they have been
created.
A tuple contains items separated by commas and enclosed in parentheses instead of
square brackets.
access
No update
You can update an existing tuple by (re)assigning a variable to another tuple.
Tuples are faster than lists and protect your data against accidental changes to these data.
The rules for tuple indices are the same as for lists and they have the same operations,
functions as well.
To write a tuple containing a single value, you have to include a comma, even though there
is only one value. e.g. t = (3, )
By Tahani Almanie | CSCI 5448
Dictionary
Python's dictionaries are kind of hash table type which consist of key-value pairs
of unordered elements.
• Keys : must be immutable data types ,usually numbers or strings.
• Values : can be any arbitrary Python object.
Python Dictionaries are mutable objects that can change their values.
A dictionary is enclosed by curly braces ({ }), the items are separated by commas,
and each key is separated from its value by a colon (:).
Dictionary’s values can be assigned and accessed using square braces ([]) with a
key to obtain its value.
By Tahani Almanie | CSCI 5448
Dictionary
This example shows how to access, update and delete dictionary elements:
The output:
By Tahani Almanie | CSCI 5448
Dictionary
Common Dictionary Functions
• cmp(dict1, dict2) : compares elements of both dict.
• len(dict) : gives the total number of (key, value) pairs in the dictionary.
Common Dictionary Methods
Method Description
dict.keys() Returns list of dict's keys
dict.values() Returns list of dict's values
dict.items() Returns a list of dict's (key, value) tuple pairs
dict.get(key, default=None) For key, returns value or default if key not in dict
dict.has_key(key) Returns True if key in dict, False otherwise
dict.update(dict2) Adds dict2's key-values pairs to dict
dict.clear() Removes all elements of dict
By Tahani Almanie | CSCI 5448
Python Control Structures
By Tahani Almanie | CSCI 5448
Conditionals
In Python, True and False are Boolean objects of class 'bool' and they are immutable.
Python assumes any non-zero and non-null values as True, otherwise it is False value.
Python does not provide switch or case statements as in other languages.
Syntax:
if Statement if..else Statement if..elif..else Statement
Example:
By Tahani Almanie | CSCI 5448
Conditionals
Using the conditional expression
Another type of conditional structure in Python, which is very convenient and easy to read.
By Tahani Almanie | CSCI 5448
Loops
The For Loop
The while Loop
By Tahani Almanie | CSCI 5448
Loops
Loop Control Statements
break :Terminates the loop statement and transfers execution to the statement
immediately following the loop.
continue :Causes the loop to skip the remainder of its body and immediately retest its
condition prior to reiterating.
pass :Used when a statement is required syntactically but you do not want any
command or code to execute.
By Tahani Almanie | CSCI 5448
Python Functions
By Tahani Almanie | CSCI 5448
Functions
Function Syntax
Function Arguments
You can call a function by using any of the following types of arguments:
• Required arguments: the arguments passed to the function in correct
positional order.
• Keyword arguments: the function call identifies the arguments by the
parameter names.
• Default arguments: the argument has a default value in the function
declaration used when the value is not provided in the function call.
By Tahani Almanie | CSCI 5448
Functions
• Variable-length arguments: This used when you need to process unspecified additional
arguments. An asterisk (*) is placed before the variable name in the function declaration.
By Tahani Almanie | CSCI 5448
Python File Handling
By Tahani Almanie | CSCI 5448
File Handling
File opening fileObject = open(file_name [, access_mode][, buffering])
Common access modes:
• “r” opens a file for reading only.
• “w” opens a file for writing only. Overwrites the file if the file exists.
Otherwise, it creates a new file.
• “a” opens a file for appending. If the file does not exist, it creates a new file
for writing.
Closing a file fileObject.close()
The close() method flushes any unwritten information and closes the file object.
By Tahani Almanie | CSCI 5448
File Handling
Reading a file fileObject.read([count])
• The read() method reads the whole file at once.
• The readline() method reads one line each time from the file.
• The readlines() method reads all lines from the file in a list.
Writing in a file fileObject.write(string)
The write() method writes any string to an open file.
By Tahani Almanie | CSCI 5448
Python Exception Handling
By Tahani Almanie | CSCI 5448
Exception Handling
Common Exceptions in Python:
NameError - TypeError - IndexError - KeyError - Exception
Exception Handling Syntax:
An empty except statement can catch any exception.
finally clause: always executed before finishing try statements.
By Tahani Almanie | CSCI 5448
Python Modules
By Tahani Almanie | CSCI 5448
Modules
A module is a file consisting of Python code that can define functions, classes and
variables.
A module allows you to organize your code by grouping related code which makes the
code easier to understand and use.
You can use any Python source file as a module by executing an import statement
Python's from statement lets you import specific attributes from a module into the
current namespace.
import * statement can be used to import all names from a module into the current
namespace
By Tahani Almanie | CSCI 5448
Python Object Oriented
By Tahani Almanie | CSCI 5448
Python Classes
Class variable
Class constructor
Output
By Tahani Almanie | CSCI 5448
Python Classes
Built-in class functions
• getattr(obj, name[, default]) : to access the attribute of object.
• hasattr(obj,name) : to check if an attribute exists or not.
• setattr(obj,name,value) : to set an attribute. If attribute does not exist, then it
would be created.
• delattr(obj, name) : to delete an attribute.
Data Hiding You need to name attributes with a double underscore prefix, and those
attributes then are not be directly visible to outsiders.
By Tahani Almanie | CSCI 5448
Class Inheritance
By Tahani Almanie | CSCI 5448
Python vs. Java
Code Examples
By Tahani Almanie | CSCI 5448
Python vs. Java
Hello World
Java
Python
String Operations
Java
Python
By Tahani Almanie | CSCI 5448
Python vs. Java
Collections
Java
Python
By Tahani Almanie | CSCI 5448
Python vs. Java
Class and Inheritance
Java
Python
By Tahani Almanie | CSCI 5448
Python Useful Tools
By Tahani Almanie | CSCI 5448
Useful Tools
Python IDEs
• Vim
• Eclipse with PyDev
• Sublime Text
• Emacs
• Komodo Edit
• PyCharm
By Tahani Almanie | CSCI 5448
Useful Tools
Python Web Frameworks
• Django
• Flask
• Pylons
• Pyramid
• TurboGears
• Web2py
By Tahani Almanie | CSCI 5448
Who Uses Python?
By Tahani Almanie | CSCI 5448
Organizations Use Python
• Web Development :Google, Yahoo
• Games :Battlefield 2, Crystal Space
• Graphics :Walt Disney Feature Animation, Blender 3D
• Science :National Weather Service, NASA, Applied Maths
• Software Development :Nokia, Red Hat, IBM
• Education :University of California-Irvine, SchoolTool
• Government :The USA Central Intelligence Agency (CIA)
By Tahani Almanie | CSCI 5448
References
[1] Python-course.eu, 'Python3 Tutorial: Python Online Course', 2015. [Online]. Available:
http://www.python-course.eu/python3_course.php.
[2] www.tutorialspoint.com, 'Python tutorial', 2015. [Online]. Available:
http://www.tutorialspoint.com/python/index.htm.
[3] Wikipedia, 'History of Python', 2015. [Online]. Available:
https://en.wikipedia.org/wiki/History_of_Python#Version_release_dates.
[4] Docs.python.org, 'What's New In Python 3.0’, 2015. [Online]. Available:
https://docs.python.org/3/whatsnew/3.0.html.
[5] Sebastianraschka.com, 'Python 2.7.x and Python 3.x key differences', 2015. [Online]. Available:
http://sebastianraschka.com/Articles/2014_python_2_3_key_diff.html.
[6] Programcreek.com, 'Java vs. Python: Why Python can be more productive?', 2015. [Online].
Available: http://www.programcreek.com/2012/04/java-vs-python-why-python-can-be-more-
productive/.
By Tahani Almanie | CSCI 5828
References
[7] Stsdas.stsci.edu, 'A Quick Tour of Python', 2015. [Online]. Available:
http://stsdas.stsci.edu/pyraf/python_quick_tour.html.
[8] Lynda.com - A LinkedIn Company, 'Python 3 Essential Training | Lynda.com Training', 2015.
[Online]. Available: http://www.lynda.com/Python-3-tutorials/essential-training/62226-2.html.
[9] Pymbook.readthedocs.org, 'Welcome to Python for you and me — Python for you and me
0.3.alpha1 documentation', 2015. [Online]. Available:
http://pymbook.readthedocs.org/en/latest/index.html.
[10] Code Geekz, '10 Best Python IDE for Developers | Code Geekz', 2014. [Online]. Available:
https://codegeekz.com/best-python-ide-for-developers/.
[11] K. Radhakrishnan, 'Top 10 Python Powered Web Frameworks For Developers',
Toppersworld.com, 2014. [Online]. Available: http://toppersworld.com/top-10-python-powered-web-
frameworks-for-developers/.
[12] Wiki.python.org, 'OrganizationsUsingPython - Python Wiki', 2015. [Online]. Available:
https://wiki.python.org/moin/OrganizationsUsingPython.
By Tahani Almanie | CSCI 5828
Thank You
https://www.python.org/~guido/images/DO6GvRlo.gif
By Tahani Almanie | CSCI 5828