SlideShare a Scribd company logo
A Tutorial on the Python
Programming Language
Moshe Goldstein
Most of it based on a Python Presentation by Michael DiRamio - 2005
Which of these languages do you know?
• C or C++
• Java
• Perl
• Scheme
• Fortran
• Python
• Matlab
Presentation Overview
• Running Python and Output
• Data Types
• Input and File I/O
• Control Flow
• Functions
• Then, Why Python in Scientific Computation?
• Binary distributions Scientific Python
Hello World
>>> 'hello world!'
'hello world!'
•Open a terminal window and type “python”
•If on Windows open a Python IDE like IDLE
•At the prompt type ‘hello world!’
Python Overview
From Learning Python, 2nd Edition:
• Programs are composed of modules
• Modules contain statements
• Statements contain expressions
• Expressions create and process objects
The Python Interpreter
•Python is an interpreted
language
•The interpreter provides an
interactive environment to
play with the language
•Results of expressions are
printed on the screen
>>> 3 + 7
10
>>> 3 < 15
True
>>> 'print me'
'print me'
>>> print 'print me'
print me
>>>
The print Statement
>>> print 'hello'
hello
>>> print 'hello', 'there'
hello there
•Elements separated by
commas print with a space
between them
•A comma at the end of the
statement (print ‘hello’,) will
not print a newline character
Documentation
>>> 'this will print'
'this will print'
>>> #'this will not'
>>>
The ‘#’ starts a line comment
Variables
• Are not declared, just assigned
• The variable is created the first time you assign it
a value
• Are references to objects
• Type information is with the object, not the
reference
• Everything in Python is an object
Everything is an object
• Everything means
everything, including
functions and classes
(more on this later!)
• Data type is a property
of the object and not of
the variable
>>> x = 7
>>> x
7
>>> x = 'hello'
>>> x
'hello'
>>>
Numbers: Integers
• Integer – the equivalent of
a C long
• Long Integer – an
unbounded integer value.
>>> 132224
132224
>>> 132323 ** 2
17509376329L
>>>
Numbers: Floating Point
• int(x) converts x to an
integer
• float(x) converts x to a
floating point
• The interpreter shows
a lot of digits
>>> 1.23232
1.2323200000000001
>>> print 1.23232
1.23232
>>> 1.3E7
13000000.0
>>> int(2.0)
2
>>> float(2)
2.0
Numbers: Complex
• Built into Python
• Same operations are
supported as integer and
float
>>> x = 3 + 2j
>>> y = -1j
>>> x + y
(3+1j)
>>> x * y
(2-3j)
Numbers are immutable
>>> x = 4.5
>>> y = x
>>> y += 3
>>> x
4.5
>>> y
7.5
x 4.5
y
x 4.5
y 7.5
String Literals
• Strings are immutable
• There is no char type like
in C++ or Java
• + is overloaded to do
concatenation
>>> x = 'hello'
>>> x = x + ' there'
>>> x
'hello there'
String Literals: Many Kinds
• Can use single or double quotes, and three double
quotes for a multi-line string
>>> 'I am a string'
'I am a string'
>>> "So am I!"
'So am I!'
>>> s = """And me too!
though I am much longer
than the others :)"""
'And me too!nthough I am much longernthan the others :)‘
>>> print s
And me too!
though I am much longer
than the others :)‘
Substrings and Methods
>>> s = '012345'
>>> s[3]
'3'
>>> s[1:4]
'123'
>>> s[2:]
'2345'
>>> s[:4]
'0123'
>>> s[-2]
'4'
• len(String) – returns the
number of characters in the
String
• str(Object) – returns a
String representation of the
Object
>>> len(x)
6
>>> str(10.3)
'10.3'
String Formatting
• Similar to C’s printf
• <formatted string> % <elements to insert>
• Can usually just use %s for everything, it will
convert the object to its String representation.
>>> "One, %d, three" % 2
'One, 2, three'
>>> "%d, two, %s" % (1,3)
'1, two, 3'
>>> "%s two %s" % (1, 'three')
'1 two three'
>>>
Lists
• Ordered collection of data
• Data can be of different
types
• Lists are mutable
• Issues with shared
references and mutability
• Same subset operations as
Strings
>>> x = [1,'hello', (3 + 2j)]
>>> x
[1, 'hello', (3+2j)]
>>> x[2]
(3+2j)
>>> x[0:2]
[1, 'hello']
Lists: Modifying Content
• x[i] = a reassigns the
ith element to the
value a
• Since x and y point to
the same list object,
both are changed
• The method append
also modifies the list
>>> x = [1,2,3]
>>> y = x
>>> x[1] = 15
>>> x
[1, 15, 3]
>>> y
[1, 15, 3]
>>> x.append(12)
>>> y
[1, 15, 3, 12]
Lists: Modifying Contents
• The method
append modifies
the list and returns
None
• List addition (+)
returns a new list
>>> x = [1,2,3]
>>> y = x
>>> z = x.append(12)
>>> z == None
True
>>> y
[1, 2, 3, 12]
>>> x = x + [9,10]
>>> x
[1, 2, 3, 12, 9, 10]
>>> y
[1, 2, 3, 12]
>>>
Tuples
• Tuples are immutable
versions of lists
• One strange point is the
format to make a tuple with
one element:
‘,’ is needed to differentiate
from the mathematical
expression (2)
>>> x = (1,2,3)
>>> x[1:]
(2, 3)
>>> y = (2,)
>>> y
(2,)
>>>
Dictionaries
• A set of key-value pairs
• Dictionaries are mutable
>>> d = {1 : 'hello', 'two' : 42, 'blah' : [1,2,3]}
>>> d
{1: 'hello', 'two': 42, 'blah': [1, 2, 3]}
>>> d['blah']
[1, 2, 3]
Dictionaries: Add/Modify
>>> d
{1: 'hello', 'two': 42, 'blah': [1, 2, 3]}
>>> d['two'] = 99
>>> d
{1: 'hello', 'two': 99, 'blah': [1, 2, 3]}
>>> d[7] = 'new entry'
>>> d
{1: 'hello', 7: 'new entry', 'two': 99, 'blah': [1, 2, 3]}
• Entries can be changed by assigning to that entry
• Assigning to a key that does not exist adds an entry
Dictionaries: Deleting Elements
• The del method deletes an element from a dictionary
>>> d
{1: 'hello', 2: 'there', 10: 'world'}
>>> del(d[2])
>>> d
{1: 'hello', 10: 'world'}
Copying Dictionaries and Lists
• The built-in list
function will
copy a list
• The dictionary
has a method
called copy
>>> l1 = [1]
>>> l2 = list(l1)
>>> l1[0] = 22
>>> l1
[22]
>>> l2
[1]
>>> d = {1 : 10}
>>> d2 = d.copy()
>>> d[1] = 22
>>> d
{1: 22}
>>> d2
{1: 10}
Data Type Summary
• Lists, Tuples, and Dictionaries can store any type
(including other lists, tuples, and dictionaries!)
• Only lists and dictionaries are mutable
• All variables are references
Data Type Summary
• Integers: 2323, 3234L
• Floating Point: 32.3, 3.1E2
• Complex: 3 + 2j, 1j
• Lists: l = [ 1,2,3]
• Tuples: t = (1,2,3)
• Dictionaries: d = {‘hello’ : ‘there’, 2 : 15}
Input
• The raw_input(string) method returns a line of
user input as a string
• The parameter is used as a prompt
• The string can be converted by using the
conversion methods int(string), float(string), etc.
Input: Example
print "What's your name?"
name = raw_input("> ")
print "What year were you born?"
birthyear = int(raw_input("> "))
print "Hi %s! You are %d years old!" % (name, 2011 - birthyear)
~: python input.py
What's your name?
> Michael
What year were you born?
>1980
Hi Michael! You are 31 years old!
Files: Input
inflobj = open(‘data’, ‘r’) Open the file ‘data’
for input
S = inflobj.read() Read whole file into
one String
S = inflobj.read(N) Reads N bytes
(N >= 1)
L = inflobj.readlines() Returns a list of line
strings
Files: Output
outflobj = open(‘data’, ‘w’) Open the file ‘data’
for writing
outflobj.write(S) Writes the string S to
file
outflobj.writelines(L) Writes each of the
strings in list L to file
outflobj.close() Closes the file
Booleans
• 0 and None are false
• Everything else is true
• True and False are aliases for 1 and 0 respectively
Boolean Expressions
• Compound boolean expressions
short circuit
• and and or return one of the
elements in the expression
• Note that when None is returned
the interpreter does not print
anything
>>> True and False
False
>>> False or True
True
>>> 7 and 14
14
>>> None and 2
>>> None or 2
2
Moving to Files
• The interpreter is a good place to try out some code,
but what you type is not reusable
• Python code files can be read into the interpreter
using the import statement
Moving to Files
• In order to be able to find a module called myscripts.py,
the interpreter scans the list sys.path of directory names.
• The module must be in one of those directories.
>>> import sys
>>> sys.path
['C:Python26Libidlelib', 'C:WINDOWSsystem32python26.zip',
'C:Python26DLLs', 'C:Python26lib', 'C:Python26libplat-win',
'C:Python26liblib-tk', 'C:Python26', 'C:Python26libsite-packages']
>>> import myscripts
Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
import myscripts.py
ImportError: No module named myscripts.py
No Braces
• Python uses indentation instead of braces to
determine the scope of expressions
• All lines must be indented the same amount to be part
of the scope (or indented more if part of an inner
scope)
• This forces the programmer to use proper indentation
since the indenting is part of the program!
If Statements
import math
x = 30
if x <= 15 :
y = x + 15
elif x <= 30 :
y = x + 30
else :
y = x
print ‘y = ‘,
print math.sin(y)
In file ifstatement.py
>>> import ifstatement
y = 0.999911860107
>>>
In interpreter
While Loops
x = 1
while x < 10 :
print x
x = x + 1
>>> import whileloop
1
2
3
4
5
6
7
8
9
>>>
In whileloop.py
In interpreter
Loop Control Statements
break Jumps out of the closest
enclosing loop
continue Jumps to the top of the closest
enclosing loop
pass Does nothing, empty statement
placeholder
The Loop Else Clause
• The optional else clause runs only if the loop exits
normally (not by break)
x = 1
while x < 3 :
print x
x = x + 1
else:
print 'hello'
~: python whileelse.py
1
2
hello
Run from the command line
In whileelse.py
The Loop Else Clause
x = 1
while x < 5 :
print x
x = x + 1
break
else :
print 'i got here'
~: python whileelse2.py
1
whileelse2.py
For Loops
• Similar to perl for loops, iterating through a list of values
~: python forloop1.py
1
7
13
2
for x in [1,7,13,2] :
print xforloop1.py
~: python forloop2.py
0
1
2
3
4
for x in range(5) :
print xforloop2.py
range(N) generates a list of numbers [0,1, …, n-1]
For Loops
• For loops also may have the optional else clause
for x in range(5):
print x
break
else :
print 'i got here'
~: python elseforloop.py
1
elseforloop.py
Function Basics
def max(x,y) :
if x < y :
return x
else :
return y
>>> import functionbasics
>>> max(3,5)
5
>>> max('hello', 'there')
'there'
>>> max(3, 'hello')
'hello'
functionbasics.py
Functions are first class objects
• Can be assigned to a variable
• Can be passed as a parameter
• Can be returned from a function
• Functions are treated like any other variable in
Python, the def statement simply assigns a
function to a variable
Function names are like any variable
• Functions are objects
• The same reference
rules hold for them as
for other objects
>>> x = 10
>>> x
10
>>> def x () :
... print 'hello'
>>> x
<function x at 0x619f0>
>>> x()
hello
>>> x = 'blah'
>>> x
'blah'
Functions as Parameters
def foo(f, a) :
return f(a)
def bar(x) :
return x * x
>>> from funcasparam import *
>>> foo(bar, 3)
9
Note that the function foo takes two
parameters and applies the first as a
function with the second as its
parameter
funcasparam.py
Higher-Order Functions
map(func,seq) – for all i, applies func(seq[i]) and returns the
corresponding sequence of the calculated results.
def double(x):
return 2*x
>>> from highorder import *
>>> lst = range(10)
>>> lst
[0,1,2,3,4,5,6,7,8,9]
>>> map(double,lst)
[0,2,4,6,8,10,12,14,16,18]
highorder.py
Higher-Order Functions
filter(boolfunc,seq) – returns a sequence containing all those items
in seq for which boolfunc is True.
def even(x):
return ((x%2 == 0)
>>> from highorder import *
>>> lst = range(10)
>>> lst
[0,1,2,3,4,5,6,7,8,9]
>>> filter(even,lst)
[0,2,4,6,8]
highorder.py
Higher-Order Functions
reduce(func,seq) – applies func to the items of seq, from left to
right, two-at-time, to reduce the seq to a single value.
def plus(x,y):
return (x + y)
>>> from highorder import *
>>> lst = [‘h’,’e’,’l’,’l’,’o’]
>>> reduce(plus,lst)
‘hello’
highorder.py
Functions Inside Functions
• Since they are like any other object, you can have
functions inside functions
def foo (x,y) :
def bar (z) :
return z * 2
return bar(x) + y
>>> from funcinfunc import *
>>> foo(2,3)
7
funcinfunc.py
Functions Returning Functions
def foo (x) :
def bar(y) :
return x + y
return bar
# main
f = foo(3)
print f
print f(2)
~: python funcreturnfunc.py
<function bar at 0x612b0>
5
funcreturnfunc.py
Parameters: Defaults
• Parameters can be
assigned default
values
• They are overridden if
a parameter is given
for them
• The type of the default
doesn’t limit the type
of a parameter
>>> def foo(x = 3) :
... print x
...
>>> foo()
3
>>> foo(10)
10
>>> foo('hello')
hello
Parameters: Named
• Call by name
• Any positional
arguments must
come before
named ones in a
call
>>> def foo (a,b,c) :
... print a, b, c
...
>>> foo(c = 10, a = 2, b = 14)
2 14 10
>>> foo(3, c = 2, b = 19)
3 19 2
Anonymous Functions
• A lambda
expression returns a
function object
• The body can only
be a simple
expression, not
complex statements
>>> f = lambda x,y : x + y
>>> f(2,3)
5
>>> lst = ['one', lambda x : x * x, 3]
>>> lst[1](4)
16
Modules
• The highest level structure of Python
• Each file with the py suffix is a module
• Each module has its own namespace
Modules: Imports
import mymodule Brings all elements
of mymodule in, but
must refer to as
mymodule.<elem>
from mymodule import x Imports x from
mymodule right into
this namespace
from mymodule import * Imports all elements
of mymodule into
this namespace
Then,
why Python in Scientific
Computation?
python.pdf
Python and mgTinker
Now we will analyze some Python scripts which
are part of the mgTINKER package.
Scientific Computation-
oriented Python Distributions
Python(x,y)-2.7.2.1.exe – only Windows binary
distribution.
Enthought Python Distribution (epd-7-2-2-win-
x86.msi) – Windows, Unix/Linux, and Mac binary
distributions. The full version is completely free
for academic use.
…
Include most of the existent Python modules for
Scientific Computation, graph ploting, etc.
THANK YOU
A simple example
An atom located in some place in 3D space, may be
represented by a tuple
atom1 = (atomname, xcoord, ycoord, zcoord)
or by a list
atom1 = [atomname, xcoord, ycoord , zcoord]
Given a set of atoms a1, a2, …, aN, that compose a
molecule mol, a geometric conformation of this molecule
will be represented by a list of atoms represented as above
mol = [a1, a2, a3, …, aN]
Having several conformations of a given molecule, we will
be able to write Python functions of our interest.
Ad

More Related Content

What's hot (15)

Datastructures in python
Datastructures in pythonDatastructures in python
Datastructures in python
hydpy
 
Python Datatypes by SujithKumar
Python Datatypes by SujithKumarPython Datatypes by SujithKumar
Python Datatypes by SujithKumar
Sujith Kumar
 
15. Streams Files and Directories
15. Streams Files and Directories 15. Streams Files and Directories
15. Streams Files and Directories
Intro C# Book
 
Introduction to python programming 1
Introduction to python programming   1Introduction to python programming   1
Introduction to python programming 1
Giovanni Della Lunga
 
Python Modules and Libraries
Python Modules and LibrariesPython Modules and Libraries
Python Modules and Libraries
Venugopalavarma Raja
 
Kotlin, Spek and tests
Kotlin, Spek and testsKotlin, Spek and tests
Kotlin, Spek and tests
intive
 
Datatypes in python
Datatypes in pythonDatatypes in python
Datatypes in python
eShikshak
 
Learning python
Learning pythonLearning python
Learning python
Hoang Nguyen
 
awesome groovy
awesome groovyawesome groovy
awesome groovy
Paul King
 
Python 101
Python 101Python 101
Python 101
Prashant Jamkhande
 
The Curious Clojurist - Neal Ford (Thoughtworks)
The Curious Clojurist - Neal Ford (Thoughtworks)The Curious Clojurist - Neal Ford (Thoughtworks)
The Curious Clojurist - Neal Ford (Thoughtworks)
jaxLondonConference
 
java 8 Hands on Workshop
java 8 Hands on Workshopjava 8 Hands on Workshop
java 8 Hands on Workshop
Jeanne Boyarsky
 
Python fundamentals - basic | WeiYuan
Python fundamentals - basic | WeiYuanPython fundamentals - basic | WeiYuan
Python fundamentals - basic | WeiYuan
Wei-Yuan Chang
 
Java Foundations: Lists, ArrayList<T>
Java Foundations: Lists, ArrayList<T>Java Foundations: Lists, ArrayList<T>
Java Foundations: Lists, ArrayList<T>
Svetlin Nakov
 
Python course in_mumbai
Python course in_mumbaiPython course in_mumbai
Python course in_mumbai
vibrantuser
 
Datastructures in python
Datastructures in pythonDatastructures in python
Datastructures in python
hydpy
 
Python Datatypes by SujithKumar
Python Datatypes by SujithKumarPython Datatypes by SujithKumar
Python Datatypes by SujithKumar
Sujith Kumar
 
15. Streams Files and Directories
15. Streams Files and Directories 15. Streams Files and Directories
15. Streams Files and Directories
Intro C# Book
 
Introduction to python programming 1
Introduction to python programming   1Introduction to python programming   1
Introduction to python programming 1
Giovanni Della Lunga
 
Kotlin, Spek and tests
Kotlin, Spek and testsKotlin, Spek and tests
Kotlin, Spek and tests
intive
 
Datatypes in python
Datatypes in pythonDatatypes in python
Datatypes in python
eShikshak
 
awesome groovy
awesome groovyawesome groovy
awesome groovy
Paul King
 
The Curious Clojurist - Neal Ford (Thoughtworks)
The Curious Clojurist - Neal Ford (Thoughtworks)The Curious Clojurist - Neal Ford (Thoughtworks)
The Curious Clojurist - Neal Ford (Thoughtworks)
jaxLondonConference
 
java 8 Hands on Workshop
java 8 Hands on Workshopjava 8 Hands on Workshop
java 8 Hands on Workshop
Jeanne Boyarsky
 
Python fundamentals - basic | WeiYuan
Python fundamentals - basic | WeiYuanPython fundamentals - basic | WeiYuan
Python fundamentals - basic | WeiYuan
Wei-Yuan Chang
 
Java Foundations: Lists, ArrayList<T>
Java Foundations: Lists, ArrayList<T>Java Foundations: Lists, ArrayList<T>
Java Foundations: Lists, ArrayList<T>
Svetlin Nakov
 
Python course in_mumbai
Python course in_mumbaiPython course in_mumbai
Python course in_mumbai
vibrantuser
 

Similar to Python tutorialfeb152012 (20)

ppt_pspp.pdf
ppt_pspp.pdfppt_pspp.pdf
ppt_pspp.pdf
ShereenAhmedMohamed
 
python2oxhvoudhuSGFsughusgdogusuosFU.pdf
python2oxhvoudhuSGFsughusgdogusuosFU.pdfpython2oxhvoudhuSGFsughusgdogusuosFU.pdf
python2oxhvoudhuSGFsughusgdogusuosFU.pdf
rohithzach
 
Python chapter 2
Python chapter 2Python chapter 2
Python chapter 2
Raghu nath
 
python chapter 1
python chapter 1python chapter 1
python chapter 1
Raghu nath
 
Lecture-2-Python-Basic-Elements-Sep04-2018.pptx
Lecture-2-Python-Basic-Elements-Sep04-2018.pptxLecture-2-Python-Basic-Elements-Sep04-2018.pptx
Lecture-2-Python-Basic-Elements-Sep04-2018.pptx
AbdulQadeerBilal
 
03-Variables, Expressions and Statements (1).pdf
03-Variables, Expressions and Statements (1).pdf03-Variables, Expressions and Statements (1).pdf
03-Variables, Expressions and Statements (1).pdf
MirHazarKhan1
 
ComandosDePython_ComponentesBasicosImpl.ppt
ComandosDePython_ComponentesBasicosImpl.pptComandosDePython_ComponentesBasicosImpl.ppt
ComandosDePython_ComponentesBasicosImpl.ppt
oscarJulianPerdomoCh1
 
Introduction To Programming with Python
Introduction To Programming with PythonIntroduction To Programming with Python
Introduction To Programming with Python
Sushant Mane
 
programming with python ppt
programming with python pptprogramming with python ppt
programming with python ppt
Priyanka Pradhan
 
Pythonlearn-02-Expressions123AdvanceLevel.pptx
Pythonlearn-02-Expressions123AdvanceLevel.pptxPythonlearn-02-Expressions123AdvanceLevel.pptx
Pythonlearn-02-Expressions123AdvanceLevel.pptx
AninditaSarkarNaha
 
Lec2_cont.pptx galgotias University questions
Lec2_cont.pptx galgotias University questionsLec2_cont.pptx galgotias University questions
Lec2_cont.pptx galgotias University questions
YashJain47002
 
Keep it Stupidly Simple Introduce Python
Keep it Stupidly Simple Introduce PythonKeep it Stupidly Simple Introduce Python
Keep it Stupidly Simple Introduce Python
SushJalai
 
Python
PythonPython
Python
Kumar Gaurav
 
Introduction to Python 01-08-2023.pon by everyone else. . Hence, they must be...
Introduction to Python 01-08-2023.pon by everyone else. . Hence, they must be...Introduction to Python 01-08-2023.pon by everyone else. . Hence, they must be...
Introduction to Python 01-08-2023.pon by everyone else. . Hence, they must be...
DRVaibhavmeshram1
 
Python Interview Questions | Python Interview Questions And Answers | Python ...
Python Interview Questions | Python Interview Questions And Answers | Python ...Python Interview Questions | Python Interview Questions And Answers | Python ...
Python Interview Questions | Python Interview Questions And Answers | Python ...
Simplilearn
 
Python course
Python coursePython course
Python course
Евгений Сазонов
 
Python study material
Python study materialPython study material
Python study material
Satish Nagabhushan
 
The Ring programming language version 1.2 book - Part 9 of 84
The Ring programming language version 1.2 book - Part 9 of 84The Ring programming language version 1.2 book - Part 9 of 84
The Ring programming language version 1.2 book - Part 9 of 84
Mahmoud Samir Fayed
 
PYTHON
PYTHONPYTHON
PYTHON
JOHNYAMSON
 
Sessisgytcfgggggggggggggggggggggggggggggggg
SessisgytcfggggggggggggggggggggggggggggggggSessisgytcfgggggggggggggggggggggggggggggggg
Sessisgytcfgggggggggggggggggggggggggggggggg
pawankamal3
 
python2oxhvoudhuSGFsughusgdogusuosFU.pdf
python2oxhvoudhuSGFsughusgdogusuosFU.pdfpython2oxhvoudhuSGFsughusgdogusuosFU.pdf
python2oxhvoudhuSGFsughusgdogusuosFU.pdf
rohithzach
 
Python chapter 2
Python chapter 2Python chapter 2
Python chapter 2
Raghu nath
 
python chapter 1
python chapter 1python chapter 1
python chapter 1
Raghu nath
 
Lecture-2-Python-Basic-Elements-Sep04-2018.pptx
Lecture-2-Python-Basic-Elements-Sep04-2018.pptxLecture-2-Python-Basic-Elements-Sep04-2018.pptx
Lecture-2-Python-Basic-Elements-Sep04-2018.pptx
AbdulQadeerBilal
 
03-Variables, Expressions and Statements (1).pdf
03-Variables, Expressions and Statements (1).pdf03-Variables, Expressions and Statements (1).pdf
03-Variables, Expressions and Statements (1).pdf
MirHazarKhan1
 
ComandosDePython_ComponentesBasicosImpl.ppt
ComandosDePython_ComponentesBasicosImpl.pptComandosDePython_ComponentesBasicosImpl.ppt
ComandosDePython_ComponentesBasicosImpl.ppt
oscarJulianPerdomoCh1
 
Introduction To Programming with Python
Introduction To Programming with PythonIntroduction To Programming with Python
Introduction To Programming with Python
Sushant Mane
 
programming with python ppt
programming with python pptprogramming with python ppt
programming with python ppt
Priyanka Pradhan
 
Pythonlearn-02-Expressions123AdvanceLevel.pptx
Pythonlearn-02-Expressions123AdvanceLevel.pptxPythonlearn-02-Expressions123AdvanceLevel.pptx
Pythonlearn-02-Expressions123AdvanceLevel.pptx
AninditaSarkarNaha
 
Lec2_cont.pptx galgotias University questions
Lec2_cont.pptx galgotias University questionsLec2_cont.pptx galgotias University questions
Lec2_cont.pptx galgotias University questions
YashJain47002
 
Keep it Stupidly Simple Introduce Python
Keep it Stupidly Simple Introduce PythonKeep it Stupidly Simple Introduce Python
Keep it Stupidly Simple Introduce Python
SushJalai
 
Introduction to Python 01-08-2023.pon by everyone else. . Hence, they must be...
Introduction to Python 01-08-2023.pon by everyone else. . Hence, they must be...Introduction to Python 01-08-2023.pon by everyone else. . Hence, they must be...
Introduction to Python 01-08-2023.pon by everyone else. . Hence, they must be...
DRVaibhavmeshram1
 
Python Interview Questions | Python Interview Questions And Answers | Python ...
Python Interview Questions | Python Interview Questions And Answers | Python ...Python Interview Questions | Python Interview Questions And Answers | Python ...
Python Interview Questions | Python Interview Questions And Answers | Python ...
Simplilearn
 
The Ring programming language version 1.2 book - Part 9 of 84
The Ring programming language version 1.2 book - Part 9 of 84The Ring programming language version 1.2 book - Part 9 of 84
The Ring programming language version 1.2 book - Part 9 of 84
Mahmoud Samir Fayed
 
Sessisgytcfgggggggggggggggggggggggggggggggg
SessisgytcfggggggggggggggggggggggggggggggggSessisgytcfgggggggggggggggggggggggggggggggg
Sessisgytcfgggggggggggggggggggggggggggggggg
pawankamal3
 
Ad

More from Shani729 (20)

Python tutorial
Python tutorialPython tutorial
Python tutorial
Shani729
 
Interaction design _beyond_human_computer_interaction
Interaction design _beyond_human_computer_interactionInteraction design _beyond_human_computer_interaction
Interaction design _beyond_human_computer_interaction
Shani729
 
Fm lecturer 13(final)
Fm lecturer 13(final)Fm lecturer 13(final)
Fm lecturer 13(final)
Shani729
 
Lecture slides week14-15
Lecture slides week14-15Lecture slides week14-15
Lecture slides week14-15
Shani729
 
Frequent itemset mining using pattern growth method
Frequent itemset mining using pattern growth methodFrequent itemset mining using pattern growth method
Frequent itemset mining using pattern growth method
Shani729
 
Dwh lecture slides-week15
Dwh lecture slides-week15Dwh lecture slides-week15
Dwh lecture slides-week15
Shani729
 
Dwh lecture slides-week10
Dwh lecture slides-week10Dwh lecture slides-week10
Dwh lecture slides-week10
Shani729
 
Dwh lecture slidesweek7&8
Dwh lecture slidesweek7&8Dwh lecture slidesweek7&8
Dwh lecture slidesweek7&8
Shani729
 
Dwh lecture slides-week5&6
Dwh lecture slides-week5&6Dwh lecture slides-week5&6
Dwh lecture slides-week5&6
Shani729
 
Dwh lecture slides-week3&4
Dwh lecture slides-week3&4Dwh lecture slides-week3&4
Dwh lecture slides-week3&4
Shani729
 
Dwh lecture slides-week2
Dwh lecture slides-week2Dwh lecture slides-week2
Dwh lecture slides-week2
Shani729
 
Dwh lecture slides-week1
Dwh lecture slides-week1Dwh lecture slides-week1
Dwh lecture slides-week1
Shani729
 
Dwh lecture slides-week 13
Dwh lecture slides-week 13Dwh lecture slides-week 13
Dwh lecture slides-week 13
Shani729
 
Dwh lecture slides-week 12&13
Dwh lecture slides-week 12&13Dwh lecture slides-week 12&13
Dwh lecture slides-week 12&13
Shani729
 
Data warehousing and mining furc
Data warehousing and mining furcData warehousing and mining furc
Data warehousing and mining furc
Shani729
 
Lecture 40
Lecture 40Lecture 40
Lecture 40
Shani729
 
Lecture 39
Lecture 39Lecture 39
Lecture 39
Shani729
 
Lecture 38
Lecture 38Lecture 38
Lecture 38
Shani729
 
Lecture 37
Lecture 37Lecture 37
Lecture 37
Shani729
 
Lecture 35
Lecture 35Lecture 35
Lecture 35
Shani729
 
Python tutorial
Python tutorialPython tutorial
Python tutorial
Shani729
 
Interaction design _beyond_human_computer_interaction
Interaction design _beyond_human_computer_interactionInteraction design _beyond_human_computer_interaction
Interaction design _beyond_human_computer_interaction
Shani729
 
Fm lecturer 13(final)
Fm lecturer 13(final)Fm lecturer 13(final)
Fm lecturer 13(final)
Shani729
 
Lecture slides week14-15
Lecture slides week14-15Lecture slides week14-15
Lecture slides week14-15
Shani729
 
Frequent itemset mining using pattern growth method
Frequent itemset mining using pattern growth methodFrequent itemset mining using pattern growth method
Frequent itemset mining using pattern growth method
Shani729
 
Dwh lecture slides-week15
Dwh lecture slides-week15Dwh lecture slides-week15
Dwh lecture slides-week15
Shani729
 
Dwh lecture slides-week10
Dwh lecture slides-week10Dwh lecture slides-week10
Dwh lecture slides-week10
Shani729
 
Dwh lecture slidesweek7&8
Dwh lecture slidesweek7&8Dwh lecture slidesweek7&8
Dwh lecture slidesweek7&8
Shani729
 
Dwh lecture slides-week5&6
Dwh lecture slides-week5&6Dwh lecture slides-week5&6
Dwh lecture slides-week5&6
Shani729
 
Dwh lecture slides-week3&4
Dwh lecture slides-week3&4Dwh lecture slides-week3&4
Dwh lecture slides-week3&4
Shani729
 
Dwh lecture slides-week2
Dwh lecture slides-week2Dwh lecture slides-week2
Dwh lecture slides-week2
Shani729
 
Dwh lecture slides-week1
Dwh lecture slides-week1Dwh lecture slides-week1
Dwh lecture slides-week1
Shani729
 
Dwh lecture slides-week 13
Dwh lecture slides-week 13Dwh lecture slides-week 13
Dwh lecture slides-week 13
Shani729
 
Dwh lecture slides-week 12&13
Dwh lecture slides-week 12&13Dwh lecture slides-week 12&13
Dwh lecture slides-week 12&13
Shani729
 
Data warehousing and mining furc
Data warehousing and mining furcData warehousing and mining furc
Data warehousing and mining furc
Shani729
 
Lecture 40
Lecture 40Lecture 40
Lecture 40
Shani729
 
Lecture 39
Lecture 39Lecture 39
Lecture 39
Shani729
 
Lecture 38
Lecture 38Lecture 38
Lecture 38
Shani729
 
Lecture 37
Lecture 37Lecture 37
Lecture 37
Shani729
 
Lecture 35
Lecture 35Lecture 35
Lecture 35
Shani729
 
Ad

Recently uploaded (20)

Artificial Intelligence introduction.pptx
Artificial Intelligence introduction.pptxArtificial Intelligence introduction.pptx
Artificial Intelligence introduction.pptx
DrMarwaElsherif
 
ADVXAI IN MALWARE ANALYSIS FRAMEWORK: BALANCING EXPLAINABILITY WITH SECURITY
ADVXAI IN MALWARE ANALYSIS FRAMEWORK: BALANCING EXPLAINABILITY WITH SECURITYADVXAI IN MALWARE ANALYSIS FRAMEWORK: BALANCING EXPLAINABILITY WITH SECURITY
ADVXAI IN MALWARE ANALYSIS FRAMEWORK: BALANCING EXPLAINABILITY WITH SECURITY
ijscai
 
IntroSlides-April-BuildWithAI-VertexAI.pdf
IntroSlides-April-BuildWithAI-VertexAI.pdfIntroSlides-April-BuildWithAI-VertexAI.pdf
IntroSlides-April-BuildWithAI-VertexAI.pdf
Luiz Carneiro
 
211421893-M-Tech-CIVIL-Structural-Engineering-pdf.pdf
211421893-M-Tech-CIVIL-Structural-Engineering-pdf.pdf211421893-M-Tech-CIVIL-Structural-Engineering-pdf.pdf
211421893-M-Tech-CIVIL-Structural-Engineering-pdf.pdf
inmishra17121973
 
Compiler Design Unit1 PPT Phases of Compiler.pptx
Compiler Design Unit1 PPT Phases of Compiler.pptxCompiler Design Unit1 PPT Phases of Compiler.pptx
Compiler Design Unit1 PPT Phases of Compiler.pptx
RushaliDeshmukh2
 
Level 1-Safety.pptx Presentation of Electrical Safety
Level 1-Safety.pptx Presentation of Electrical SafetyLevel 1-Safety.pptx Presentation of Electrical Safety
Level 1-Safety.pptx Presentation of Electrical Safety
JoseAlbertoCariasDel
 
Explainable-Artificial-Intelligence-XAI-A-Deep-Dive (1).pptx
Explainable-Artificial-Intelligence-XAI-A-Deep-Dive (1).pptxExplainable-Artificial-Intelligence-XAI-A-Deep-Dive (1).pptx
Explainable-Artificial-Intelligence-XAI-A-Deep-Dive (1).pptx
MahaveerVPandit
 
RICS Membership-(The Royal Institution of Chartered Surveyors).pdf
RICS Membership-(The Royal Institution of Chartered Surveyors).pdfRICS Membership-(The Royal Institution of Chartered Surveyors).pdf
RICS Membership-(The Royal Institution of Chartered Surveyors).pdf
MohamedAbdelkader115
 
introduction to machine learining for beginers
introduction to machine learining for beginersintroduction to machine learining for beginers
introduction to machine learining for beginers
JoydebSheet
 
Structural Response of Reinforced Self-Compacting Concrete Deep Beam Using Fi...
Structural Response of Reinforced Self-Compacting Concrete Deep Beam Using Fi...Structural Response of Reinforced Self-Compacting Concrete Deep Beam Using Fi...
Structural Response of Reinforced Self-Compacting Concrete Deep Beam Using Fi...
Journal of Soft Computing in Civil Engineering
 
New Microsoft PowerPoint Presentation.pdf
New Microsoft PowerPoint Presentation.pdfNew Microsoft PowerPoint Presentation.pdf
New Microsoft PowerPoint Presentation.pdf
mohamedezzat18803
 
Lidar for Autonomous Driving, LiDAR Mapping for Driverless Cars.pptx
Lidar for Autonomous Driving, LiDAR Mapping for Driverless Cars.pptxLidar for Autonomous Driving, LiDAR Mapping for Driverless Cars.pptx
Lidar for Autonomous Driving, LiDAR Mapping for Driverless Cars.pptx
RishavKumar530754
 
Artificial Intelligence (AI) basics.pptx
Artificial Intelligence (AI) basics.pptxArtificial Intelligence (AI) basics.pptx
Artificial Intelligence (AI) basics.pptx
aditichinar
 
fluke dealers in bangalore..............
fluke dealers in bangalore..............fluke dealers in bangalore..............
fluke dealers in bangalore..............
Haresh Vaswani
 
Data Structures_Linear data structures Linked Lists.pptx
Data Structures_Linear data structures Linked Lists.pptxData Structures_Linear data structures Linked Lists.pptx
Data Structures_Linear data structures Linked Lists.pptx
RushaliDeshmukh2
 
Data Structures_Searching and Sorting.pptx
Data Structures_Searching and Sorting.pptxData Structures_Searching and Sorting.pptx
Data Structures_Searching and Sorting.pptx
RushaliDeshmukh2
 
LECTURE-16 EARTHEN DAM - II.pptx it's uses
LECTURE-16 EARTHEN DAM - II.pptx it's usesLECTURE-16 EARTHEN DAM - II.pptx it's uses
LECTURE-16 EARTHEN DAM - II.pptx it's uses
CLokeshBehera123
 
some basics electrical and electronics knowledge
some basics electrical and electronics knowledgesome basics electrical and electronics knowledge
some basics electrical and electronics knowledge
nguyentrungdo88
 
How to use nRF24L01 module with Arduino
How to use nRF24L01 module with ArduinoHow to use nRF24L01 module with Arduino
How to use nRF24L01 module with Arduino
CircuitDigest
 
The Gaussian Process Modeling Module in UQLab
The Gaussian Process Modeling Module in UQLabThe Gaussian Process Modeling Module in UQLab
The Gaussian Process Modeling Module in UQLab
Journal of Soft Computing in Civil Engineering
 
Artificial Intelligence introduction.pptx
Artificial Intelligence introduction.pptxArtificial Intelligence introduction.pptx
Artificial Intelligence introduction.pptx
DrMarwaElsherif
 
ADVXAI IN MALWARE ANALYSIS FRAMEWORK: BALANCING EXPLAINABILITY WITH SECURITY
ADVXAI IN MALWARE ANALYSIS FRAMEWORK: BALANCING EXPLAINABILITY WITH SECURITYADVXAI IN MALWARE ANALYSIS FRAMEWORK: BALANCING EXPLAINABILITY WITH SECURITY
ADVXAI IN MALWARE ANALYSIS FRAMEWORK: BALANCING EXPLAINABILITY WITH SECURITY
ijscai
 
IntroSlides-April-BuildWithAI-VertexAI.pdf
IntroSlides-April-BuildWithAI-VertexAI.pdfIntroSlides-April-BuildWithAI-VertexAI.pdf
IntroSlides-April-BuildWithAI-VertexAI.pdf
Luiz Carneiro
 
211421893-M-Tech-CIVIL-Structural-Engineering-pdf.pdf
211421893-M-Tech-CIVIL-Structural-Engineering-pdf.pdf211421893-M-Tech-CIVIL-Structural-Engineering-pdf.pdf
211421893-M-Tech-CIVIL-Structural-Engineering-pdf.pdf
inmishra17121973
 
Compiler Design Unit1 PPT Phases of Compiler.pptx
Compiler Design Unit1 PPT Phases of Compiler.pptxCompiler Design Unit1 PPT Phases of Compiler.pptx
Compiler Design Unit1 PPT Phases of Compiler.pptx
RushaliDeshmukh2
 
Level 1-Safety.pptx Presentation of Electrical Safety
Level 1-Safety.pptx Presentation of Electrical SafetyLevel 1-Safety.pptx Presentation of Electrical Safety
Level 1-Safety.pptx Presentation of Electrical Safety
JoseAlbertoCariasDel
 
Explainable-Artificial-Intelligence-XAI-A-Deep-Dive (1).pptx
Explainable-Artificial-Intelligence-XAI-A-Deep-Dive (1).pptxExplainable-Artificial-Intelligence-XAI-A-Deep-Dive (1).pptx
Explainable-Artificial-Intelligence-XAI-A-Deep-Dive (1).pptx
MahaveerVPandit
 
RICS Membership-(The Royal Institution of Chartered Surveyors).pdf
RICS Membership-(The Royal Institution of Chartered Surveyors).pdfRICS Membership-(The Royal Institution of Chartered Surveyors).pdf
RICS Membership-(The Royal Institution of Chartered Surveyors).pdf
MohamedAbdelkader115
 
introduction to machine learining for beginers
introduction to machine learining for beginersintroduction to machine learining for beginers
introduction to machine learining for beginers
JoydebSheet
 
New Microsoft PowerPoint Presentation.pdf
New Microsoft PowerPoint Presentation.pdfNew Microsoft PowerPoint Presentation.pdf
New Microsoft PowerPoint Presentation.pdf
mohamedezzat18803
 
Lidar for Autonomous Driving, LiDAR Mapping for Driverless Cars.pptx
Lidar for Autonomous Driving, LiDAR Mapping for Driverless Cars.pptxLidar for Autonomous Driving, LiDAR Mapping for Driverless Cars.pptx
Lidar for Autonomous Driving, LiDAR Mapping for Driverless Cars.pptx
RishavKumar530754
 
Artificial Intelligence (AI) basics.pptx
Artificial Intelligence (AI) basics.pptxArtificial Intelligence (AI) basics.pptx
Artificial Intelligence (AI) basics.pptx
aditichinar
 
fluke dealers in bangalore..............
fluke dealers in bangalore..............fluke dealers in bangalore..............
fluke dealers in bangalore..............
Haresh Vaswani
 
Data Structures_Linear data structures Linked Lists.pptx
Data Structures_Linear data structures Linked Lists.pptxData Structures_Linear data structures Linked Lists.pptx
Data Structures_Linear data structures Linked Lists.pptx
RushaliDeshmukh2
 
Data Structures_Searching and Sorting.pptx
Data Structures_Searching and Sorting.pptxData Structures_Searching and Sorting.pptx
Data Structures_Searching and Sorting.pptx
RushaliDeshmukh2
 
LECTURE-16 EARTHEN DAM - II.pptx it's uses
LECTURE-16 EARTHEN DAM - II.pptx it's usesLECTURE-16 EARTHEN DAM - II.pptx it's uses
LECTURE-16 EARTHEN DAM - II.pptx it's uses
CLokeshBehera123
 
some basics electrical and electronics knowledge
some basics electrical and electronics knowledgesome basics electrical and electronics knowledge
some basics electrical and electronics knowledge
nguyentrungdo88
 
How to use nRF24L01 module with Arduino
How to use nRF24L01 module with ArduinoHow to use nRF24L01 module with Arduino
How to use nRF24L01 module with Arduino
CircuitDigest
 

Python tutorialfeb152012

  • 1. A Tutorial on the Python Programming Language Moshe Goldstein Most of it based on a Python Presentation by Michael DiRamio - 2005
  • 2. Which of these languages do you know? • C or C++ • Java • Perl • Scheme • Fortran • Python • Matlab
  • 3. Presentation Overview • Running Python and Output • Data Types • Input and File I/O • Control Flow • Functions • Then, Why Python in Scientific Computation? • Binary distributions Scientific Python
  • 4. Hello World >>> 'hello world!' 'hello world!' •Open a terminal window and type “python” •If on Windows open a Python IDE like IDLE •At the prompt type ‘hello world!’
  • 5. Python Overview From Learning Python, 2nd Edition: • Programs are composed of modules • Modules contain statements • Statements contain expressions • Expressions create and process objects
  • 6. The Python Interpreter •Python is an interpreted language •The interpreter provides an interactive environment to play with the language •Results of expressions are printed on the screen >>> 3 + 7 10 >>> 3 < 15 True >>> 'print me' 'print me' >>> print 'print me' print me >>>
  • 7. The print Statement >>> print 'hello' hello >>> print 'hello', 'there' hello there •Elements separated by commas print with a space between them •A comma at the end of the statement (print ‘hello’,) will not print a newline character
  • 8. Documentation >>> 'this will print' 'this will print' >>> #'this will not' >>> The ‘#’ starts a line comment
  • 9. Variables • Are not declared, just assigned • The variable is created the first time you assign it a value • Are references to objects • Type information is with the object, not the reference • Everything in Python is an object
  • 10. Everything is an object • Everything means everything, including functions and classes (more on this later!) • Data type is a property of the object and not of the variable >>> x = 7 >>> x 7 >>> x = 'hello' >>> x 'hello' >>>
  • 11. Numbers: Integers • Integer – the equivalent of a C long • Long Integer – an unbounded integer value. >>> 132224 132224 >>> 132323 ** 2 17509376329L >>>
  • 12. Numbers: Floating Point • int(x) converts x to an integer • float(x) converts x to a floating point • The interpreter shows a lot of digits >>> 1.23232 1.2323200000000001 >>> print 1.23232 1.23232 >>> 1.3E7 13000000.0 >>> int(2.0) 2 >>> float(2) 2.0
  • 13. Numbers: Complex • Built into Python • Same operations are supported as integer and float >>> x = 3 + 2j >>> y = -1j >>> x + y (3+1j) >>> x * y (2-3j)
  • 14. Numbers are immutable >>> x = 4.5 >>> y = x >>> y += 3 >>> x 4.5 >>> y 7.5 x 4.5 y x 4.5 y 7.5
  • 15. String Literals • Strings are immutable • There is no char type like in C++ or Java • + is overloaded to do concatenation >>> x = 'hello' >>> x = x + ' there' >>> x 'hello there'
  • 16. String Literals: Many Kinds • Can use single or double quotes, and three double quotes for a multi-line string >>> 'I am a string' 'I am a string' >>> "So am I!" 'So am I!' >>> s = """And me too! though I am much longer than the others :)""" 'And me too!nthough I am much longernthan the others :)‘ >>> print s And me too! though I am much longer than the others :)‘
  • 17. Substrings and Methods >>> s = '012345' >>> s[3] '3' >>> s[1:4] '123' >>> s[2:] '2345' >>> s[:4] '0123' >>> s[-2] '4' • len(String) – returns the number of characters in the String • str(Object) – returns a String representation of the Object >>> len(x) 6 >>> str(10.3) '10.3'
  • 18. String Formatting • Similar to C’s printf • <formatted string> % <elements to insert> • Can usually just use %s for everything, it will convert the object to its String representation. >>> "One, %d, three" % 2 'One, 2, three' >>> "%d, two, %s" % (1,3) '1, two, 3' >>> "%s two %s" % (1, 'three') '1 two three' >>>
  • 19. Lists • Ordered collection of data • Data can be of different types • Lists are mutable • Issues with shared references and mutability • Same subset operations as Strings >>> x = [1,'hello', (3 + 2j)] >>> x [1, 'hello', (3+2j)] >>> x[2] (3+2j) >>> x[0:2] [1, 'hello']
  • 20. Lists: Modifying Content • x[i] = a reassigns the ith element to the value a • Since x and y point to the same list object, both are changed • The method append also modifies the list >>> x = [1,2,3] >>> y = x >>> x[1] = 15 >>> x [1, 15, 3] >>> y [1, 15, 3] >>> x.append(12) >>> y [1, 15, 3, 12]
  • 21. Lists: Modifying Contents • The method append modifies the list and returns None • List addition (+) returns a new list >>> x = [1,2,3] >>> y = x >>> z = x.append(12) >>> z == None True >>> y [1, 2, 3, 12] >>> x = x + [9,10] >>> x [1, 2, 3, 12, 9, 10] >>> y [1, 2, 3, 12] >>>
  • 22. Tuples • Tuples are immutable versions of lists • One strange point is the format to make a tuple with one element: ‘,’ is needed to differentiate from the mathematical expression (2) >>> x = (1,2,3) >>> x[1:] (2, 3) >>> y = (2,) >>> y (2,) >>>
  • 23. Dictionaries • A set of key-value pairs • Dictionaries are mutable >>> d = {1 : 'hello', 'two' : 42, 'blah' : [1,2,3]} >>> d {1: 'hello', 'two': 42, 'blah': [1, 2, 3]} >>> d['blah'] [1, 2, 3]
  • 24. Dictionaries: Add/Modify >>> d {1: 'hello', 'two': 42, 'blah': [1, 2, 3]} >>> d['two'] = 99 >>> d {1: 'hello', 'two': 99, 'blah': [1, 2, 3]} >>> d[7] = 'new entry' >>> d {1: 'hello', 7: 'new entry', 'two': 99, 'blah': [1, 2, 3]} • Entries can be changed by assigning to that entry • Assigning to a key that does not exist adds an entry
  • 25. Dictionaries: Deleting Elements • The del method deletes an element from a dictionary >>> d {1: 'hello', 2: 'there', 10: 'world'} >>> del(d[2]) >>> d {1: 'hello', 10: 'world'}
  • 26. Copying Dictionaries and Lists • The built-in list function will copy a list • The dictionary has a method called copy >>> l1 = [1] >>> l2 = list(l1) >>> l1[0] = 22 >>> l1 [22] >>> l2 [1] >>> d = {1 : 10} >>> d2 = d.copy() >>> d[1] = 22 >>> d {1: 22} >>> d2 {1: 10}
  • 27. Data Type Summary • Lists, Tuples, and Dictionaries can store any type (including other lists, tuples, and dictionaries!) • Only lists and dictionaries are mutable • All variables are references
  • 28. Data Type Summary • Integers: 2323, 3234L • Floating Point: 32.3, 3.1E2 • Complex: 3 + 2j, 1j • Lists: l = [ 1,2,3] • Tuples: t = (1,2,3) • Dictionaries: d = {‘hello’ : ‘there’, 2 : 15}
  • 29. Input • The raw_input(string) method returns a line of user input as a string • The parameter is used as a prompt • The string can be converted by using the conversion methods int(string), float(string), etc.
  • 30. Input: Example print "What's your name?" name = raw_input("> ") print "What year were you born?" birthyear = int(raw_input("> ")) print "Hi %s! You are %d years old!" % (name, 2011 - birthyear) ~: python input.py What's your name? > Michael What year were you born? >1980 Hi Michael! You are 31 years old!
  • 31. Files: Input inflobj = open(‘data’, ‘r’) Open the file ‘data’ for input S = inflobj.read() Read whole file into one String S = inflobj.read(N) Reads N bytes (N >= 1) L = inflobj.readlines() Returns a list of line strings
  • 32. Files: Output outflobj = open(‘data’, ‘w’) Open the file ‘data’ for writing outflobj.write(S) Writes the string S to file outflobj.writelines(L) Writes each of the strings in list L to file outflobj.close() Closes the file
  • 33. Booleans • 0 and None are false • Everything else is true • True and False are aliases for 1 and 0 respectively
  • 34. Boolean Expressions • Compound boolean expressions short circuit • and and or return one of the elements in the expression • Note that when None is returned the interpreter does not print anything >>> True and False False >>> False or True True >>> 7 and 14 14 >>> None and 2 >>> None or 2 2
  • 35. Moving to Files • The interpreter is a good place to try out some code, but what you type is not reusable • Python code files can be read into the interpreter using the import statement
  • 36. Moving to Files • In order to be able to find a module called myscripts.py, the interpreter scans the list sys.path of directory names. • The module must be in one of those directories. >>> import sys >>> sys.path ['C:Python26Libidlelib', 'C:WINDOWSsystem32python26.zip', 'C:Python26DLLs', 'C:Python26lib', 'C:Python26libplat-win', 'C:Python26liblib-tk', 'C:Python26', 'C:Python26libsite-packages'] >>> import myscripts Traceback (most recent call last): File "<pyshell#2>", line 1, in <module> import myscripts.py ImportError: No module named myscripts.py
  • 37. No Braces • Python uses indentation instead of braces to determine the scope of expressions • All lines must be indented the same amount to be part of the scope (or indented more if part of an inner scope) • This forces the programmer to use proper indentation since the indenting is part of the program!
  • 38. If Statements import math x = 30 if x <= 15 : y = x + 15 elif x <= 30 : y = x + 30 else : y = x print ‘y = ‘, print math.sin(y) In file ifstatement.py >>> import ifstatement y = 0.999911860107 >>> In interpreter
  • 39. While Loops x = 1 while x < 10 : print x x = x + 1 >>> import whileloop 1 2 3 4 5 6 7 8 9 >>> In whileloop.py In interpreter
  • 40. Loop Control Statements break Jumps out of the closest enclosing loop continue Jumps to the top of the closest enclosing loop pass Does nothing, empty statement placeholder
  • 41. The Loop Else Clause • The optional else clause runs only if the loop exits normally (not by break) x = 1 while x < 3 : print x x = x + 1 else: print 'hello' ~: python whileelse.py 1 2 hello Run from the command line In whileelse.py
  • 42. The Loop Else Clause x = 1 while x < 5 : print x x = x + 1 break else : print 'i got here' ~: python whileelse2.py 1 whileelse2.py
  • 43. For Loops • Similar to perl for loops, iterating through a list of values ~: python forloop1.py 1 7 13 2 for x in [1,7,13,2] : print xforloop1.py ~: python forloop2.py 0 1 2 3 4 for x in range(5) : print xforloop2.py range(N) generates a list of numbers [0,1, …, n-1]
  • 44. For Loops • For loops also may have the optional else clause for x in range(5): print x break else : print 'i got here' ~: python elseforloop.py 1 elseforloop.py
  • 45. Function Basics def max(x,y) : if x < y : return x else : return y >>> import functionbasics >>> max(3,5) 5 >>> max('hello', 'there') 'there' >>> max(3, 'hello') 'hello' functionbasics.py
  • 46. Functions are first class objects • Can be assigned to a variable • Can be passed as a parameter • Can be returned from a function • Functions are treated like any other variable in Python, the def statement simply assigns a function to a variable
  • 47. Function names are like any variable • Functions are objects • The same reference rules hold for them as for other objects >>> x = 10 >>> x 10 >>> def x () : ... print 'hello' >>> x <function x at 0x619f0> >>> x() hello >>> x = 'blah' >>> x 'blah'
  • 48. Functions as Parameters def foo(f, a) : return f(a) def bar(x) : return x * x >>> from funcasparam import * >>> foo(bar, 3) 9 Note that the function foo takes two parameters and applies the first as a function with the second as its parameter funcasparam.py
  • 49. Higher-Order Functions map(func,seq) – for all i, applies func(seq[i]) and returns the corresponding sequence of the calculated results. def double(x): return 2*x >>> from highorder import * >>> lst = range(10) >>> lst [0,1,2,3,4,5,6,7,8,9] >>> map(double,lst) [0,2,4,6,8,10,12,14,16,18] highorder.py
  • 50. Higher-Order Functions filter(boolfunc,seq) – returns a sequence containing all those items in seq for which boolfunc is True. def even(x): return ((x%2 == 0) >>> from highorder import * >>> lst = range(10) >>> lst [0,1,2,3,4,5,6,7,8,9] >>> filter(even,lst) [0,2,4,6,8] highorder.py
  • 51. Higher-Order Functions reduce(func,seq) – applies func to the items of seq, from left to right, two-at-time, to reduce the seq to a single value. def plus(x,y): return (x + y) >>> from highorder import * >>> lst = [‘h’,’e’,’l’,’l’,’o’] >>> reduce(plus,lst) ‘hello’ highorder.py
  • 52. Functions Inside Functions • Since they are like any other object, you can have functions inside functions def foo (x,y) : def bar (z) : return z * 2 return bar(x) + y >>> from funcinfunc import * >>> foo(2,3) 7 funcinfunc.py
  • 53. Functions Returning Functions def foo (x) : def bar(y) : return x + y return bar # main f = foo(3) print f print f(2) ~: python funcreturnfunc.py <function bar at 0x612b0> 5 funcreturnfunc.py
  • 54. Parameters: Defaults • Parameters can be assigned default values • They are overridden if a parameter is given for them • The type of the default doesn’t limit the type of a parameter >>> def foo(x = 3) : ... print x ... >>> foo() 3 >>> foo(10) 10 >>> foo('hello') hello
  • 55. Parameters: Named • Call by name • Any positional arguments must come before named ones in a call >>> def foo (a,b,c) : ... print a, b, c ... >>> foo(c = 10, a = 2, b = 14) 2 14 10 >>> foo(3, c = 2, b = 19) 3 19 2
  • 56. Anonymous Functions • A lambda expression returns a function object • The body can only be a simple expression, not complex statements >>> f = lambda x,y : x + y >>> f(2,3) 5 >>> lst = ['one', lambda x : x * x, 3] >>> lst[1](4) 16
  • 57. Modules • The highest level structure of Python • Each file with the py suffix is a module • Each module has its own namespace
  • 58. Modules: Imports import mymodule Brings all elements of mymodule in, but must refer to as mymodule.<elem> from mymodule import x Imports x from mymodule right into this namespace from mymodule import * Imports all elements of mymodule into this namespace
  • 59. Then, why Python in Scientific Computation? python.pdf
  • 60. Python and mgTinker Now we will analyze some Python scripts which are part of the mgTINKER package.
  • 61. Scientific Computation- oriented Python Distributions Python(x,y)-2.7.2.1.exe – only Windows binary distribution. Enthought Python Distribution (epd-7-2-2-win- x86.msi) – Windows, Unix/Linux, and Mac binary distributions. The full version is completely free for academic use. … Include most of the existent Python modules for Scientific Computation, graph ploting, etc.
  • 63. A simple example An atom located in some place in 3D space, may be represented by a tuple atom1 = (atomname, xcoord, ycoord, zcoord) or by a list atom1 = [atomname, xcoord, ycoord , zcoord] Given a set of atoms a1, a2, …, aN, that compose a molecule mol, a geometric conformation of this molecule will be represented by a list of atoms represented as above mol = [a1, a2, a3, …, aN] Having several conformations of a given molecule, we will be able to write Python functions of our interest.