SlideShare a Scribd company logo
Introduction to Python
Vibrant Technologies & computer
“Training Course in Mumbai”
"Vibrant Technology & Computer"
Vashi, Navi mumbai
Contents
• Review: Introduction, Installing & Running.
• Sample Code from Homework 0.
• Names & Assignment
• Containers: Lists, Tuples, Dictionaries
• Mutability
"Vibrant Technology & Computer"
Vashi, Navi mumbai
What is Python?
• A programming language with strong
similarities to PERL, but with powerful
typing and object oriented features.
– Commonly used for producing HTML content
on websites. Great for text files.
– Useful built-in types (lists, dictionaries).
– Clean syntax, powerful extensions.
"Vibrant Technology & Computer"
Vashi, Navi mumbai
Why Python for CSE-391?
• Textbook Code: Very Object Oriented
– Python much less verbose than Java
• AI Processing: Symbolic
– Python’s built-in datatypes for strings, lists, and more.
– Java or C++ require the use of special classes for this.
• AI Processing: Statistical
– Python has strong numeric processing capabilities:
matrix operations, etc.
– Suitable for probability and machine learning code.
"Vibrant Technology & Computer"
Vashi, Navi mumbai
Technical Issues
Installing & Running Python
"Vibrant Technology & Computer"
Vashi, Navi mumbai
Installing Python
• Python is on eniac: /pkg/bin/python
• Python for Win/Mac from www.python.org.
• GUI development environment: IDLE.
Credits:
http://hkn.eecs.berkeley.edu/~dyoo/python/idle_intro/index.html
"Vibrant Technology & Computer"
Vashi, Navi mumbai
IDLE Development Environment
• Shell for interactive evaluation.
• Text editor with color-coding and smart
indenting for creating python files.
• Menu commands for changing system
settings and running files.
• You’ll see me using IDLE in class.
"Vibrant Technology & Computer"
Vashi, Navi mumbai
Running Interactively on UNIX
On Unix…
% python
>>> 3+3
6
The ‘>>>’ is the Python prompt. In Unix, when
finished, you can use CONTROL+D.
"Vibrant Technology & Computer"
Vashi, Navi mumbai
Running Programs on UNIX
% python filename.py
You can create python files using emacs.
(There’s a special Python editing mode.)
You could even make the *.py file executable
and add the following text to top of the file
to make it runable: #!/pkg/bin/python
"Vibrant Technology & Computer"
Vashi, Navi mumbai
Understanding the Basics
"Vibrant Technology & Computer"
Vashi, Navi mumbai
Look at a sample of code…
x = 34 - 23 # A comment.
y = “Hello” # Another one.
z = 3.45
if z == 3.45 or y == “Hello”:
x = x + 1
y = y + “ World” # String concat.
print x
print y
"Vibrant Technology & Computer"
Vashi, Navi mumbai
Look at a sample of code…
x = 34 - 23 # A comment.
y = “Hello” # Another one.
z = 3.45
if z == 3.45 or y == “Hello”:
x = x + 1
y = y + “ World” # String concat.
print x
print y
"Vibrant Technology & Computer"
Vashi, Navi mumbai
Enough to Understand the Code
• Assignment uses = and comparison uses ==.
• For numbers +-*/% are as expected.
– Special use of + for string concatenation.
– Special use of % for string formatting.
• Logical operators are words (and, or, not)
not symbols (&&, ||, !).
• The basic printing command is “print.”
• First assignment to a variable will create it.
– Variable types don’t need to be declared.
– Python figures out the variable types on its own.
"Vibrant Technology & Computer"
Vashi, Navi mumbai
Basic Datatypes
• Integers (default for numbers)
z = 5 / 2 # Answer is 2, integer division.
• Floats
x = 3.456
• Strings
Can use “” or ‘’ to specify. “abc” ‘abc’ (Same thing.)
Unmatched ones can occur within the string. “matt’s”
Use triple double-quotes for multi-line strings or strings
than contain both ‘ and “ inside of them: “““a‘b“c”””
"Vibrant Technology & Computer"
Vashi, Navi mumbai
Whitespace
• Whitespace is meaningful in Python: especially
indentation and placement of newlines.
– Use a newline to end a line of code.
(Not a semicolon like in C++ or Java.)
(Use  when must go to next line prematurely.)
– No braces { } to mark blocks of code in Python…
Use consistent indentation instead. The first line with a
new indentation is considered outside of the block.
– Often a colon appears at the start of a new block.
(We’ll see this later for function and class definitions.)
"Vibrant Technology & Computer"
Vashi, Navi mumbai
Comments
• Start comments with # – the rest of line is ignored.
• Can include a “documentation string” as the first
line of any new function or class that you define.
• The development environment, debugger, and
other tools use it: it’s good style to include one.
def my_function(x, y):
“““This is the docstring. This
function does blah blah blah.”””
# The code would go here...
"Vibrant Technology & Computer"
Vashi, Navi mumbai
Look at a sample of code…
x = 34 - 23 # A comment.
y = “Hello” # Another one.
z = 3.45
if z == 3.45 or y == “Hello”:
x = x + 1
y = y + “ World” # String concat.
print x
print y
"Vibrant Technology & Computer"
Vashi, Navi mumbai
Understanding Assignment
"Vibrant Technology & Computer"
Vashi, Navi mumbai
Names and References 1
• Python has no pointers like C or C++. Instead, it has
“names” and “references”. (Works a lot like Lisp or Java.)
• You create a name the first time it appears on the left side
of an assignment expression:
x = 3
• Names store “references” which are like pointers to
locations in memory that store a constant or some object.
– Python determines the type of the reference automatically based
on what data is assigned to it.
– It also decides when to delete it via garbage collection after any
names for the reference have passed out of scope.
"Vibrant Technology & Computer"
Vashi, Navi mumbai
Names and References 2
• There is a lot going on when we type:
x = 3
• First, an integer 3 is created and stored in memory.
• A name x is created.
• An reference to the memory location storing the 3
is then assigned to the name x.
Type: Integer
Data: 3
Name: x
Ref: <address1>
name list memory
"Vibrant Technology & Computer"
Vashi, Navi mumbai
Names and References 3
• The data 3 we created is of type integer. In
Python, the basic datatypes integer, float, and
string are “immutable.”
• This doesn’t mean we can’t change the value of
x… For example, we could increment x.
>>> x = 3
>>> x = x + 1
>>> print x
4
"Vibrant Technology & Computer"
Vashi, Navi mumbai
Names and References 4
• If we increment x, then what’s really happening is:
– The reference of name x is looked up.
– The value at that reference is retrieved.
– The 3+1 calculation occurs, producing a new data element 4 which
is assigned to a fresh memory location with a new reference.
– The name x is changed to point to this new reference.
– The old data 3 is garbage collected if no name still refers to it.
Type: Integer
Data: 3Name: x
Ref: <address1>
"Vibrant Technology & Computer"
Vashi, Navi mumbai
Names and References 4
• If we increment x, then what’s really happening is:
– The reference of name x is looked up.
– The value at that reference is retrieved.
– The 3+1 calculation occurs, producing a new data element 4 which
is assigned to a fresh memory location with a new reference.
– The name x is changed to point to this new reference.
– The old data 3 is garbage collected if no name still refers to it.
Type: Integer
Data: 3Name: x
Ref: <address1>
Type: Integer
Data: 4
"Vibrant Technology & Computer"
Vashi, Navi mumbai
Names and References 4
• If we increment x, then what’s really happening is:
– The reference of name x is looked up.
– The value at that reference is retrieved.
– The 3+1 calculation occurs, producing a new data element 4 which
is assigned to a fresh memory location with a new reference.
– The name x is changed to point to this new reference.
– The old data 3 is garbage collected if no name still refers to it.
Type: Integer
Data: 3Name: x
Ref: <address2>
Type: Integer
Data: 4
"Vibrant Technology & Computer"
Vashi, Navi mumbai
Names and References 4
• If we increment x, then what’s really happening is:
– The reference of name x is looked up.
– The value at that reference is retrieved.
– The 3+1 calculation occurs, producing a new data element 4 which
is assigned to a fresh memory location with a new reference.
– The name x is changed to point to this new reference.
– The old data 3 is garbage collected if no name still refers to it.
Name: x
Ref: <address2>
Type: Integer
Data: 4
"Vibrant Technology & Computer"
Vashi, Navi mumbai
Assignment 1
• So, for simple built-in datatypes (integers, floats,
strings), assignment behaves as you would expect:
>>> x = 3 # Creates 3, name x refers to 3
>>> y = x # Creates name y, refers to 3.
>>> y = 4 # Creates ref for 4. Changes y.
>>> print x # No effect on x, still ref 3.
3
"Vibrant Technology & Computer"
Vashi, Navi mumbai
Assignment 1
• So, for simple built-in datatypes (integers, floats,
strings), assignment behaves as you would expect:
>>> x = 3 # Creates 3, name x refers to 3
>>> y = x # Creates name y, refers to 3.
>>> y = 4 # Creates ref for 4. Changes y.
>>> print x # No effect on x, still ref 3.
3
Type: Integer
Data: 3
Name: x
Ref: <address1>
"Vibrant Technology & Computer"
Vashi, Navi mumbai
Assignment 1
• So, for simple built-in datatypes (integers, floats,
strings), assignment behaves as you would expect:
>>> x = 3 # Creates 3, name x refers to 3
>>> y = x # Creates name y, refers to 3.
>>> y = 4 # Creates ref for 4. Changes y.
>>> print x # No effect on x, still ref 3.
3
Type: Integer
Data: 3
Name: x
Ref: <address1>
Name: y
Ref: <address1>
"Vibrant Technology & Computer"
Vashi, Navi mumbai
Assignment 1
• So, for simple built-in datatypes (integers, floats,
strings), assignment behaves as you would expect:
>>> x = 3 # Creates 3, name x refers to 3
>>> y = x # Creates name y, refers to 3.
>>> y = 4 # Creates ref for 4. Changes y.
>>> print x # No effect on x, still ref 3.
3
Type: Integer
Data: 3
Name: x
Ref: <address1>
Type: Integer
Data: 4
Name: y
Ref: <address1>
"Vibrant Technology & Computer"
Vashi, Navi mumbai
Assignment 1
• So, for simple built-in datatypes (integers, floats,
strings), assignment behaves as you would expect:
>>> x = 3 # Creates 3, name x refers to 3
>>> y = x # Creates name y, refers to 3.
>>> y = 4 # Creates ref for 4. Changes y.
>>> print x # No effect on x, still ref 3.
3
Type: Integer
Data: 3
Name: x
Ref: <address1>
Type: Integer
Data: 4
Name: y
Ref: <address2>
"Vibrant Technology & Computer"
Vashi, Navi mumbai
Assignment 1
• So, for simple built-in datatypes (integers, floats,
strings), assignment behaves as you would expect:
>>> x = 3 # Creates 3, name x refers to 3
>>> y = x # Creates name y, refers to 3.
>>> y = 4 # Creates ref for 4. Changes y.
>>> print x # No effect on x, still ref 3.
3
Type: Integer
Data: 3
Name: x
Ref: <address1>
Type: Integer
Data: 4
Name: y
Ref: <address2>
"Vibrant Technology & Computer"
Vashi, Navi mumbai
Assignment 2
• For other data types (lists, dictionaries, user-defined
types), assignment works differently.
– These datatypes are “mutable.”
– When we change these data, we do it in place.
– We don’t copy them into a new memory address each time.
– If we type y=x and then modify y, both x and y are changed!
– We’ll talk more about “mutability” later.
>>> x = 3 x = some mutable object
>>> y = x y = x
>>> y = 4 make a change to y
>>> print x look at x
3 x will be changed as well
immutable mutable
"Vibrant Technology & Computer"
Vashi, Navi mumbai
Container Types in Python
"Vibrant Technology & Computer"
Vashi, Navi mumbai
Container Types
• We’ve talked about integers, floats, and strings…
• Containers are other built-in data types in Python.
– Can hold objects of any type (including their own
type).
– There are three kinds of containers:
Tuples
• A simple immutable ordered sequence of items.
Lists
• Sequence with more powerful manipulations possible.
Dictionaries
• A look-up table of key-value pairs."Vibrant Technology & Computer"
Vashi, Navi mumbai
Tuples, Lists, and Strings:
Similarities
"Vibrant Technology & Computer"
Vashi, Navi mumbai
Similar Syntax
• Tuples and lists are sequential containers that
share much of the same syntax and functionality.
– For conciseness, they will be introduced together.
– The operations shown in this section can be applied to
both tuples and lists, but most examples will just show
the operation performed on one or the other.
• While strings aren’t exactly a container data type,
they also happen to share a lot of their syntax with
lists and tuples; so, the operations you see in this
section can apply to them as well.
"Vibrant Technology & Computer"
Vashi, Navi mumbai
Tuples, Lists, and Strings 1
• Tuples are defined using parentheses (and commas).
>>> tu = (23, ‘abc’, 4.56, (2,3), ‘def’)
• Lists are defined using square brackets (and commas).
>>> li = [“abc”, 34, 4.34, 23]
• Strings are defined using quotes (“, ‘, or “““).
>>> st = “Hello World”
>>> st = ‘Hello World’
>>> st = “““This is a multi-line
string that uses triple quotes.”””
"Vibrant Technology & Computer"
Vashi, Navi mumbai
Tuples, Lists, and Strings 2
• We can access individual members of a tuple, list,
or string using square bracket “array” notation.
>>> tu[1] # Second item in the tuple.
‘abc’
>>> li[1] # Second item in the list.
34
>>> st[1] # Second character in string.
‘e’
"Vibrant Technology & Computer"
Vashi, Navi mumbai
Looking up an Item
>>> t = (23, ‘abc’, 4.56, (2,3), ‘def’)
Positive index: count from the left, starting with 0.
>>> t[1]
‘abc’
Negative lookup: count from right, starting with –1.
>>> t[-3]
4.56
"Vibrant Technology & Computer"
Vashi, Navi mumbai
Slicing: Return Copy of a Subset 1
>>> t = (23, ‘abc’, 4.56, (2,3), ‘def’)
Return a copy of the container with a subset of the
original members. Start copying at the first index,
and stop copying before the second index.
>>> t[1:4]
(‘abc’, 4.56, (2,3))
You can also use negative indices when slicing.
>>> t[1:-1]
(‘abc’, 4.56, (2,3))"Vibrant Technology & Computer"
Vashi, Navi mumbai
Slicing: Return Copy of a Subset 2
>>> t = (23, ‘abc’, 4.56, (2,3), ‘def’)
Omit the first index to make a copy starting from the
beginning of the container.
>>> t[:2]
(23, ‘abc’)
Omit the second index to make a copy starting at the
first index and going to the end of the container.
>>> t[2:]
(4.56, (2,3), ‘def’)"Vibrant Technology & Computer"
Vashi, Navi mumbai
Copying the Whole Container
You can make a copy of the whole tuple using [:].
>>> t[:]
(23, ‘abc’, 4.56, (2,3), ‘def’)
So, there’s a difference between these two lines:
>>> list2 = list1 # 2 names refer to 1 ref
# Changing one affects both
>>> list2 = list1[:] # Two copies, two refs
# They’re independent
"Vibrant Technology & Computer"
Vashi, Navi mumbai
The ‘in’ Operator
• Boolean test whether a value is inside a container:
>>> t = [1, 2, 4, 5]
>>> 3 in t
False
>>> 4 in t
True
>>> 4 not in t
False
• Be careful: the ‘in’ keyword is also used in the
syntax of other unrelated Python constructions:
“for loops” and “list comprehensions.”"Vibrant Technology & Computer"
Vashi, Navi mumbai
The + Operator
• The + operator produces a new tuple, list, or string
whose value is the concatenation of its arguments.
>>> (1, 2, 3) + (4, 5, 6)
(1, 2, 3, 4, 5, 6)
>>> [1, 2, 3] + [4, 5, 6]
[1, 2, 3, 4, 5, 6]
>>> “Hello” + “ ” + “World”
‘Hello World’"Vibrant Technology & Computer"
Vashi, Navi mumbai
The * Operator
• The * operator produces a new tuple, list, or string
that “repeats” the original content.
>>> (1, 2, 3) * 3
(1, 2, 3, 1, 2, 3, 1, 2, 3)
>>> [1, 2, 3] * 3
[1, 2, 3, 1, 2, 3, 1, 2, 3]
>>> “Hello” * 3
‘HelloHelloHello’
"Vibrant Technology & Computer"
Vashi, Navi mumbai
Mutability:
Tuples vs. Lists
What’s the
difference between
tuples and lists?
"Vibrant Technology & Computer"
Vashi, Navi mumbai
Tuples: Immutable
>>> t = (23, ‘abc’, 4.56, (2,3), ‘def’)
>>> t[2] = 3.14
Traceback (most recent call last):
File "<pyshell#75>", line 1, in -toplevel-
tu[2] = 3.14
TypeError: object doesn't support item assignment
You’re not allowed to change a tuple in place in memory; so,
you can’t just change one element of it.
But it’s always OK to make a fresh tuple and assign its
reference to a previously used name.
>>> t = (1, 2, 3, 4, 5)
"Vibrant Technology & Computer"
Vashi, Navi mumbai
Lists: Mutable
>>> li = [‘abc’, 23, 4.34, 23]
>>> li[1] = 45
>>> li
[‘abc’, 45, 4.34, 23]
We can change lists in place. So, it’s ok to change
just one element of a list. Name li still points to the
same memory reference when we’re done.
"Vibrant Technology & Computer"
Vashi, Navi mumbai
Operations on Lists Only 1
• Since lists are mutable (they can be changed
in place in memory), there are many more
operations we can perform on lists than on
tuples.
• The mutability of lists also makes managing
them in memory more complicated… So,
they aren’t as fast as tuples. It’s a tradeoff.
"Vibrant Technology & Computer"
Vashi, Navi mumbai
Operations on Lists Only 2
>>> li = [1, 2, 3, 4, 5]
>>> li.append(‘a’)
>>> li
[1, 2, 3, 4, 5, ‘a’]
>>> li.insert(2, ‘i’)
>>>li
[1, 2, ‘i’, 3, 4, 5, ‘a’]
"Vibrant Technology & Computer"
Vashi, Navi mumbai
Operations on Lists Only 3
The ‘extend’ operation is similar to concatenation with the +
operator. But while the + creates a fresh list (with a new
memory reference) containing copies of the members from
the two inputs, the extend operates on list li in place.
>>> li.extend([9, 8, 7])
>>>li
[1, 2, ‘i’, 3, 4, 5, ‘a’, 9, 8, 7]
Extend takes a list as an argument. Append takes a singleton.
>>> li.append([9, 8, 7])
>>> li
[1, 2, ‘i’, 3, 4, 5, ‘a’, 9, 8, 7, [9, 8, 7]]
"Vibrant Technology & Computer"
Vashi, Navi mumbai
Operations on Lists Only 4
>>> li = [‘a’, ‘b’, ‘c’, ‘b’]
>>> li.index(‘b’) # index of first occurrence
1
>>> li.count(‘b’) # number of occurrences
2
>>> li.remove(‘b’) # remove first occurrence
>>> li
[‘a’, ‘c’, ‘b’]
"Vibrant Technology & Computer"
Vashi, Navi mumbai
Operations on Lists Only 5
>>> li = [5, 2, 6, 8]
>>> li.reverse() # reverse the list *in place*
>>> li
[8, 6, 2, 5]
>>> li.sort() # sort the list *in place*
>>> li
[2, 5, 6, 8]
>>> li.sort(some_function)
# sort in place using user-defined comparison
"Vibrant Technology & Computer"
Vashi, Navi mumbai
Tuples vs. Lists
• Lists slower but more powerful than tuples.
– Lists can be modified, and they have lots of handy
operations we can perform on them.
– Tuples are immutable and have fewer features.
• We can always convert between tuples and lists
using the list() and tuple() functions.
li = list(tu)
tu = tuple(li)
"Vibrant Technology & Computer"
Vashi, Navi mumbai
More About Assignment
Classes,
Functions,
Naming Rules
"Vibrant Technology & Computer"
Vashi, Navi mumbai
Assignment & Mutability 1
• Remember that assignment works differently for
mutable vs. immutable datatypes.
– If you type y=x, then changing y:
…will change x if they are mutable.
…won’t change x if they are immutable.
>>> x = 3 >>> x = [ 1, 2, 3]
>>> y = x >>> y = x
>>> y = y + 1 >>> y.reverse()
>>> print x >>> print x
3 [ 3, 2, 1]
immutable mutable
"Vibrant Technology & Computer"
Vashi, Navi mumbai
Assignment & Mutability 2
Python is object-oriented, and user-defined classes are mutable.
Let’s say that the name x refers to an object of some class.
This class has a “set” and a “get” function for some value.
>>> x.getSomeValue()
4
What happens if we create a new name y and set y=x ?
>>> y = x
This creates a new name y which points to the same memory
reference as the name x. Now, if we make some change to y,
then x will be affected as well.
>>> y.setSomeValue(3)
>>> y.getSomeValue()
3
>>> x.getSomeValue()
3
"Vibrant Technology & Computer"
Vashi, Navi mumbai
Assignment & Mutability 3
• When passing parameters to functions:
– Immutable data types are “call by value.”
– Mutable data types are “call by reference.”
– If you pass mutable data to a function, and you
change it inside that function, the changes will
persist after the function returns.
– Immutable data appear unchanged inside of
functions to which they are passed.
"Vibrant Technology & Computer"
Vashi, Navi mumbai
Naming Rules
• Names are case sensitive and cannot start with a
number. They can contain letters, numbers, and
underscores.
bob Bob _bob _2_bob_ bob_2 BoB
• There are some reserved words:
and, assert, break, class, continue,
def, del, elif, else, except, exec,
finally, for, from, global, if,
import, in, is, lambda, not, or,
pass, print, raise, return, try,
while
"Vibrant Technology & Computer"
Vashi, Navi mumbai
Accessing Non-Existent Name
• If you try to access a name before it’s been
properly created (by placing it on the left side of
an assignment), you’ll get an error.
>>> y
Traceback (most recent call last):
File "<pyshell#16>", line 1, in -toplevel-
y
NameError: name ‘y' is not defined
>>> y = 3
>>> y
3 "Vibrant Technology & Computer"
Vashi, Navi mumbai
Multiple Assignment
• You can also assign to multiple names at the same
time.
>>> x, y = 2, 3
>>> x
2
>>> y
3
"Vibrant Technology & Computer"
Vashi, Navi mumbai
Thank you
Vibrant Technologies
&
computers
Vashi,Navi Mumbai
"Vibrant Technology & Computer"
Vashi, Navi mumbai

More Related Content

PPTX
Python data type
PDF
Text Mining with R -- an Analysis of Twitter Data
KEY
Programming with Python - Week 2
PPTX
Python Data-Types
PDF
Working with text data
KEY
Programming with Python - Week 3
PPTX
Python strings presentation
PDF
Real World Haskell: Lecture 1
Python data type
Text Mining with R -- an Analysis of Twitter Data
Programming with Python - Week 2
Python Data-Types
Working with text data
Programming with Python - Week 3
Python strings presentation
Real World Haskell: Lecture 1

What's hot (20)

PDF
Text Classification in Python – using Pandas, scikit-learn, IPython Notebook ...
PDF
Text Mining Analytics 101
PPTX
Scala 3 Is Coming: Martin Odersky Shares What To Know
PDF
Elements of Text Mining Part - I
PPT
Fundamentals of data structures
PPTX
hands on: Text Mining With R
PPTX
PDF
Text classification in scikit-learn
PPTX
Natural Language Processing in R (rNLP)
PPT
Stream Based Input Output
PPTX
Text analytics in Python and R with examples from Tobacco Control
PDF
Real World Haskell: Lecture 3
PDF
Real World Haskell: Lecture 7
PDF
Real World Haskell: Lecture 6
PDF
Real World Haskell: Lecture 4
PDF
Real World Haskell: Lecture 2
PDF
FinalReport
PPT
String Handling
PPTX
Data Structure
PPTX
Python ml
Text Classification in Python – using Pandas, scikit-learn, IPython Notebook ...
Text Mining Analytics 101
Scala 3 Is Coming: Martin Odersky Shares What To Know
Elements of Text Mining Part - I
Fundamentals of data structures
hands on: Text Mining With R
Text classification in scikit-learn
Natural Language Processing in R (rNLP)
Stream Based Input Output
Text analytics in Python and R with examples from Tobacco Control
Real World Haskell: Lecture 3
Real World Haskell: Lecture 7
Real World Haskell: Lecture 6
Real World Haskell: Lecture 4
Real World Haskell: Lecture 2
FinalReport
String Handling
Data Structure
Python ml
Ad

Viewers also liked (20)

PDF
mobile technologies iOS
PDF
1 seminario business plan che cos'è e a cosa serve
PDF
CPP's Advanced Dispersion Modeling Services
PPT
Technologies of today
PDF
Python web frameworks
PDF
Advanced iOS
PPTX
Advanced Technologies in Architecture
PPT
1.3 applications, issues
PDF
Advanced Python, Part 1
PDF
C++ Advanced Features (TCF 2014)
PDF
Advanced Python Techniques: Decorators
PPT
Server-side Technologies in Java
PPTX
Python and BIG Data analytics | Python Fundamentals | Python Architecture
PPTX
Major issues in data mining
KEY
Ruby On Rails Overview
PPT
Segmentation Targeting Positioning
PDF
Data mining (lecture 1 & 2) conecpts and techniques
PPT
Market Segmentation, Targeting and Positioning
PDF
Social Media Marketing for Restaurants: 21 tips
PDF
Java Tools and Technologies Landscape for 2014 (image gallery)
mobile technologies iOS
1 seminario business plan che cos'è e a cosa serve
CPP's Advanced Dispersion Modeling Services
Technologies of today
Python web frameworks
Advanced iOS
Advanced Technologies in Architecture
1.3 applications, issues
Advanced Python, Part 1
C++ Advanced Features (TCF 2014)
Advanced Python Techniques: Decorators
Server-side Technologies in Java
Python and BIG Data analytics | Python Fundamentals | Python Architecture
Major issues in data mining
Ruby On Rails Overview
Segmentation Targeting Positioning
Data mining (lecture 1 & 2) conecpts and techniques
Market Segmentation, Targeting and Positioning
Social Media Marketing for Restaurants: 21 tips
Java Tools and Technologies Landscape for 2014 (image gallery)
Ad

Similar to Python001 training course_mumbai (20)

PPT
Introduction to Python
PPT
Python ppt
PDF
Python
PDF
PDF
Python_book.pdf
PPT
Python for Engineers and Architects Stud
PPT
python Basics of Python And Its features
PPT
python introduction to user friendly.ppt
PPT
This presentation about python programming language.
PPT
Introduction to Python deep knowledge in it
PPT
Brief History of Python by Learning Python in three hours
PPT
pythegggggeeeeeeeeeeeeeeeeeeeeeeeon1.ppt
PPT
uso del lenguaje de programación python en métodos numéricos..ppt
PPT
Learn Python in three hours - Python is an experiment
PPT
python1.pptpppppppppppppppppppppppppppppppp
PPT
python_presentation_for students_high_school
PPT
python programing 101 presentation ... Let's start
PPT
uso del lenguaje de programación python en métodos numéricos..ppt
PPT
into python.pptinto python.pptinto python.ppt
Introduction to Python
Python ppt
Python
Python_book.pdf
Python for Engineers and Architects Stud
python Basics of Python And Its features
python introduction to user friendly.ppt
This presentation about python programming language.
Introduction to Python deep knowledge in it
Brief History of Python by Learning Python in three hours
pythegggggeeeeeeeeeeeeeeeeeeeeeeeon1.ppt
uso del lenguaje de programación python en métodos numéricos..ppt
Learn Python in three hours - Python is an experiment
python1.pptpppppppppppppppppppppppppppppppp
python_presentation_for students_high_school
python programing 101 presentation ... Let's start
uso del lenguaje de programación python en métodos numéricos..ppt
into python.pptinto python.pptinto python.ppt

Recently uploaded (20)

PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PPTX
Spectroscopy.pptx food analysis technology
PDF
Encapsulation theory and applications.pdf
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
cuic standard and advanced reporting.pdf
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Encapsulation_ Review paper, used for researhc scholars
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
MIND Revenue Release Quarter 2 2025 Press Release
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Per capita expenditure prediction using model stacking based on satellite ima...
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Building Integrated photovoltaic BIPV_UPV.pdf
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Spectroscopy.pptx food analysis technology
Encapsulation theory and applications.pdf
Advanced methodologies resolving dimensionality complications for autism neur...
cuic standard and advanced reporting.pdf
Review of recent advances in non-invasive hemoglobin estimation
Diabetes mellitus diagnosis method based random forest with bat algorithm
Mobile App Security Testing_ A Comprehensive Guide.pdf
Understanding_Digital_Forensics_Presentation.pptx
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Encapsulation_ Review paper, used for researhc scholars

Python001 training course_mumbai

  • 1. Introduction to Python Vibrant Technologies & computer “Training Course in Mumbai” "Vibrant Technology & Computer" Vashi, Navi mumbai
  • 2. Contents • Review: Introduction, Installing & Running. • Sample Code from Homework 0. • Names & Assignment • Containers: Lists, Tuples, Dictionaries • Mutability "Vibrant Technology & Computer" Vashi, Navi mumbai
  • 3. What is Python? • A programming language with strong similarities to PERL, but with powerful typing and object oriented features. – Commonly used for producing HTML content on websites. Great for text files. – Useful built-in types (lists, dictionaries). – Clean syntax, powerful extensions. "Vibrant Technology & Computer" Vashi, Navi mumbai
  • 4. Why Python for CSE-391? • Textbook Code: Very Object Oriented – Python much less verbose than Java • AI Processing: Symbolic – Python’s built-in datatypes for strings, lists, and more. – Java or C++ require the use of special classes for this. • AI Processing: Statistical – Python has strong numeric processing capabilities: matrix operations, etc. – Suitable for probability and machine learning code. "Vibrant Technology & Computer" Vashi, Navi mumbai
  • 5. Technical Issues Installing & Running Python "Vibrant Technology & Computer" Vashi, Navi mumbai
  • 6. Installing Python • Python is on eniac: /pkg/bin/python • Python for Win/Mac from www.python.org. • GUI development environment: IDLE. Credits: http://hkn.eecs.berkeley.edu/~dyoo/python/idle_intro/index.html "Vibrant Technology & Computer" Vashi, Navi mumbai
  • 7. IDLE Development Environment • Shell for interactive evaluation. • Text editor with color-coding and smart indenting for creating python files. • Menu commands for changing system settings and running files. • You’ll see me using IDLE in class. "Vibrant Technology & Computer" Vashi, Navi mumbai
  • 8. Running Interactively on UNIX On Unix… % python >>> 3+3 6 The ‘>>>’ is the Python prompt. In Unix, when finished, you can use CONTROL+D. "Vibrant Technology & Computer" Vashi, Navi mumbai
  • 9. Running Programs on UNIX % python filename.py You can create python files using emacs. (There’s a special Python editing mode.) You could even make the *.py file executable and add the following text to top of the file to make it runable: #!/pkg/bin/python "Vibrant Technology & Computer" Vashi, Navi mumbai
  • 10. Understanding the Basics "Vibrant Technology & Computer" Vashi, Navi mumbai
  • 11. Look at a sample of code… x = 34 - 23 # A comment. y = “Hello” # Another one. z = 3.45 if z == 3.45 or y == “Hello”: x = x + 1 y = y + “ World” # String concat. print x print y "Vibrant Technology & Computer" Vashi, Navi mumbai
  • 12. Look at a sample of code… x = 34 - 23 # A comment. y = “Hello” # Another one. z = 3.45 if z == 3.45 or y == “Hello”: x = x + 1 y = y + “ World” # String concat. print x print y "Vibrant Technology & Computer" Vashi, Navi mumbai
  • 13. Enough to Understand the Code • Assignment uses = and comparison uses ==. • For numbers +-*/% are as expected. – Special use of + for string concatenation. – Special use of % for string formatting. • Logical operators are words (and, or, not) not symbols (&&, ||, !). • The basic printing command is “print.” • First assignment to a variable will create it. – Variable types don’t need to be declared. – Python figures out the variable types on its own. "Vibrant Technology & Computer" Vashi, Navi mumbai
  • 14. Basic Datatypes • Integers (default for numbers) z = 5 / 2 # Answer is 2, integer division. • Floats x = 3.456 • Strings Can use “” or ‘’ to specify. “abc” ‘abc’ (Same thing.) Unmatched ones can occur within the string. “matt’s” Use triple double-quotes for multi-line strings or strings than contain both ‘ and “ inside of them: “““a‘b“c””” "Vibrant Technology & Computer" Vashi, Navi mumbai
  • 15. Whitespace • Whitespace is meaningful in Python: especially indentation and placement of newlines. – Use a newline to end a line of code. (Not a semicolon like in C++ or Java.) (Use when must go to next line prematurely.) – No braces { } to mark blocks of code in Python… Use consistent indentation instead. The first line with a new indentation is considered outside of the block. – Often a colon appears at the start of a new block. (We’ll see this later for function and class definitions.) "Vibrant Technology & Computer" Vashi, Navi mumbai
  • 16. Comments • Start comments with # – the rest of line is ignored. • Can include a “documentation string” as the first line of any new function or class that you define. • The development environment, debugger, and other tools use it: it’s good style to include one. def my_function(x, y): “““This is the docstring. This function does blah blah blah.””” # The code would go here... "Vibrant Technology & Computer" Vashi, Navi mumbai
  • 17. Look at a sample of code… x = 34 - 23 # A comment. y = “Hello” # Another one. z = 3.45 if z == 3.45 or y == “Hello”: x = x + 1 y = y + “ World” # String concat. print x print y "Vibrant Technology & Computer" Vashi, Navi mumbai
  • 18. Understanding Assignment "Vibrant Technology & Computer" Vashi, Navi mumbai
  • 19. Names and References 1 • Python has no pointers like C or C++. Instead, it has “names” and “references”. (Works a lot like Lisp or Java.) • You create a name the first time it appears on the left side of an assignment expression: x = 3 • Names store “references” which are like pointers to locations in memory that store a constant or some object. – Python determines the type of the reference automatically based on what data is assigned to it. – It also decides when to delete it via garbage collection after any names for the reference have passed out of scope. "Vibrant Technology & Computer" Vashi, Navi mumbai
  • 20. Names and References 2 • There is a lot going on when we type: x = 3 • First, an integer 3 is created and stored in memory. • A name x is created. • An reference to the memory location storing the 3 is then assigned to the name x. Type: Integer Data: 3 Name: x Ref: <address1> name list memory "Vibrant Technology & Computer" Vashi, Navi mumbai
  • 21. Names and References 3 • The data 3 we created is of type integer. In Python, the basic datatypes integer, float, and string are “immutable.” • This doesn’t mean we can’t change the value of x… For example, we could increment x. >>> x = 3 >>> x = x + 1 >>> print x 4 "Vibrant Technology & Computer" Vashi, Navi mumbai
  • 22. Names and References 4 • If we increment x, then what’s really happening is: – The reference of name x is looked up. – The value at that reference is retrieved. – The 3+1 calculation occurs, producing a new data element 4 which is assigned to a fresh memory location with a new reference. – The name x is changed to point to this new reference. – The old data 3 is garbage collected if no name still refers to it. Type: Integer Data: 3Name: x Ref: <address1> "Vibrant Technology & Computer" Vashi, Navi mumbai
  • 23. Names and References 4 • If we increment x, then what’s really happening is: – The reference of name x is looked up. – The value at that reference is retrieved. – The 3+1 calculation occurs, producing a new data element 4 which is assigned to a fresh memory location with a new reference. – The name x is changed to point to this new reference. – The old data 3 is garbage collected if no name still refers to it. Type: Integer Data: 3Name: x Ref: <address1> Type: Integer Data: 4 "Vibrant Technology & Computer" Vashi, Navi mumbai
  • 24. Names and References 4 • If we increment x, then what’s really happening is: – The reference of name x is looked up. – The value at that reference is retrieved. – The 3+1 calculation occurs, producing a new data element 4 which is assigned to a fresh memory location with a new reference. – The name x is changed to point to this new reference. – The old data 3 is garbage collected if no name still refers to it. Type: Integer Data: 3Name: x Ref: <address2> Type: Integer Data: 4 "Vibrant Technology & Computer" Vashi, Navi mumbai
  • 25. Names and References 4 • If we increment x, then what’s really happening is: – The reference of name x is looked up. – The value at that reference is retrieved. – The 3+1 calculation occurs, producing a new data element 4 which is assigned to a fresh memory location with a new reference. – The name x is changed to point to this new reference. – The old data 3 is garbage collected if no name still refers to it. Name: x Ref: <address2> Type: Integer Data: 4 "Vibrant Technology & Computer" Vashi, Navi mumbai
  • 26. Assignment 1 • So, for simple built-in datatypes (integers, floats, strings), assignment behaves as you would expect: >>> x = 3 # Creates 3, name x refers to 3 >>> y = x # Creates name y, refers to 3. >>> y = 4 # Creates ref for 4. Changes y. >>> print x # No effect on x, still ref 3. 3 "Vibrant Technology & Computer" Vashi, Navi mumbai
  • 27. Assignment 1 • So, for simple built-in datatypes (integers, floats, strings), assignment behaves as you would expect: >>> x = 3 # Creates 3, name x refers to 3 >>> y = x # Creates name y, refers to 3. >>> y = 4 # Creates ref for 4. Changes y. >>> print x # No effect on x, still ref 3. 3 Type: Integer Data: 3 Name: x Ref: <address1> "Vibrant Technology & Computer" Vashi, Navi mumbai
  • 28. Assignment 1 • So, for simple built-in datatypes (integers, floats, strings), assignment behaves as you would expect: >>> x = 3 # Creates 3, name x refers to 3 >>> y = x # Creates name y, refers to 3. >>> y = 4 # Creates ref for 4. Changes y. >>> print x # No effect on x, still ref 3. 3 Type: Integer Data: 3 Name: x Ref: <address1> Name: y Ref: <address1> "Vibrant Technology & Computer" Vashi, Navi mumbai
  • 29. Assignment 1 • So, for simple built-in datatypes (integers, floats, strings), assignment behaves as you would expect: >>> x = 3 # Creates 3, name x refers to 3 >>> y = x # Creates name y, refers to 3. >>> y = 4 # Creates ref for 4. Changes y. >>> print x # No effect on x, still ref 3. 3 Type: Integer Data: 3 Name: x Ref: <address1> Type: Integer Data: 4 Name: y Ref: <address1> "Vibrant Technology & Computer" Vashi, Navi mumbai
  • 30. Assignment 1 • So, for simple built-in datatypes (integers, floats, strings), assignment behaves as you would expect: >>> x = 3 # Creates 3, name x refers to 3 >>> y = x # Creates name y, refers to 3. >>> y = 4 # Creates ref for 4. Changes y. >>> print x # No effect on x, still ref 3. 3 Type: Integer Data: 3 Name: x Ref: <address1> Type: Integer Data: 4 Name: y Ref: <address2> "Vibrant Technology & Computer" Vashi, Navi mumbai
  • 31. Assignment 1 • So, for simple built-in datatypes (integers, floats, strings), assignment behaves as you would expect: >>> x = 3 # Creates 3, name x refers to 3 >>> y = x # Creates name y, refers to 3. >>> y = 4 # Creates ref for 4. Changes y. >>> print x # No effect on x, still ref 3. 3 Type: Integer Data: 3 Name: x Ref: <address1> Type: Integer Data: 4 Name: y Ref: <address2> "Vibrant Technology & Computer" Vashi, Navi mumbai
  • 32. Assignment 2 • For other data types (lists, dictionaries, user-defined types), assignment works differently. – These datatypes are “mutable.” – When we change these data, we do it in place. – We don’t copy them into a new memory address each time. – If we type y=x and then modify y, both x and y are changed! – We’ll talk more about “mutability” later. >>> x = 3 x = some mutable object >>> y = x y = x >>> y = 4 make a change to y >>> print x look at x 3 x will be changed as well immutable mutable "Vibrant Technology & Computer" Vashi, Navi mumbai
  • 33. Container Types in Python "Vibrant Technology & Computer" Vashi, Navi mumbai
  • 34. Container Types • We’ve talked about integers, floats, and strings… • Containers are other built-in data types in Python. – Can hold objects of any type (including their own type). – There are three kinds of containers: Tuples • A simple immutable ordered sequence of items. Lists • Sequence with more powerful manipulations possible. Dictionaries • A look-up table of key-value pairs."Vibrant Technology & Computer" Vashi, Navi mumbai
  • 35. Tuples, Lists, and Strings: Similarities "Vibrant Technology & Computer" Vashi, Navi mumbai
  • 36. Similar Syntax • Tuples and lists are sequential containers that share much of the same syntax and functionality. – For conciseness, they will be introduced together. – The operations shown in this section can be applied to both tuples and lists, but most examples will just show the operation performed on one or the other. • While strings aren’t exactly a container data type, they also happen to share a lot of their syntax with lists and tuples; so, the operations you see in this section can apply to them as well. "Vibrant Technology & Computer" Vashi, Navi mumbai
  • 37. Tuples, Lists, and Strings 1 • Tuples are defined using parentheses (and commas). >>> tu = (23, ‘abc’, 4.56, (2,3), ‘def’) • Lists are defined using square brackets (and commas). >>> li = [“abc”, 34, 4.34, 23] • Strings are defined using quotes (“, ‘, or “““). >>> st = “Hello World” >>> st = ‘Hello World’ >>> st = “““This is a multi-line string that uses triple quotes.””” "Vibrant Technology & Computer" Vashi, Navi mumbai
  • 38. Tuples, Lists, and Strings 2 • We can access individual members of a tuple, list, or string using square bracket “array” notation. >>> tu[1] # Second item in the tuple. ‘abc’ >>> li[1] # Second item in the list. 34 >>> st[1] # Second character in string. ‘e’ "Vibrant Technology & Computer" Vashi, Navi mumbai
  • 39. Looking up an Item >>> t = (23, ‘abc’, 4.56, (2,3), ‘def’) Positive index: count from the left, starting with 0. >>> t[1] ‘abc’ Negative lookup: count from right, starting with –1. >>> t[-3] 4.56 "Vibrant Technology & Computer" Vashi, Navi mumbai
  • 40. Slicing: Return Copy of a Subset 1 >>> t = (23, ‘abc’, 4.56, (2,3), ‘def’) Return a copy of the container with a subset of the original members. Start copying at the first index, and stop copying before the second index. >>> t[1:4] (‘abc’, 4.56, (2,3)) You can also use negative indices when slicing. >>> t[1:-1] (‘abc’, 4.56, (2,3))"Vibrant Technology & Computer" Vashi, Navi mumbai
  • 41. Slicing: Return Copy of a Subset 2 >>> t = (23, ‘abc’, 4.56, (2,3), ‘def’) Omit the first index to make a copy starting from the beginning of the container. >>> t[:2] (23, ‘abc’) Omit the second index to make a copy starting at the first index and going to the end of the container. >>> t[2:] (4.56, (2,3), ‘def’)"Vibrant Technology & Computer" Vashi, Navi mumbai
  • 42. Copying the Whole Container You can make a copy of the whole tuple using [:]. >>> t[:] (23, ‘abc’, 4.56, (2,3), ‘def’) So, there’s a difference between these two lines: >>> list2 = list1 # 2 names refer to 1 ref # Changing one affects both >>> list2 = list1[:] # Two copies, two refs # They’re independent "Vibrant Technology & Computer" Vashi, Navi mumbai
  • 43. The ‘in’ Operator • Boolean test whether a value is inside a container: >>> t = [1, 2, 4, 5] >>> 3 in t False >>> 4 in t True >>> 4 not in t False • Be careful: the ‘in’ keyword is also used in the syntax of other unrelated Python constructions: “for loops” and “list comprehensions.”"Vibrant Technology & Computer" Vashi, Navi mumbai
  • 44. The + Operator • The + operator produces a new tuple, list, or string whose value is the concatenation of its arguments. >>> (1, 2, 3) + (4, 5, 6) (1, 2, 3, 4, 5, 6) >>> [1, 2, 3] + [4, 5, 6] [1, 2, 3, 4, 5, 6] >>> “Hello” + “ ” + “World” ‘Hello World’"Vibrant Technology & Computer" Vashi, Navi mumbai
  • 45. The * Operator • The * operator produces a new tuple, list, or string that “repeats” the original content. >>> (1, 2, 3) * 3 (1, 2, 3, 1, 2, 3, 1, 2, 3) >>> [1, 2, 3] * 3 [1, 2, 3, 1, 2, 3, 1, 2, 3] >>> “Hello” * 3 ‘HelloHelloHello’ "Vibrant Technology & Computer" Vashi, Navi mumbai
  • 46. Mutability: Tuples vs. Lists What’s the difference between tuples and lists? "Vibrant Technology & Computer" Vashi, Navi mumbai
  • 47. Tuples: Immutable >>> t = (23, ‘abc’, 4.56, (2,3), ‘def’) >>> t[2] = 3.14 Traceback (most recent call last): File "<pyshell#75>", line 1, in -toplevel- tu[2] = 3.14 TypeError: object doesn't support item assignment You’re not allowed to change a tuple in place in memory; so, you can’t just change one element of it. But it’s always OK to make a fresh tuple and assign its reference to a previously used name. >>> t = (1, 2, 3, 4, 5) "Vibrant Technology & Computer" Vashi, Navi mumbai
  • 48. Lists: Mutable >>> li = [‘abc’, 23, 4.34, 23] >>> li[1] = 45 >>> li [‘abc’, 45, 4.34, 23] We can change lists in place. So, it’s ok to change just one element of a list. Name li still points to the same memory reference when we’re done. "Vibrant Technology & Computer" Vashi, Navi mumbai
  • 49. Operations on Lists Only 1 • Since lists are mutable (they can be changed in place in memory), there are many more operations we can perform on lists than on tuples. • The mutability of lists also makes managing them in memory more complicated… So, they aren’t as fast as tuples. It’s a tradeoff. "Vibrant Technology & Computer" Vashi, Navi mumbai
  • 50. Operations on Lists Only 2 >>> li = [1, 2, 3, 4, 5] >>> li.append(‘a’) >>> li [1, 2, 3, 4, 5, ‘a’] >>> li.insert(2, ‘i’) >>>li [1, 2, ‘i’, 3, 4, 5, ‘a’] "Vibrant Technology & Computer" Vashi, Navi mumbai
  • 51. Operations on Lists Only 3 The ‘extend’ operation is similar to concatenation with the + operator. But while the + creates a fresh list (with a new memory reference) containing copies of the members from the two inputs, the extend operates on list li in place. >>> li.extend([9, 8, 7]) >>>li [1, 2, ‘i’, 3, 4, 5, ‘a’, 9, 8, 7] Extend takes a list as an argument. Append takes a singleton. >>> li.append([9, 8, 7]) >>> li [1, 2, ‘i’, 3, 4, 5, ‘a’, 9, 8, 7, [9, 8, 7]] "Vibrant Technology & Computer" Vashi, Navi mumbai
  • 52. Operations on Lists Only 4 >>> li = [‘a’, ‘b’, ‘c’, ‘b’] >>> li.index(‘b’) # index of first occurrence 1 >>> li.count(‘b’) # number of occurrences 2 >>> li.remove(‘b’) # remove first occurrence >>> li [‘a’, ‘c’, ‘b’] "Vibrant Technology & Computer" Vashi, Navi mumbai
  • 53. Operations on Lists Only 5 >>> li = [5, 2, 6, 8] >>> li.reverse() # reverse the list *in place* >>> li [8, 6, 2, 5] >>> li.sort() # sort the list *in place* >>> li [2, 5, 6, 8] >>> li.sort(some_function) # sort in place using user-defined comparison "Vibrant Technology & Computer" Vashi, Navi mumbai
  • 54. Tuples vs. Lists • Lists slower but more powerful than tuples. – Lists can be modified, and they have lots of handy operations we can perform on them. – Tuples are immutable and have fewer features. • We can always convert between tuples and lists using the list() and tuple() functions. li = list(tu) tu = tuple(li) "Vibrant Technology & Computer" Vashi, Navi mumbai
  • 55. More About Assignment Classes, Functions, Naming Rules "Vibrant Technology & Computer" Vashi, Navi mumbai
  • 56. Assignment & Mutability 1 • Remember that assignment works differently for mutable vs. immutable datatypes. – If you type y=x, then changing y: …will change x if they are mutable. …won’t change x if they are immutable. >>> x = 3 >>> x = [ 1, 2, 3] >>> y = x >>> y = x >>> y = y + 1 >>> y.reverse() >>> print x >>> print x 3 [ 3, 2, 1] immutable mutable "Vibrant Technology & Computer" Vashi, Navi mumbai
  • 57. Assignment & Mutability 2 Python is object-oriented, and user-defined classes are mutable. Let’s say that the name x refers to an object of some class. This class has a “set” and a “get” function for some value. >>> x.getSomeValue() 4 What happens if we create a new name y and set y=x ? >>> y = x This creates a new name y which points to the same memory reference as the name x. Now, if we make some change to y, then x will be affected as well. >>> y.setSomeValue(3) >>> y.getSomeValue() 3 >>> x.getSomeValue() 3 "Vibrant Technology & Computer" Vashi, Navi mumbai
  • 58. Assignment & Mutability 3 • When passing parameters to functions: – Immutable data types are “call by value.” – Mutable data types are “call by reference.” – If you pass mutable data to a function, and you change it inside that function, the changes will persist after the function returns. – Immutable data appear unchanged inside of functions to which they are passed. "Vibrant Technology & Computer" Vashi, Navi mumbai
  • 59. Naming Rules • Names are case sensitive and cannot start with a number. They can contain letters, numbers, and underscores. bob Bob _bob _2_bob_ bob_2 BoB • There are some reserved words: and, assert, break, class, continue, def, del, elif, else, except, exec, finally, for, from, global, if, import, in, is, lambda, not, or, pass, print, raise, return, try, while "Vibrant Technology & Computer" Vashi, Navi mumbai
  • 60. Accessing Non-Existent Name • If you try to access a name before it’s been properly created (by placing it on the left side of an assignment), you’ll get an error. >>> y Traceback (most recent call last): File "<pyshell#16>", line 1, in -toplevel- y NameError: name ‘y' is not defined >>> y = 3 >>> y 3 "Vibrant Technology & Computer" Vashi, Navi mumbai
  • 61. Multiple Assignment • You can also assign to multiple names at the same time. >>> x, y = 2, 3 >>> x 2 >>> y 3 "Vibrant Technology & Computer" Vashi, Navi mumbai
  • 62. Thank you Vibrant Technologies & computers Vashi,Navi Mumbai "Vibrant Technology & Computer" Vashi, Navi mumbai