0% found this document useful (0 votes)
121 views

Python 1

The document provides a brief history of the development of computers from ancient counting tools like the abacus to modern electronic computers. It traces the evolution from mechanical calculators and punched card data processing in the 1800s-1900s to the first general purpose programmable computers in the 1940s like the Z3 and Colossus. The development of stored program architectures and transistors allowed for smaller commercial computers in the 1950s led by UNIVAC and IBM. Integrated circuits enabled third generation systems and personal computers in the 1960s-1970s.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
121 views

Python 1

The document provides a brief history of the development of computers from ancient counting tools like the abacus to modern electronic computers. It traces the evolution from mechanical calculators and punched card data processing in the 1800s-1900s to the first general purpose programmable computers in the 1940s like the Z3 and Colossus. The development of stored program architectures and transistors allowed for smaller commercial computers in the 1950s led by UNIVAC and IBM. Integrated circuits enabled third generation systems and personal computers in the 1960s-1970s.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 118

Computer Programming

http://profs.info.uaic.ro/~grigoras/Geo
[email protected]
Why Python?
Teaching introductory GIS programming to geographers
using an open source Python approach (
Journal of Geography in Higher EducationVolume 40, 2016 -
Issue 1)
! Computer programming is not commonly taught to
geographers as a part of geographic information system (GIS)
courses, but the advent of NeoGeography, big data and open
GIS means that programming skills are becoming more
important.
! These laboratories use core spatial concepts that are relevant
for all areas of geographic study, and use an open source
Python approach that has wider logistical and pedagogical
benefits.

2
Why Python?
Python for ArcGIS (
http://resources.arcgis.com/en/communities/python/ )

Free GIS Programming Tutorials: Learn How to Code


(http://gisgeography.com/free-gis-programming-tutorials/ )
! Python has been a standard language in GIS because Esri and
open source tend to gravitate toward it. Of all GIS
programming languages, many consider it to be the front-
runner.
Python for ArcGIS (
http://desktop.arcgis.com/en/analytics/python/ )
! Perform spatial analysis, data management, data conversion,
and map automation and production using Python with ArcGIS
for Desktop or ArcGIS for Server.

3
Bibliography

https://www.python.org/
https://wiki.python.org/moin/BeginnersGuide
https://docs.python.org/2/tutorial/
https://www.python.org/downloads/
https://wiki.python.org/moin/IntroductoryBooks
http://it-ebooks.info/read/304/
https://hkn.eecs.berkeley.edu/~dyoo/python/idle_intro/
index.html
https://docs.python.org/2/library/idle.html
https://www.tutorialspoint.com/python3/

4
Evaluare

50% Laborator
50% Test scris

5
Short History - Computers
Ancient era: Abacus
Abacus:

7
New calculating tools
John Napier's calculating tables from around 1680:

8
Mechanical calculators
Pascal's calculator. Pascal invented his machine in 1642.
He built twenty of these machines (called Pascal's Calculator
or Pascaline) in the following ten years.

9
Punched card data
processing
1801: Joseph-Marie Jacquard developed a loom in which the
pattern being woven was controlled by punched cards.
1880: the American Herman Hollerith invented data storage
on punched cards that could then be read by a machine
1911: Computing Tabulating Recording Company (CTR)
formed by the merger of the Tabulating Machine Company
and three other companies. In 1924 renamed International
Business Machines (IBM).
1920: electro-mechanical tabulating machines could add,
subtract and print accumulated totals.
1935: IBM punched card systems were used to process
records of 26 million workers.

10
First general-purpose
computing device
Charles Babbage, (26 December 1791 18 October 1871)
was an English polymath. He was a mathematician,
philosopher, inventor and mechanical engineer, who is best
remembered now for originating the concept of a
programmable computer.
1822: the difference engine, made to compute values of
polynomial functions.

11
First general-purpose
computing device
1843: Babbage worked to design a more complex machine
called the Analytical Engine
Ada Lovelace - the first computer programmer - is credited
with developing an algorithm for the Analytical Engine to
calculate a sequence of Bernoulli numbers.

12
Analog computers
1872: The first modern analog computer was a tide-
predicting machine, invented by Sir William Thomson, later
Lord Kelvin
1927: the differential analyzer built by H. L. Hazen and
Vannevar Bush at MIT

13
Electromechanical
computers
1939: German engineer Konrad Zuse created Z2 one of the
earliest examples of an electromechanical relay computer.
1941: Zuse followed his earlier machine up with the Z3, the
world's first working electromechanical programmable, fully
automatic digital computer.

14
Electronic data processing
1942: John Vincent Atanasoff and Clifford E. Berry of Iowa
State University developed and tested the AtanasoffBerry
Computer (ABC)
This design was also all-electronic, and used about 300
vacuum tubes, with capacitors fixed in a mechanically
rotating drum for memory

15
The electronic
programmable computer
Colossus was the world's first electronic digital computer
that was programmable. The Colossus computers were
developed for British codebreakers during World War II to
help in the cryptanalysis of the Lorenz cipher
Colossus Mark 1, was shown to be working in December
1943 and was operational at Bletchley Park by 5 February
1944. An improved Colossus Mark 2 that used shift registers
to quintuple the speed, first worked on 1 June 1944, just in
time for the Normandy Landings. Ten Colossi were in use by
the end of the war.
A functioning replica of a Colossus computer was completed
in 2007 and is on display at The National Museum of
Computing at Bletchley Park.
16
Colossus rebuild

17
The stored-program
computer
The theoretical basis for the stored-program computer had
been laid by Alan Turing in his 1936 paper. In 1945 Turing
joined the National Physical Laboratory and began work on
developing an electronic stored-program digital computer.
His 1945 report Proposed Electronic Calculator was the first
specification for such a device.

18
The stored-program
computer
the Manchester Mark 1 at the University of Manchester.
Work began in August 1948, and the first version was
operational by April 1949
the EDSAC (Electronic Delay Storage Automatic Calculator)
designed and constructed by Maurice Wilkes and his team at
the University of Cambridge Mathematical Laboratory in
1949.
ENIAC (Electronic Numerical Integrator And Computer)
inventors John Mauchly and J. Presper Eckert proposed the
EDVAC's (Electronic Discrete Variable Automatic Computer)
construction in August 1944, and design work for the
EDVAC commenced at the University of Pennsylvania's
Moore School of Electrical Engineering, before the ENIAC
was fully operational.

19
Commercial computers
The first commercial computer was the Ferranti Mark 1,
built by Ferranti and delivered to the University of
Manchester in February 1951
In June 1951, the UNIVAC I (Universal Automatic Computer)
was delivered to the U.S. Census Bureau. Remington Rand
sold 46 machines at more than US$1 million each
($9.09 million as of 2014)
IBM introduced a smaller, more affordable computer in 1954
that proved very popular. The IBM 650 weighed over
900 kg, the attached power supply weighed around 1350 kg
and both were held in separate cabinets of roughly 1.5
meters by 0.9 meters by 1.8 meters. It cost US$500,000
($4.39 million as of 2014)
20
In 1951, British scientist Maurice Wilkes developed the
concept of microprogramming
By 1954, magnetic core memory was rapidly displacing most
other forms of temporary storage
IBM introduced the first disk storage unit, the IBM 350
RAMAC (Random Access Method of Accounting and Control)
in 1956.
From 1955 onwards transistors replaced vacuum tubes in
computer designs
A second generation computer, the IBM 1401, captured
about one third of the world market. IBM installed more
than ten thousand 1401s between 1960 and 1964.

21
Post-1960: third generation
Integrated Circuit: Kilby (Texas Instruments) recorded his
initial ideas concerning the integrated circuit in July 1958,
successfully demonstrating the first working integrated
example on 12 September 1958
IBM System/360 in 1964. It was the first family of
computers designed to cover the complete range of
applications, from small to large, both commercial and
scientific.
April 1975 at the Hannover Fair, Olivetti presented the
P6060, the world's first personal computer with built-in
floppy disk

22
Minicomputers

The term "minicomputer" developed in the 1960s to


describe the smaller computers that became possible with
the use of transistors and core memory technologies,
minimal instructions sets and less expensive peripherals

Digital Equipment Corporation's (DEC) 12-bit PDP-8, which


was built using discrete transistors and cost from US$16,000
upwards when launched in 1964

23
PC
An early use of the term "personal computer" appeared in a
November 3, 1962, New York Times article reporting John W.
Mauchly's vision of future computing as detailed at a recent
meeting of the American Institute of Industrial Engineers.
Mauchly stated, "There is no reason to suppose the average boy
or girl cannot be master of a personal computer
Six years later a manufacturer took the risk of referring to their
product this way, when Hewlett-Packard advertised their
"Powerful Computing Genie" as "The New Hewlett-Packard 9100A
personal computer
Over the next seven years the phrase had gained enough
recognition that when Byte magazine published its first edition, it
referred to its readers as "[in] the personal computing field and
Creative Computing defined the personal computer as a "non-
(time)shared system containing sufficient processing power and
storage capabilities to satisfy the needs of an individual user.

24
PC - The beginnings
Simon was a project developed by Edmund Berkeley and
presented in a thirteen articles series issued in Radio-
Electronics magazine, from October 1950. The Simon
represented the first experience of building an automatic
simple digital computer, for educational purposes. In 1950,
it was sold for US$600
The IBM 610 was designed between 1948 and 1957 by John
Lentz at the Watson Lab at Columbia University as the
Personal Automatic Computer (PAC) and announced by IBM
as the 610 Auto-Point in 1957. With a price tag of $55,000,
only 180 units were produced.

25
PC - The beginnings
The Programma 101 was the first commercially produced
"desktop computer designed and produced by the Italian
company Olivetti and presented at the 1965 New York
World's Fair. Over 44,000 units were sold worldwide; in the
US its cost at launch was $3,200.
The Soviet MIR series of computers was developed from
1965 to 1969 in a group headed by Victor Glushkov.
The Kenbak-1 is considered by the Computer History
Museum to be the world's first personal computer. It was
designed and invented by John Blankenbaker of Kenbak
Corporation in 1970, and was first sold in early 1971. The
system first sold for US$750.

26
PC - The beginnings
The Xerox Alto, developed at Xerox PARC in 1973, was the
first computer to use a mouse, the desktop metaphor, and a
graphical user interface (GUI), concepts first introduced by
Douglas Engelbart while at International. It was the first
example of what would today be recognized as a complete
personal computer.

27
PC - The beginnings
Three machines, the Apple II, PET 2001 and TRS-80 were
all released in 1977, eventually selling millions of machines.

28
The IBM PC
IBM responded to the success of the Apple II with the IBM
PC, released in August, 1981.

29
Apple Lisa and Macintosh
In 1983 Apple Computer introduced the first mass-marketed
microcomputer with a graphical user interface, the Lisa.
Apple launched the Macintosh in 1984, the first successful
mass-market mouse-driven computer with a graphical user
interface or 'WIMP' (Windows, Icons, Menus, and Pointers).

Based on the Motorola 68000


microprocessor, the Macintosh
included many of the Lisa's features
at a price of US$2,495.

30
PC clones
In 1985, the Atari ST, also based on the Motorola 68000
microprocessor, was introduced with the first color GUI in
the Atari TOS.

In 1986, the 32-bit Intel


80386 microprocessor
was released, and the
first '386-based PC-
compatible was the
Compaq Deskpro 386.

31
1990s and 2000s
In the early 1990s, the CD-ROM became an industry
standard, and by the mid-1990s one was built into almost
all desktop computers, and towards the end of the 1990s, in
laptops as well.
In 1994, Apple introduced the Power Macintosh series of
high-end professional desktop computers for desktop
publishing and graphic designers.
In the late 1990s CD-R and later, rewritable CD-RW drives
were included instead of standard CD ROM drives
Since the late 1990s, many more personal computers
started shipping that included USB (Universal Serial Bus)
ports for easy plug and play connectivity to devices

32
1990s and 2000s
In 2001, 125 million personal computers were shipped in
comparison to 48,000 in 1977
More than 500 million PCs were in use in 2002 and one
billion personal computers had been sold worldwide since
mid-1970s till this time
About 81.5 percent of PCs shipped had been desktop
computers, 16.4 percent laptops and 2.1 percent servers
United States had received 38.8 percent (394 million) of the
computers shipped, Europe 25 percent and 11.7 percent
had gone to Asia-Pacific region, the fastest-growing market
as of 2002

33
Programming Languages

Short History
Early history
1842-1843: Ada Lovelace translated the memoir of Italian
mathematician Luigi Menabrea about Charles Babbage's
newest proposed machine, the Analytical Engine.

1880: Herman Hollerith realized that he could encode


information on punch cards

Alonzo Church was able to express the lambda calculus in a


formulaic way.

The Turing machine was an abstraction of the operation of


a tape-marking machine
35
First programming
languages
An early high-level programming language to be designed
for a computer was Plankalkl, developed for the German
Z3 by Konrad Zuse between 1943 and 1945
John Mauchly's Short Code, proposed in 1949, was one of
the first high-level languages ever developed for an
electronic computer.
The first code and compiler was developed in 1952 for the
Mark 1 computer at the University of Manchester and is
considered to be the first compiled high-level programming
language
The second autocode was developed for the Mark 1 by R. A.
Brooker in 1954 and was called the "Mark 1 Autocode".

36
First programming
languages
FLOW-MATIC, Grace Hopper in the US. It was developed for
the UNIVAC I at Remington Rand during the period from
1955 until 1959. Flow-Matic was a major influence in the
design of COBOL(1958)
The language Fortran was developed at IBM in the mid
1950s, and became the first widely used high-level general
purpose programming language.
LISP (1958), invented by John McCarthy
ALGOL 60 Report (the "ALGOrithmic Language"), ALGOL 68
1960 - Simula, the first language designed to support
object-oriented programming.

37
Fundamental paradigms
1960 - Simula, object-oriented programming.
1968 Logo
1969 - B (forerunner to C)
1970 Pascal
1970 Forth
1972 C, systems programming language
1972 Smalltalk, complete object-oriented language.
1972 Prolog - first logic programming language
1973 ML - functional programming language
1975 Scheme
1978 - SQL (a query language, later extended)

38
Modules, Performance
1980 - C++ (as C with classes, renamed in 1983)
1983 Ada
1984 - Common Lisp
1984 - MATLAB
1985 Eiffel
1986 - Objective-C
1986 Erlang
1987 Perl
1988 Tcl
1988 Mathematica
1989 - FL (Backus)

39
1990s: the Internet age
1990 Haskell
1991 Python
1991 - Visual Basic
1993 Ruby
1993 Lua
1994 - CLOS (part of ANSI Common Lisp)
1995 - Ada 95
1995 Java
1995 - Delphi (Object Pascal)
1995 JavaScript
1995 PHP
1996 WebDNA
1997 Rebol
1999 D

40
Current trends
Increasing support for functional programming
Constructs to support concurrent and distributed
programming
Component-oriented software development
Metaprogramming, reflection or access to the abstract
syntax tree
Integration with databases, including XML and relational
databases
XML for graphical interface (XUL, XAML)
Open source as a developmental philosophy for languages,
including the GNU compiler collection and recent languages
such as Python, Ruby, and Squeak.
AOP or Aspect Oriented Programming
41
Current trends
2000 ActionScript
2001 - C#
2001 - Visual Basic .NET
2002 - F#
2003 - Groovy
2003 - Scala
2007 Clojure
2009 Go
2011 Dar
2012 Rust
2014 Swift
http://en.wikipedia.org/wiki/
List_of_programming_languages
42
Python!
Created in 1991 by Guido van Rossum
! I chose Python as a working title for the project, being in a
slightly irreverent mood (and a big fan of
Monty Python's Flying Circus).
https://gvanrossum.github.io
! I am the author of the Python programming language.
! In January 2013 I joined Dropbox. I work on various Dropbox
products and have 50% for my Python work, no strings
attached. Previously, I have worked for Google, Elemental
Security, Zope Corporation, BeOpen.com, CNRI, CWI, and
SARA.

43
Python!
Useful as a scripting language
! script: A small program meant for one-time use
! Targeted towards small to medium sized projects

Used by:
! Google, Yahoo!, Youtube
! Many Linux distributions
! Games and apps (e.g. Eve Online)

44
Python!
Python is a multi-paradigm programming language:
! object-oriented programming and structured programming are
fully supported
! there are a number of language features which support
functional programming and aspect-oriented programming
(including by metaprogramming and by magic methods).
! many other paradigms are supported using extensions,
including design by contract and logic programming.
Python uses dynamic typing
An important feature of Python is dynamic name resolution
(late binding), which binds method and variable names
during program execution.

45
Python!

The core philosophy of the language is summarized by the


aphorisms :
! Beautiful is better than ugly
! Explicit is better than implicit
! Simple is better than complex
! Complex is better than complicated
! Readability counts

46
Installing Python
https://www.python.org/downloads/

Windows: Mac OS X:
Download Python from http:// Python is already installed.
www.python.org Open a terminal and run python
Install Python. or run Idle from Finder.
Run Idle from the Start Menu.
Linux:
Chances are you already have
Python installed. To check, run
python from the terminal.
If not, install from your
distribution's package system.
47
Interpreted Languages
interpreted
! Not compiled like Java
! Code is written and then directly executed by an interpreter
! Type commands into interpreter and see immediate results

Java: Runtime
Code Compiler Computer
Environment

Python: Code Interpreter Computer

48
The Python Interpreter
Allows you to type commands one-at-a-time and see results
A great way to explore Python's syntax
! Repeat previous command: Alt+P

! https://hkn.eecs.berkeley.edu/~dyoo/python/idle_intro/
index.html 49
Our First Python Program

Python does not have a main method like Java


! The program's main code is just written directly in the file
Python statements do not end with semicolons

hello.py
1 print("Hello, world!")

50
Python Identifiers

A Python identifier is a name used to identify a variable,


function, class, module or other object. An identifier starts
with a letter A to Z or a to z or an underscore (_) followed
by zero or more letters, underscores and digits (0 to 9).

Python is a case sensitive programming language. Thus,


Manpower and manpower are two different identifiers in
Python.

51
Naming conventions
Class names start with an uppercase letter. All other
identifiers start with a lowercase letter.

Starting an identifier with a single leading


underscore indicates that the identifier is private.

Starting an identifier with two leading underscores


indicates a strongly private identifier.

If the identifier also ends with two trailing


underscores, the identifier is a language-defined
special name.
52
Reserved Words
and exec not

as finally or

assert for pass


break from print
class global raise
continue if return
def import try
del in del
elif is with
else lambda yield
except
53
Lines and Indentation
Python doesn't use braces({}) to indicate blocks of code for
class and function definitions or flow control. Blocks of code
are denoted by line indentation, which is rigidly enforced.
The number of spaces in the indentation is variable, but all
statements within the block must be indented the same
amount.
Example:
if True:!
print ("True")!
else:!
print ("False")

54
An error

if True:!
print ("Answer")!
print ("True")!
else:!
print "(Answer")!
print ("False")

55
Multi-Line Statements
Statements in Python typically end with a new line. Python
does, however, allow the use of the line continuation
character (\) to denote that the line should continue. For
example:
total = item_one + \!
item_two + \!
item_three!
Statements contained within the [], {}, or () brackets do not
need to use the line continuation character. For example:

days = ['Monday', 'Tuesday', 'Wednesday',


'Thursday', 'Friday']
56
Quotation in Python
Python accepts single ('), double (") and triple (''' or """)
quotes to denote string literals, as long as the same type of
quote starts and ends the string. The triple quotes are used
to span the string across multiple lines. For example, all the
following are legal:

word = 'word!
sentence = "This is a sentence.!
paragraph = """This is a paragraph. It is
made up of multiple lines and sentences."""

57
Comments in Python
A hash sign (#) that is not inside a string literal begins a
comment. All characters after the # and up to the end of
the physical line are part of the comment and the Python
interpreter ignores them.

# First comment!
print ("Hello, Python!") # second comment!
name = "Madisetti" # This is again comment

58
Waiting for the User
The following line of the program displays the prompt, the
statement saying Press the enter key to exit, and waits for
the user to take action

input("\n\nPress the enter key to exit.")!

Here, "\n\n" is used to create two new lines before


displaying the actual line. Once the user presses the key,
the program ends.
Press the enter key to exit.!
''!
>>>!
59
Assigning Values to Variables
Python variables do not need explicit declaration to reserve
memory space. The declaration happens automatically when
you assign a value to a variable. The equal sign (=) is used
to assign values to variables.
The operand to the left of the = operator is the name of the
variable and the operand to the right of the = operator is
the value stored in the variable.
counter = 100 # An integer assignment!
miles = 1000.0 # A floating point!
name = "John" # A string!
print (counter)!
print (miles)!
print (name)
60
Multiple Assignment
Python allows you to assign a single value to several
variables simultaneously. For example:

a = b = c = 1!

a, b, c = 1, 2, "john!
Variables can change (they are variable!)
x = 1.343 !
X = 2 !
x = 10 + 4!
x = -3!

61
Standard Data Types
The data stored in memory can be of many types. For
example, a person's age is stored as a numeric value and
his or her address is stored as alphanumeric characters.

Python has five standard data types:


! Numbers
! String
! List
! Tuple
! Dictionary

62
Python Numbers
Number data types store numeric values. Number objects
are created when you assign a value to them. For example:

var1 = 1!
var2 = 10!
You can also delete the reference to a number object by
using the del statement. The syntax of the del statement is:
del var1[,var2[,var3[....,varN]]]]!

del var!
del var_a, var_b

63
Python Numbers
Python supports four different numerical types:
! int (signed integers)
! float (floating point real values)
! complex (complex numbers)

int float complex


10 0.0 3.14j
100 15.20 45.j
-786 -21.9 9.322e-36j
080 32.3+e18 .876j
-0490 -90. -.6545+0J

64
Python Strings
Strings in Python are identified as a contiguous set of
characters represented in the quotation marks. Python
allows for either pairs of single or double quotes.
Subsets of strings can be taken using the slice operator ([ ]
and [:] ) with indexes starting at 0 in the beginning of the
string

str = 'Hello World!!


print (str) # Prints complete string!
print (str[0]) # Prints first character of the string!
print (str[2:5]) # Prints characters from 3rd to 5th!
print (str[2:]) # Prints string from 3rd character!
print (str * 2) # Prints string two times!
print (str + "TEST") # Prints concatenated string

65
Python Lists

A list contains items separated by commas and enclosed


within square brackets ([]). To some extent, lists are similar
to arrays in C. One difference between them is that all the
items belonging to a list can be of different data type.

The values stored in a list can be accessed using the slice


operator ([ ] and [:]) with indexes starting at 0 in the
beginning of the list

The plus (+) sign is the list concatenation operator, and the
asterisk (*) is the repetition operator.

66
Python Lists

list = [ 'abcd', 786 , 2.23, 'john', 70.2 ]!


tinylist = [123, 'john']!
print (list) # Prints complete list!
print (list[0]) # Prints first element of the list!
print (list[1:3]) # Prints elements starting from
2nd till 3rd : [786, 2.23]!
print (list[2:]) # Prints elements starting from
3rd element: [2.23, 'john', 70.200000000000003]!
print (tinylist * 2) # Prints list two times!
print (list + tinylist) # Prints concatenated lists

67
Python Tuples
A tuple is another sequence data type that is similar to the
list. A tuple consists of a number of values separated by
commas. Unlike lists, however, tuples are enclosed within
parentheses.

The main differences between lists and tuples are: Lists are
enclosed in brackets ( [ ] ) and their elements and size can
be changed, while tuples are enclosed in parentheses ( ( ) )
and cannot be updated.

Tuples can be thought of as read-only lists.

68
tuple = ( 'abcd', 786 , 2.23, 'john', 70.2 )!
tinytuple = (123, 'john')!
print (tuple) # Prints complete tuple!
print (tuple[0]) # Prints first element of
the tuple!
print (tuple[1:3]) # Prints elements starting
from 2nd till 3rd: (786, 2.23) !
print (tuple[2:]) # Prints elements starting
from 3rd element!
print (tinytuple * 2) # Prints tuple two
times!
print (tuple + tinytuple) # Prints
concatenated tuple

69
>>> tuple = ( 'abcd', 786 , 2.23, 'john', 70.2 )!
>>> list = [ 'abcd', 786 , 2.23, 'john', 70.2 ]!
>>> list[2] = 1000!
>>> list!
['abcd', 786, 1000, 'john', 70.2]!
>>> tuple[2] = 1000!
Traceback (most recent call last):!
File "<pyshell#13>", line 1, in <module>!
tuple[2] = 1000!
TypeError: 'tuple' object does not support item
assignment!

70
Python Dictionary
Python's dictionaries consist of key-value pairs. A dictionary
key can be almost any Python type, but are usually numbers
or strings. Values, on the other hand, can be any arbitrary
Python object.

Dictionaries are enclosed by curly braces ({ }) and values


can be assigned and accessed using square braces ([]).

Dictionaries have no concept of order among elements. It is


incorrect to say that the elements are "out of order"; they
are simply unordered.

71
Python Dictionary
dict = {}!
dict['one'] = "This is one!
dict[2] = "This is two!
tinydict = {'name': 'john','code':6734, 'dept:'sales'}!
print (dict['one']) # Prints value for 'one' key!
print (dict[2]) # Prints value for 2 key!
print (tinydict) # Prints complete dictionary!
print (tinydict.keys()) # Prints all the keys!
print (tinydict.values()) # Prints all the values!

This is one!
This is two!
{'dept': 'sales', 'code': 6734, 'name': 'john'}!
['dept', 'code', 'name']!
['sales', 6734, 'john']

72
Data Type Conversion
To convert between types, you simply use the type name as
a function.

Function Description
int(x [,base]) Converts x to an integer. Base specifies the base
if x is a string.
float(x) Converts x to a floating-point number.
complex(real [,imag]) Creates a complex number.
str(x) Converts object x to a string representation.
str(x) Converts object x to a string representation.
repr(x) Converts object x to an expression string.
eval(str) Evaluates a string and returns an object.
tuple(s) Converts s to a tuple.
list(s) Converts s to a list.

73
Data Type Conversion
There are several built-in functions to perform conversion from
one data type to another. These functions return a new object
representing the converted value.

Function Description
set(s) Converts s to a set.
dict(d) Creates a dictionary. d must be a sequence of
(key,value) tuples.
frozenset(s) Converts s to a frozen set.
chr(x) Converts an integer to a character.
unichr(x) Converts an integer to a Unicode character.
ord(x) Converts a single character to its integer
value.
hex(x) Converts an integer to a hexadecimal string.
oct(x) Converts an integer to an octal string.

74
Types of Operator
Python language supports the following types of operators:

! Arithmetic Operators
! Comparison (Relational) Operators
! Assignment Operators
! Logical Operators
! Bitwise Operators
! Membership Operators
! Identity Operators

75
Python Arithmetic Operators
Assume variable a holds 10 and variable b holds 21:

Operator Description Example


+ Addition Adds values on either side a + b = 31
- Subtraction Subtracts right operand from left a b = -11
* Multiplication Multiplies values on either side a * b = 210
/ Division Divides left hand right hand b / a = 2.1
% Modulus Divides and returns remainder b%a=1
** Exponent Performs exponential (power) a**b =10^2
// Floor Division The result is the quotient 9//2 = 4
9.0//2.0 = 4.0
-11//3 = -4
-11.0//3 = -4.0

76
Python Comparison Operators
These operators compare the values on either sides of them
and decide the relation among them. They are also called
Relational operators.

Assume variable a holds 10 and variable b holds 20:


! (a == b) is not true.
! (a!= b) is true.
! (a > b) is not true.
! (a < b) is true.
! (a >= b) is not true.
! (a <= b) is true.

77
Python Assignment Operators

c =a+b assigns value of a + b into c


c += a is equivalent to c = c + a
c -= a is equivalent to c = c a
c *= a is equivalent to c = c * a
c /= a is equivalent to c = c / a
c %= a is equivalent to c = c % a
c **= a is equivalent to c = c ** a
c //= a is equivalent to c = c // a

78
Python Bitwise Operators
Bitwise operator works on bits and performs bit by bit operation.
>>> a = 60
>>> b = 13
>>> bin(a)
'0b111100'
>>> bin(b)
'0b1101
! a = 0011 1100 b = 0000 1101

(a & b) = 12 (means 0000 1100)


(a|b) = 61 (means 0011 1101)
(a ^ b) = 49 (means 0011 0001)
(~a ) = -61 (means 1100 0011 in 2's complement
form due to a signed binary number.
a << 2 = 240 (means 1111 0000)
a >> 2 = 15 (means 0000 1111)

79
Python Logical Operators

>>> a = True
>>> b = False
>>> a and b
False
>>> a or b
True
>>> not a
False

80
Python Membership Operators
Pythons membership operators test for membership in a
sequence, such as strings, lists, or tuples. There are two
membership operators:
! in Evaluates to true if it finds a variable in the specified
sequence and false otherwise.
! not in Evaluates to true if it does not finds a variable in the
specified sequence and false otherwise.

>>> list = [1, 2, 3, 4, 5 ]


>>> a=10
>>> b=20
>>> a in list
False
>>> b not in list
True

81
Python Identity Operators
Identity operators compare the memory locations of two
objects. There are two Identity operators:
! is Evaluates to true if the variables on either side of the
operator point to the same object and false otherwise.
! is not Evaluates to false if the variables on either side of the
operator point to the same object and true otherwise.

>>> a = 20 >>> c = 30
>>> b = 20 >>> id(c)
>>> id(a) 4297624864
4297624544 >>> a is b
>>> id(b) True
4297624544 >>> a is c
False
82
Python Operators Precedence
Operator Description
** Exponentiation (raise to the power)
~+- Complement, unary plus and minus
* / % // Multiply, divide, modulo and floor division
+- Addition and subtraction
>> << Right and left bitwise shift
& Bitwise 'AND'
^| Bitwise exclusive `OR' and regular `OR'
<= < > >= Comparison operators
<> == != Equality operators
= %= /= //= Assignment operators
-= += *= **=
is is not Identity operators
in not in Membership operators
not or and Logical operators

83
Using Python as a Calculator

>>> 2+2
4
>>> 50 - 5*6
20
>>> (50 - 5*6) / 4
5.0
>>> 8 / 5 # division always returns a floating point number
1.6

84
Using Python as a Calculator
>>> 17 / 3 # classic division returns a float
5.666666666666667
>>>
>>> 17 // 3 # floor division discards the fractional part
5
>>> 17 % 3 # the % operator returns the remainder of the
division
2
>>> 5 * 3 + 2 # result * divisor + remainder
17

85
Using Python as a Calculator
>>> 5 ** 2 # 5 squared
25
>>> 2 ** 7 # 2 to the power of 7
128
>>> 55**55
524744532468751923546122657597368049278513737089035
272057324643668607677682302892208099365234375
>>> width = 20
>>> height = 5 * 9
>>> width * height
900

86
Using Python as a Calculator
In interactive mode, the last printed expression is assigned to the
variable _.
>> 5+75
80
>>> _
80

>>> tax = 12.5 / 100


>>> price = 100.50
>>> price * tax
12.5625
>>> price + _
113.0625
>>> round(_, 2)
113.06

87
Strings
Besides numbers, Python can also manipulate strings, which can be
expressed in several ways. They can be enclosed in single quotes ('...')
or double quotes ("...") with the same result

>>> 'spam eggs' # single quotes


'spam eggs
>>> 'doesn\'t' # use \' to escape the single quote...
"doesn't
>>> "doesn't" # ...or use double quotes instead
"doesn't
>>> '"Yes," he said.
"Yes," he said.
>>> "\"Yes,\" he said.
'"Yes," he said.
>>> '"Isn\'t," she said.
'"Isn\'t," she said.'

88
Strings
If you want to concatenate variables or a variable and a
literal, use +:
Strings can be indexed (subscripted), with the first character
having index 0.

>>> prefix = 'Py


>>> prefix + 'thon''Python
>>> word = 'Python
>>> word[0] # character in position 0
'P
>>> word[5] # character in position 5
'n'

89
Strings
>>> word[-1] # last character
'n
>>> word[-2] # second-last character
'o
>>> word[-6]
'P
>>> word[0:2] # characters from position 0 (included) to 2 (excluded)
'Py
>>> word[2:5] # characters from position 2 (included) to 5 (excluded)
'tho
>>> word[:2] + word[2:]
'Python
>>> word[:4] + word[4:]
'Python'

90
Lists
>>> squares = [1, 4, 9, 16, 25]
>>> squares
[1, 4, 9, 16, 25]
>>> squares[0] # indexing returns the item
1
>>> squares[-1]
25
>>> squares[-3:] # slicing returns a new list
[9, 16, 25]
>>> squares[:]
[1, 4, 9, 16, 25]

91
List concatenation
>>> squares + [36, 49, 64, 81, 100]
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

Unlike strings, which are immutable, lists are a mutable


type:
cubes = [1, 8, 27, 65, 125] # something's wrong here
>>> 4 ** 3 # the cube of 4 is 64, not 65!
64
>>> cubes[3] = 64 # replace the wrong value
>>> cubes
[1, 8, 27, 64, 125]

92
append
>>> cubes.append(216) # add the cube of 6
>>> cubes.append(7 ** 3) # and the cube of 7
>>> cubes
[1, 8, 27, 64, 125, 216, 343]
>>> letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
>>> letters
['a', 'b', 'c', 'd', 'e', 'f', 'g']
>>> # replace some values
>>> letters[2:5] = ['C', 'D', 'E']
>>> letters
['a', 'b', 'C', 'D', 'E', 'f', 'g']

93
Nested lists
>>> a = ['a', 'b', 'c']
>>> n = [1, 2, 3]
>>> x = [a, n]
>>> x
[['a', 'b', 'c'], [1, 2, 3]]
>>> x[0]
['a', 'b', 'c']
>>> x[0][1]
'b'

94
Decision Making
Decision structures evaluate multiple expressions which
produce TRUE or FALSE as outcome. You need to determine
which action to take and which statements to execute if
outcome is TRUE or FALSE otherwise.
Python programming language assumes any non-zero and
non-null values as TRUE, and if it is either zero or null,
then it is assumed as FALSE value.
Python programming language provides following types of
decision making statements:
! if statement
! if else statement
! nested if statements

95
IF Statement
The if statement contains a logical expression using which
data is compared and a decision is made based on the
result of the comparison:
if expression: !
statement(s)

if the boolean expression evaluates to TRUE, then the block


of statement(s) inside the if statement is executed. In
Python, statements in a block are uniformly indented after :
symbol. If boolean expression evaluates to FALSE, then the
first set of code after the end of block is executed

96
IF Statement
var1 = 100!
if var1:!
print ("1 - Got a true expression value")!
print (var1)!
var2 = 0!
if var2:!
print ("2 - Got a true expression value")!
print (var2)print ("Good bye!")!

1 - Got a true expression value!


100!
Good bye!

97
IFELSE Statement
An else statement can be combined with an if statement.
An else statement contains the block of code that executes
if the conditional expression in the if statement resolves to
0 or a FALSE value

if expression:!
statement(s)!
else:!
statement(s)

98
IFELSE Statement
amount=int(input("Enter amount: "))!
if amount<1000:!
discount=amount*0.05!
print ("Discount",discount)!
else:!
discount=amount*0.10!
print ("Discount",discount)!
print ("Net payable:",amount-discount)!

Enter amount: 600!


Discount 30.0!
Net payable: 570.0!

Enter amount: 1200!


Discount 120.0!
Net payable: 1080.0

99
The elif Statement
The elif statement allows you to check multiple expressions
for TRUE and execute a block of code as soon as one of the
conditions evaluates to TRUE.

if expression1:!
statement(s)!
elif expression2:!
statement(s)!
elif expression3:!
statement(s)!
else: statement(s)

100
The elif Statement
amount=int(input("Enter amount: "))!
if amount<1000:!
discount=amount*0.05!
print ("Discount",discount)!
elif amount<5000:!
discount=amount*0.10!
print ("Discount",discount)!
else:!
discount=amount*0.15!
print ("Discount",discount) !
print ("Net payable:",amount-discount)

101
The elif Statement
Enter amount: 600!
Discount 30.0!
Net payable: 570.0!

Enter amount: 3000!


Discount 300.0!
Net payable: 2700.0!

Enter amount: 6000!


Discount 900.0!
Net payable: 5100.0

102
Loops
In general, statements are executed sequentially: The first
statement in a function is executed first, followed by the
second, and so on. There may be a situation when you need
to execute a block of code several number of times.
A loop statement allows us to execute a statement or group
of statements multiple times.
Python programming language provides following types of
loops:
! while loop
! for loop
! nested loops

103
while Loop Statement
A while loop statement in Python programming language
repeatedly executes a target statement as long as a given
condition is true.
while expression:!
statement(s)

Here, statement(s) may be a single statement or a block of


statements with uniform indent. The condition may be any
expression, and true is any non-zero value. The loop
iterates while the condition is true.
When the condition becomes false, program control passes
to the line immediately following the loop.

104
while Loop Statement
count = 0!
while (count < 5):!
print ('The count is:', count)!
count = count + 1!
print ("Good bye!")!

The count is: 0!


The count is: 1!
The count is: 2!
The count is: 3!
The count is: 4!
Good bye!

105
for Loop Statement
The for statement in Python has the ability to iterate over
the items of any sequence, such as a list or a string.

for iterating_var in sequence:!


statements(s)

if a sequence contains an expression list, it is evaluated


first. Then, the first item in the sequence is assigned to the
iterating variable iterating_var. Next, the statements block is
executed. Each item in the list is assigned to iterating_var,
and the statement(s) block is executed until the entire
sequence is exhausted.

106
for Loop Statement
for letter in 'Python':!
# traversal of a string sequence!
print ('Current Letter :', letter)!
print()!
fruits = ['banana', 'apple', 'mango']!
for fruit in fruits:!
# traversal of List sequence!
print ('Current fruit :', fruit)!
print ("Good bye!")

107
for Loop Statement
The built-in function range() is the right function to iterate over a sequence of
numbers. It generates an iterator of arithmetic progressions.
>>> range(5)!
range(0, 5)!
>>> list(range(5))!
[0, 1, 2, 3, 4]!
>>> for var in list(range(5)):print(var)!
0!
1!
2!
3!
4!
>>> for var in (range(5)):print(var)!
0!
1!
2!
3!
4!

108
fruits = ['banana', 'apple', 'mango']!
for index in range(len(fruits)):!
print ('Current fruit :', fruits[index])!
print ("Good bye!")!

Current fruit : banana!


Current fruit : apple!
Current fruit : mango!
Good bye!

109
Nested loops
Python programming language allows to use one loop inside
another loop.

for iterating_var in sequence:!


for iterating_var in sequence:!
statements(s)!
statements(s)!

while expression:!
while expression:!
statement(s)!
statement(s)

110
for i in range(1,11):!
for j in range(1,11):!
k=i*j!
print (k, end=' ')!
print()!

1 2 3 4 5 6 7 8 9 10 !
2 4 6 8 10 12 14 16 18 20!
3 6 9 12 15 18 21 24 27 30 !
4 8 12 16 20 24 28 32 36 40 !
5 10 15 20 25 30 35 40 45 50 !
6 12 18 24 30 36 42 48 54 60 !
7 14 21 28 35 42 49 56 63 70 !
8 16 24 32 40 48 56 64 72 80 !
9 18 27 36 45 54 63 72 81 90 !
10 20 30 40 50 60 70 80 90 100

111
Loop Control Statements
Loop control statements change execution from its normal
sequence.

When execution leaves a scope, all automatic objects that


were created in that scope are destroyed.

Python supports the following control statements:


! break statement
! continue statement
! pass statement

112
break statement
The break statement is used for premature termination of current
loop. After abandoning the loop, execution at the next statement
is resumed:
for letter in 'Python': # First Example!
if letter == 'h':!
break!
print ('Current Letter :', letter)!

var = 10 # Second Example!


while var > 0:!
print ('Current variable value :', var)!
var = var -1!
if var == 5:!
break!
print ("Good bye!")

113
Using else Statement with Loops
Python supports to have an else statement associated with
a loop statement

If the else statement is used with a for loop, the else block
is executed only if for loops terminates normally (and not
by encountering break statement).

If the else statement is used with a while loop, the else


statement is executed when the condition becomes false.

114
Examples
no=int(input('any number: '))!
numbers=[11,33,55,39,55,75,37,21,23,41,13]!
for num in numbers:!
if num==no:!
print ('number found in list')!
break!
else:!
print ('number not found in list')!

any number: 33!


number found in list!

any number: 22!


number not found in list

115
Examples

numbers=[11,33,55,39,55,75,37,21,23,41,13]!
for num in numbers:!
if num%2==0:!
print ('the list contains an even number')!
break!
else:!
print ('the list does not contain even number')!

the list does not contain even number

116
continue statement
The continue statement in Python returns the control to the beginning of current
loop.
When encountered, the loop starts next iteration without executing remaining
statements in the current iteration.
The continue statement can be used in both while and for loops.

for letter in 'Python': # First Example!


if letter == 'h':!
continue!
print ('Current Letter :', letter)!

var = 10 # Second Example!


while var > 0:!
var = var -1!
if var == 5:!
continue!
print ('Current variable value :', var)!
print ("Good bye!")

117
pass Statement
The pass statement is a null operation; nothing happens
when it executes.
It is used when a statement is required syntactically but you
do not want any command or code to execute.

for letter in 'Python':!


if letter == 'h':!
pass!
print ('This is pass block')!
print ('Current Letter :', letter)!
print ("Good bye!")

118

You might also like