Introduction to the Python programming language (version 2.x)
Ambient intelligence: technology and design
http://bit.ly/polito-ami
Politecnico di Torino, 2015
The basics of Python are rather straightforward. In a few minutes you can learn most of the syntax. There are some gotchas along the way that might appear tricky. This talk is meant to bring programmers up to speed with Python. They should be able to read and write Python.
Python 101++: Let's Get Down to Business!Paige Bailey
You've started the Codecademy and Coursera courses; you've thumbed through Zed Shaw's "Learn Python the Hard Way"; and now you're itching to see what Python can help you do. This is the workshop for you!
Here's the breakdown: we're going to be taking you on a whirlwind tour of Python's capabilities. By the end of the workshop, you should be able to easily follow any of the widely available Python courses on the internet, and have a grasp on some of the more complex aspects of the language.
Please don't forget to bring your personal laptop!
Audience: This course is aimed at those who already have some basic programming experience, either in Python or in another high level programming language (such as C/C++, Fortran, Java, Ruby, Perl, or Visual Basic). If you're an absolute beginner -- new to Python, and new to programming in general -- make sure to check out the "Python 101" workshop!
The basics of Python are rather straightforward. In a few minutes you can learn most of the syntax. There are some gotchas along the way that might appear tricky. This talk is meant to bring programmers up to speed with Python. They should be able to read and write Python.
Python 101++: Let's Get Down to Business!Paige Bailey
You've started the Codecademy and Coursera courses; you've thumbed through Zed Shaw's "Learn Python the Hard Way"; and now you're itching to see what Python can help you do. This is the workshop for you!
Here's the breakdown: we're going to be taking you on a whirlwind tour of Python's capabilities. By the end of the workshop, you should be able to easily follow any of the widely available Python courses on the internet, and have a grasp on some of the more complex aspects of the language.
Please don't forget to bring your personal laptop!
Audience: This course is aimed at those who already have some basic programming experience, either in Python or in another high level programming language (such as C/C++, Fortran, Java, Ruby, Perl, or Visual Basic). If you're an absolute beginner -- new to Python, and new to programming in general -- make sure to check out the "Python 101" workshop!
Python supports multiple programming paradigms, including object-oriented, imperative and functional programming or procedural styles. It features a dynamic type system and automatic memory management and has a large and comprehensive standard library.
A slightly modified version of original "An introduction to Python
for absolute beginners" slides. For credits please check the second page. I used this presentation for my company's internal Python course.
Introduction to the basics of Python programming (part 3)Pedro Rodrigues
This is the 3rd part of a multi-part series that teaches the basics of Python programming. It covers list and dict comprehensions, functions, modules and packages.
Installing and Using Python
Basic I/O
Variables and Expressions
Conditional Code
Functions
Loops and Iteration
Python Data Structures
Errors and Exceptions
Object Oriented with Python
Multithreaded Programming with Python
Install/Create and Using Python Library
Compile Python Script
Resources
===========================
and 7 Quizzes
This presentation covers Python most important data structures like Lists, Dictionaries, Sets and Tuples. Exception Handling and Random number generation using simple python module "random" also covered. Added simple python programs at the end of the presentation
Python supports multiple programming paradigms, including object-oriented, imperative and functional programming or procedural styles. It features a dynamic type system and automatic memory management and has a large and comprehensive standard library.
A slightly modified version of original "An introduction to Python
for absolute beginners" slides. For credits please check the second page. I used this presentation for my company's internal Python course.
Introduction to the basics of Python programming (part 3)Pedro Rodrigues
This is the 3rd part of a multi-part series that teaches the basics of Python programming. It covers list and dict comprehensions, functions, modules and packages.
Installing and Using Python
Basic I/O
Variables and Expressions
Conditional Code
Functions
Loops and Iteration
Python Data Structures
Errors and Exceptions
Object Oriented with Python
Multithreaded Programming with Python
Install/Create and Using Python Library
Compile Python Script
Resources
===========================
and 7 Quizzes
This presentation covers Python most important data structures like Lists, Dictionaries, Sets and Tuples. Exception Handling and Random number generation using simple python module "random" also covered. Added simple python programs at the end of the presentation
Open source general-purpose. Multiplatform programming language
Object Oriented, Procedural, Functional
Easy to interface with C/ObjC/Java/Fortran
Easy to interface with C++ (via SWIG)
Great interactive environment
Python 'philosophy' emphasis readability, clarity and simplicity
The Interactive Interpreter
it is very easy to learn and understand.
Python is a general-purpose interpreted, interactive, object-oriented, and high-level programming language.
Make use of the PPT to have a better understanding of Python.
This is the third presentation in pySIG 2015 @ BMS College of Engineering, Bangalore. The code and assignments can be found at https://github.com/pranavsb
Build an application upon Semantic Web models. Brief overview of Apache Jena and OWL-API.
Semantic Web course
e-Lite group (https://elite.polito.it)
Politecnico di Torino, 2017
PowerOnt: an ontology-based approach for power consumption estimation in Smar...Luigi De Russis
Presentation given at the 1st Cognitive Internet of Things Technologies (COIOTE 2014)
October 27, 2014, Rome, Italy
The paper is available on the PORTO open access repositor of Politecnico di Torino: http://porto.polito.it/2570936/
Short seminar about the Semantic Web for the "Artificial Intelligence" course at Politecnico di Torino (academic year 2012/2013)
An updated version is available at http://www.slideshare.net/luigidr/semantic-web-an-introduction
An overview on social network technologies: are they "typical" website? Or do they work in a different way? How many and what technologies do Facebook and Instagram use?
Presentation made for the Multimedia Languages and Environments course at Politecnico di Torino (academic year 2013/2014).
A brief overview about writing clean code. Presentation made for the Multimedia Languages and Environments course at Politecnico di Torino (academic year 2012/2013).
Biological screening of herbal drugs: Introduction and Need for
Phyto-Pharmacological Screening, New Strategies for evaluating
Natural Products, In vitro evaluation techniques for Antioxidants, Antimicrobial and Anticancer drugs. In vivo evaluation techniques
for Anti-inflammatory, Antiulcer, Anticancer, Wound healing, Antidiabetic, Hepatoprotective, Cardio protective, Diuretics and
Antifertility, Toxicity studies as per OECD guidelines
Safalta Digital marketing institute in Noida, provide complete applications that encompass a huge range of virtual advertising and marketing additives, which includes search engine optimization, virtual communication advertising, pay-per-click on marketing, content material advertising, internet analytics, and greater. These university courses are designed for students who possess a comprehensive understanding of virtual marketing strategies and attributes.Safalta Digital Marketing Institute in Noida is a first choice for young individuals or students who are looking to start their careers in the field of digital advertising. The institute gives specialized courses designed and certification.
for beginners, providing thorough training in areas such as SEO, digital communication marketing, and PPC training in Noida. After finishing the program, students receive the certifications recognised by top different universitie, setting a strong foundation for a successful career in digital marketing.
Model Attribute Check Company Auto PropertyCeline George
In Odoo, the multi-company feature allows you to manage multiple companies within a single Odoo database instance. Each company can have its own configurations while still sharing common resources such as products, customers, and suppliers.
Introduction to AI for Nonprofits with Tapp NetworkTechSoup
Dive into the world of AI! Experts Jon Hill and Tareq Monaur will guide you through AI's role in enhancing nonprofit websites and basic marketing strategies, making it easy to understand and apply.
June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...Levi Shapiro
Letter from the Congress of the United States regarding Anti-Semitism sent June 3rd to MIT President Sally Kornbluth, MIT Corp Chair, Mark Gorenberg
Dear Dr. Kornbluth and Mr. Gorenberg,
The US House of Representatives is deeply concerned by ongoing and pervasive acts of antisemitic
harassment and intimidation at the Massachusetts Institute of Technology (MIT). Failing to act decisively to ensure a safe learning environment for all students would be a grave dereliction of your responsibilities as President of MIT and Chair of the MIT Corporation.
This Congress will not stand idly by and allow an environment hostile to Jewish students to persist. The House believes that your institution is in violation of Title VI of the Civil Rights Act, and the inability or
unwillingness to rectify this violation through action requires accountability.
Postsecondary education is a unique opportunity for students to learn and have their ideas and beliefs challenged. However, universities receiving hundreds of millions of federal funds annually have denied
students that opportunity and have been hijacked to become venues for the promotion of terrorism, antisemitic harassment and intimidation, unlawful encampments, and in some cases, assaults and riots.
The House of Representatives will not countenance the use of federal funds to indoctrinate students into hateful, antisemitic, anti-American supporters of terrorism. Investigations into campus antisemitism by the Committee on Education and the Workforce and the Committee on Ways and Means have been expanded into a Congress-wide probe across all relevant jurisdictions to address this national crisis. The undersigned Committees will conduct oversight into the use of federal funds at MIT and its learning environment under authorities granted to each Committee.
• The Committee on Education and the Workforce has been investigating your institution since December 7, 2023. The Committee has broad jurisdiction over postsecondary education, including its compliance with Title VI of the Civil Rights Act, campus safety concerns over disruptions to the learning environment, and the awarding of federal student aid under the Higher Education Act.
• The Committee on Oversight and Accountability is investigating the sources of funding and other support flowing to groups espousing pro-Hamas propaganda and engaged in antisemitic harassment and intimidation of students. The Committee on Oversight and Accountability is the principal oversight committee of the US House of Representatives and has broad authority to investigate “any matter” at “any time” under House Rule X.
• The Committee on Ways and Means has been investigating several universities since November 15, 2023, when the Committee held a hearing entitled From Ivory Towers to Dark Corners: Investigating the Nexus Between Antisemitism, Tax-Exempt Universities, and Terror Financing. The Committee followed the hearing with letters to those institutions on January 10, 202
A review of the growth of the Israel Genealogy Research Association Database Collection for the last 12 months. Our collection is now passed the 3 million mark and still growing. See which archives have contributed the most. See the different types of records we have, and which years have had records added. You can also see what we have for the future.
How to Make a Field invisible in Odoo 17Celine George
It is possible to hide or invisible some fields in odoo. Commonly using “invisible” attribute in the field definition to invisible the fields. This slide will show how to make a field invisible in odoo 17.
Acetabularia Information For Class 9 .docxvaibhavrinwa19
Acetabularia acetabulum is a single-celled green alga that in its vegetative state is morphologically differentiated into a basal rhizoid and an axially elongated stalk, which bears whorls of branching hairs. The single diploid nucleus resides in the rhizoid.
Synthetic Fiber Construction in lab .pptxPavel ( NSTU)
Synthetic fiber production is a fascinating and complex field that blends chemistry, engineering, and environmental science. By understanding these aspects, students can gain a comprehensive view of synthetic fiber production, its impact on society and the environment, and the potential for future innovations. Synthetic fibers play a crucial role in modern society, impacting various aspects of daily life, industry, and the environment. ynthetic fibers are integral to modern life, offering a range of benefits from cost-effectiveness and versatility to innovative applications and performance characteristics. While they pose environmental challenges, ongoing research and development aim to create more sustainable and eco-friendly alternatives. Understanding the importance of synthetic fibers helps in appreciating their role in the economy, industry, and daily life, while also emphasizing the need for sustainable practices and innovation.
Normal Labour/ Stages of Labour/ Mechanism of LabourWasim Ak
Normal labor is also termed spontaneous labor, defined as the natural physiological process through which the fetus, placenta, and membranes are expelled from the uterus through the birth canal at term (37 to 42 weeks
This slide is special for master students (MIBS & MIFB) in UUM. Also useful for readers who are interested in the topic of contemporary Islamic banking.
2. Editing / Formatting
• Python programs are
text files
• The end of a line
marks the end of a
statement
• Comments:
– Inline comments start
with a #
3/12/2015 Python basics 2
print 1+1 #statement
# inline comment
3. Editing / Formatting
• Code blocks are
defined through
identation
– mandatory
– 4 spaces strategy
• Use 4 spaces for code
identation
• Configure the text
editor to replace tabs
with 4 spaces (default
in PyDev)
• Exploit automatic
identation
3/12/2015 Python basics 3
def print_name():
# this is a block
name = 'sheldon'
surname = 'cooper'
print name, surname
4 spaces
4 spaces
4 spaces
4 spaces
4. Keywords
• and
• del
• from
• not
• while
• as
• elif
• global
• or
• with
• assert
• else
• if
• pass
• yield
• break
• except
• import
• print
• class
• exec
3/12/2015 Python basics 4
• in
• raise
• continue
• finally
• is
• return
• def
• for
• lambda
• try
5. Numbers and math
3/12/2015 Python basics 5
Operator Description
+ plus Sum
- minus Subtraction
/ slash Floor division
* asterisk Multiplication
** double asterisk Exponentiation
% percent Remainder
< less-than Comparison
> greater-than Comparison
<= less-than-equal Comparison
>= greater-than-equal Comparison
6. Numbers and math
3/12/2015 Python basics 6
print "I will now count my chickens:"
print "Hens", 25 + 30 / 6
print "Roosters", 100 - 25 * 3 % 4
print "Now I will count the eggs:"
print 3 + 2 + 1 - 5 + 4 % 2 - 1 / 4 + 6
print "Is it true that 3 + 2 < 5 - 7?"
print 3 + 2 < 5 - 7
print "What is 3 + 2?", 3 + 2
print "What is 5 - 7?", 5 - 7
print "Oh, that's why it's False."
print "How about some more."
print "Is it greater?", 5 > -2
7. Order of operations
• PEMDAS
– Parenthesis
– Exponentiation
– Multiplication
– Division
– Addition
– Subtraction
• Same precedence
– Left to right execution
3/12/2015 Python basics 7
8. Naming conventions
• joined_lower
– for functions,
variables, attributes
• joined_lower or
ALL_CAPS
– for constants
• StudlyCaps
– for classes
3/12/2015 Python basics 8
#variables
my_variable = 12
my_second_variable = 'Hello!'
#functions
my_function(my_variable)
my_print(my_second_variable)
9. Variables
• Variable types are not
explicitly declared
• Runtime type-checking
• The same variable can
be reused for holding
different data types
3/12/2015 Python basics 9
#integer variable
a = 1
print a
#float variable
a = 2.345
print a
#re-assignment to string
a = 'my name'
print a
# double quotes could be
# used as well
a = "my name"
print a
10. More variables
• Actual type can be
checked through the
interpreter
• Check the first result,
what happened?
• Display 01,010,01010
• Display 08
• Octal numbering system?
3/12/2015 Python basics 10
12. Strings
• Defined by using quotes
– "first string"
– 'second string'
• Immutable
• Each character in a string is assigned a number
– the number is called index
• Mathematical operators cannot be applied
• Exceptions
– + : means concatenation
– * : means repetition
3/12/2015 Python basics 12
13. Strings
3/12/2015 Python basics 13
name = 'Anthony "Tony" Stark'
age = 45 # not a lie
height = 174 # cm
weight = 78 # kg
eyes = 'brown'
teeth = 'white'
hair = 'brown'
print "Let's talk about %s." % name
print "He's %d cm tall." % height
print "He's %d pounds heavy." % weight
print "Actually that's not too heavy."
print "He's got %s eyes and %s hair." % (eyes, hair)
print "His teeth are usually %s depending on the coffee." % teeth
# this line is tricky, try to get it exactly right
print "If I add %d, %d, and %d I get %d." % (age, height, weight, age + height + weight)
14. Strings
3/12/2015 Python basics 14
name = 'Anthony "Tony" Stark'
age = 45 # not a lie
height = 174 # cm
weight = 78 # kg
eyes = 'brown'
teeth = 'white'
hair = 'brown'
print "Let's talk about %s." % name
print "He's %d cm tall." % height
print "He's %d pounds heavy." % weight
print "Actually that's not too heavy."
print "He's got %s eyes and %s hair." % (eyes, hair)
print "His teeth are usually %s depending on the coffee." % teeth
# this line is tricky, try to get it exactly right
print "If I add %d, %d, and %d I get %d." % (age, height, weight, age + height + weight)
Specifiers
• %s, format strings
• %d, format numbers
• %r, raw representation
Tuple
15. More strings
3/12/2015 Python basics 15
x = "There are %d types of people." % 10
binary = "binary"
do_not = "don't"
y = "Those who know %s and those who %s." % (binary, do_not)
print x
print y
print "I said: %r." % x
print "I also said: '%s'." % y
hilarious = False
joke_evaluation = "Isn't that joke so funny?! %r"
print joke_evaluation % hilarious
w = "This is the left side of..."
e = "a string with a right side."
print w + e
16. Escape sequences
• n
– Line feed + Carriage return
•
– Prints a «»
• We want to print «Hello»
– print "I said: "Hello" "
– Syntax error: no difference between quotes
• Solution: using escape sequences
– print "I said: “Hello" "
3/12/2015 Python basics 16
17. Getting input from people
• Asking questions
– We want to ask the user’s age
– We want to ask the user’s height
• The raw_input()function allows to read from
the console
3/12/2015 Python basics 17
print "How old are you?",
age = raw_input()
print "How tall are you?",
height = raw_input()
print "You are %s years old, and you are about %s cm tall." % (age, height)
18. More input
3/12/2015 Python basics 18
height = int(raw_input("How tall are you? "))
name = raw_input("What's your name? ")
print type(height)
print type(name)
print("Hello %s, you are about %d tall" %(name, height) )
19. Command-line parameters
• Python scripts can receive launch parameters
– Placed just after the script name
– Any number
– Accessible through sys.argv
• sys
– Python module to handle system-level operations
• argv
– Argument variable
– for handling command-line parameters
3/12/2015 Python basics 19
20. Command-line parameters
3/12/2015 Python basics 20
from sys import argv
script, first, second, third = argv
print 'The script is called:', script
print 'Your first variable is:', first
print 'Your second variable is:', second
print 'Your third variable is:', third
21. Functions
• A function is a named sequence of statements
that performs a computation
– Definition first:
• specify the name and the sequence of statements
– Then usage:
• “call” the function by name
• Examples
– Type conversion functions
• int(‘32’) 32
• str(3.2479) ‘3.2479’
3/12/2015 Python basics 21
22. Math functions
• Located in the math module
3/12/2015 Python basics 22
import math
signal_power = 10.0
noise_power = 0.01
ratio = signal_power / noise_power
print "ratio:", ratio
decibels = 10 * math.log10(ratio)
print "decibels:", decibels
radians = 0.7
height = math.sin(radians)
print height
Function call
23. String functions
• len()
– Gets the length (the number of characters) of a
string
• lower()
– Gets rid of all the capitalization in a string
• upper()
– Transform a string in upper case
• str()
– Transform «everything» in a string
3/12/2015 Python basics 23
24. String functions: an example
3/12/2015 Python basics 24
course_name = 'Ambient Intelligence'
string_len = len(course_name)
print string_len # 20
print course_name.lower() # ambient intelligence
print course_name.upper() # AMBIENT INTELLIGENCE
pi = 3.14
print "the value of pi is around " + str(pi) without str()
it gives an error
25. New functions
• Can be defined by developers
• Typically used to group homogeneous code
portions
– i.e., code for accomplishing a well-defined operation
• Enable re-use
– Same operation can be re-used several times
• Defined using the keyword def
3/12/2015 Python basics 25
26. New functions
3/12/2015 Python basics 26
• Compute the area of a disk, given the radius
import math
def circle_area(radius):
return radius**2*math.pi
radius = raw_input('Please, insert the radiusn')
print 'Radius: ', radius
print 'Area: ', circle_area(radius) Function call
Function definition
27. Docstring
• Optional, multiline comment
• Explains what the function does
• Starts and ends with """ or '''
3/12/2015 Python basics 27
import math
def circle_area(radius):
'''Compute the circle area given its radius'''
return radius**2*math.pi
radius = raw_input('Please, insert the radiusn')
print 'Radius: ', radius
print 'Area: ', circle_area(radius)
28. Modules
• A way to logically organize the code
• They are files consisting of Python code
– they can define (and implement) functions, variables,
etc.
– typically, the file containing a module is called in the
same way
• e.g., the module math resides in a file named math.py
• We already met them
3/12/2015 Python basics 28
import math
from sys import argv
29. Importing modules
• import module_name
– allows to use all the items present in a module
3/12/2015 Python basics 29
import math
def circle_area(radius):
return radius**2*math.pi
…
Import the math module
Call the pi variable from
the math module
30. Importing modules
• from module_name import name
– it only imports name from the specified module
• from module_name import *
– it imports all names from a module
– do not use!
3/12/2015 Python basics 30
from math import pi
def circle_area(radius):
return radius**2*pi
…
Import pi from the math module
Use the pi variable
31. Playing with files
• Python script can read and write files
• First, open a file
– You can use the open() function
• Then, you can read or write it
– With read(), readline(), or write()
• Finally, remember to close the file
– You can use the close() function
3/12/2015 Python basics 31
32. Reading files
• Read a file taking its name from command line
3/12/2015 Python basics 32
from sys import argv
filename = argv[1]
txt = open(filename)
print “Here’s your file %r:", % filename
print txt.read()
print “nType the filename again:”
file_again = raw_input(“> ”)
txt_again = open(file_again)
print txt_again.read()
Open the file
Show the file content
33. Writing files
3/12/2015 Python basics 33
from sys import argv
script, filename = argv
print "We're going to erase %r." % filename
print "Opening the file..."
target = open(filename, 'w')
print "… truncating the file. Goodbye!"
target.truncate()
print "nNow I'm going to ask you for two lines."
line1 = raw_input("line 1: ")
line2 = raw_input("line 2: ")
print "I'm going to write these to the file."
target.write(line1)
target.write("n")
target.write(line2)
target.write("n")
print "And finally, we close it."
target.close()
Open the file in write mode
Empties the file
Write a string to the file
34. Conditionals and control flow
• Control flow gives the ability to choose among
outcomes
– based off what else is happening in the program
• Comparators
– Equal to ==
– Not equal to !=
– Less than <
– Less than or equal to <=
– Greater than >
– Greater than or equal to >=
3/12/2015 Python basics 34
36. Boolean operators
• They are three:
– not
– and
– or
• Not evaluated from left to right
– not is evaluated first
– and is evaluated next
– or is evaluated last
3/12/2015 Python basics 36
37. Boolean operators: an example
3/12/2015 Python basics 37
print 2 == 1 and True # False
print 2 == 2 or True # True
print 10 >= 2 and 2 != 1 # True
print not True # False
print 10 > 5 and 10 == 10 or 5 < 2 # True
print not False and True # True
38. Conditional statement
• if is a statements that executes some code
after checking if a given expression is True
• Structure
if expression:
do something
3/12/2015 Python basics 38
people = 20
cats = 30
if people < cats:
print 'Too many cats! The world
is doomed!'
if people > cats:
print 'Not many cats! The world
is saved!'
39. More “if”
• Let’s try to “improve” the previous example
• Chained conditionals
– To express more than two possibilities
– Each condition is checked in order
3/12/2015 Python basics 39
people = 20
cats = 30
if people < cats:
print 'Too many cats! The world is doomed!'
elif people > cats:
print 'Not many cats! The world is saved!'
else:
print "We can’t decide.”
else if
40. Loops and lists
• Loop
– An easy way to do repetitive things
– A condition to start and stop the loop is required
– e.g., for and while loops
• List
– A datatype for storing multiple items
• a sequence of values
– You can assign items to a list in this way:
list_name = [item1, item2, …]
3/12/2015 Python basics 40
41. Loops and lists: an example
3/12/2015 Python basics 41
the_count = [1, 2, 3, 4, 5]
fruits = ['apples', 'oranges', 'pears', 'apricots']
change = [1, 'pennies', 2, 'dimes', 3, 'quarters']
# this first kind of for-loop goes through a list
for number in the_count:
print 'This is count %d' % number
# same as above
for fruit in fruits:
print 'A fruit of type: %s' % fruit
# we can go through mixed lists too
# notice that we have to use %r since we don't know what's in it
for i in change:
print 'I got %r' % i
Three lists
42. Loops and lists: an example
3/12/2015 Python basics 42
the_count = [1, 2, 3, 4, 5]
fruits = ['apples', 'oranges', 'pears', 'apricots']
change = [1, 'pennies', 2, 'dimes', 3, 'quarters']
# this first kind of for-loop goes through a list
for number in the_count:
print 'This is count %d' % number
# same as above
for fruit in fruits:
print 'A fruit of type: %s' % fruit
# we can go through mixed lists too
# notice that we have to use %r since we don't know what's in it
for i in change:
print 'I got %r' % i
Structure of a for loop
• for variable in collection:
• indent for the loop body
43. More “for”
3/12/2015 Python basics 43
# we can also build lists: start with an empty one…
elements = []
# then use the range function to do 0 to 5 counts
for i in range(0, 6):
print 'Adding %d to the list.' % i
# append() is a function that lists understand
elements.append(i)
# now we can print them out
for i in elements:
print 'Element was: %d' % i
Empty list
Repeat 6 times
44. Lists
• Mutable
• Do not have a fixed length
– You can add items to a list at any time
• Accessible by index
3/12/2015 Python basics 44
letters = [‘a’, ‘b’, ‘c’]
letters.append(‘d’)
print letters # a, b, c, d
print letters[0] # a
print len(letters) # 4
letters[3] = ‘e’
print letters # a, b, c, e
45. More lists
• List concatenation
– with the + operator
• List slices
– to access a portion of a list
– with the [:] operator
3/12/2015 Python basics 45
a = [1, 2, 3]
b = [4, 5, 6]
c = a + b
print c # 1, 2, 3, 4, 5, 6
c = [1, 2, 3, 4, 5, 6]
d = c[1:3] # d is [2, 3]
e = c[:3] # e is [1, 2, 3]
f = c[:] # f is a full copy of c
46. More lists
• List concatenation
– with the + operator
• List slices
– to access a portion of a list
– with the [:] operator
3/12/2015 Python basics 46
a = [1, 2, 3]
b = [4, 5, 6]
c = a + b
print c # 1, 2, 3, 4, 5, 6
c = [1, 2, 3, 4, 5, 6]
d = c[1:3] # d is [2, 3]
e = c[:3] # e is [1, 2, 3]
f = c[:] # f is a full copy of c
works with string, too
47. List functions
• append()
– add a new element to the end of a list
– e.g., my_list.append(‘d’)
• sort()
– arrange the elements of the list from low to high
– e.g., from a to z, from 1 to infinite, etc.
• extend()
– takes a list as an argument and appends all its
elements
– e.g., first_list.extend(second_list)
3/12/2015 Python basics 47
48. Deleting elements from a list
• Several ways to delete elements from a list
• If you know the index of the element to
remove: pop()
– without providing an index, pop() delete the last
element
• If you know the element to remove (but not the
index): remove()
• To remove more than one element: del()
– with a slice index
• e.g., del my_list[5:8]
3/12/2015 Python basics 48
49. Strings vs. lists
• A string is a sequence of character, but a list of
character is not a string
• To convert a string into a list of characters: list()
– e.g., my_list = list(my_string)
• To break a string into separate words: split()
– split a list according to some delimiters (default:
space)
– e.g., my_list = my_string.split()
– The inverse function is join()
3/12/2015 Python basics 49
50. Copying lists
• What happens here?
3/12/2015 Python basics 50
fruits = ['apple', 'orange', 'pear', 'apricot']
print 'The fruits are:', fruits
favourite_fruits = fruits
print 'My favourite fruits are', favourite_fruits
# add a fruit to the original list
fruits.append(‘banana’)
print 'The fruits now are:', fruits
print 'My favourite fruits are', favourite_fruits
51. Copying lists
• What happens here?
3/12/2015 Python basics 51
fruits = ['apple', 'orange', 'pear', 'apricot']
print 'The fruits are:', fruits
favourite_fruits = fruits
print 'My favourite fruits are', favourite_fruits
# add a fruit to the original list
fruits.append(‘banana’)
print 'The fruits now are:', fruits
print 'My favourite fruits are', favourite_fruits
We do not make a copy of
the entire list, but we only
make a reference to it!
52. Copying lists
• How to make a full copy of a list?
• Various methods exist
– you can entirely slice a list
• favourite_fruits = fruits[:]
– you can create a new list from the existing one
• favourite_fruits = list(fruit)
– you can extend an empty list with the existing one
• favourite_fruits.extend(fruit)
• Prefer the list() method, when possible!
3/12/2015 Python basics 52
53. Dictionaries
• Similar to lists, but you can access values by
looking up a key instead of an index
– A key can be a string or a number
• Example
– A dictionary with 3 key-value pairs
dict = { ‘key1’ : 1, ‘key2’ : 2, ‘key3’ : 3 }
• Mutable, like lists
– They can be changed after their creation
3/12/2015 Python basics 53
54. Dictionaries: an example
3/12/2015 Python basics 54
# create a mapping of U.S. state to abbreviation
states = {
'Oregon' : 'OR',
'Florida' : 'FL',
'California' : 'CA'
}
print 'States:', states
print 'Is Oregon available?', 'Oregon' in states
# add some more states
states['New York'] = 'NY'
states['Michigan'] = 'MI'
# print two states
print "New York’s abbreviation is: ", states[‘New York’]
print "Florida’s abbreviation is: ", states[‘Florida’]
Create a dictionary with 3 key-value pairs
Add two more key-value pairs
55. More dictionaries
3/12/2015 Python basics 55
# states is a dictionary defined as before
# print every state abbreviation
for state, abbrev in states.items():
print "%s is abbreviated %s", % (state, abbrev)
# safely get an abbreviation of a state that might not be there
state = states.get('Texas', None) # None is the default
if not state:
print "Sorry, no Texas."
# get a state abbreviation with a default value
next_state = states.get('Massachusetts', 'Does Not Exist')
print "Massachusetts is abbreviated %s", % next_state
56. Dictionary functions
• len()
– dictionary length: the number of key-value pairs
• del()
– remove a key-value pair
• e.g., del my_dict[my_key]
• clear()
– remove all items from a dictionary
• keys() and values()
– return a copy of the dictionary’s list of key and value,
respectively
3/12/2015 Python basics 56
57. References and Links
• The Python Tutorial,
http://docs.python.org/2/tutorial/
• «Think Python: How to think like a computer
scientist», Allen Downey, Green Tea Press,
Needham, Massachusetts
• «Dive into Python 2», Mark Pilgrim
• «Learn Python the Hard Way», Zed Shaw
• «Learning Python» (5th edition), Mark Lutz, O'Reilly
• The Google Python course,
https://developer.google.com/edu/python
• Online Python Tutor, http://pythontutor.com
3/12/2015 Python basics 57
59. License
• This work is licensed under the Creative Commons “Attribution-
NonCommercial-ShareAlike Unported (CC BY-NC-SA 3,0)” License.
• You are free:
– to Share - to copy, distribute and transmit the work
– to Remix - to adapt the work
• Under the following conditions:
– Attribution - You must attribute the work in the manner specified by the
author or licensor (but not in any way that suggests that they endorse you
or your use of the work).
– Noncommercial - You may not use this work for commercial purposes.
– Share Alike - If you alter, transform, or build upon this work, you may
distribute the resulting work only under the same or similar license to this
one.
• To view a copy of this license, visit
http://creativecommons.org/license/by-nc-sa/3.0/
3/12/2015 Version Control with Git 59