Guide to Programming with Python
description
Transcript of Guide to Programming with Python
![Page 1: Guide to Programming with Python](https://reader036.fdocuments.in/reader036/viewer/2022062316/568150a7550346895dbeb31b/html5/thumbnails/1.jpg)
Guide to Programming with Python
Chapter Fourfor Loops, Strings, and Tuples: The Word
Jumble Game
![Page 2: Guide to Programming with Python](https://reader036.fdocuments.in/reader036/viewer/2022062316/568150a7550346895dbeb31b/html5/thumbnails/2.jpg)
Guide to Programming with Python 2
Objectives
• Construct for loops to move through a sequence• Use the range() function to create a sequence of
integers• Treat strings as sequences• Use tuples to harness the power of sequences• Use sequence functions and operators• Index and slice sequences
![Page 3: Guide to Programming with Python](https://reader036.fdocuments.in/reader036/viewer/2022062316/568150a7550346895dbeb31b/html5/thumbnails/3.jpg)
Guide to Programming with Python 3
The Word Jumble Game
Figure 4.1: Sample run of the Word Jumble gameThis jumble looks “difficult.”
![Page 4: Guide to Programming with Python](https://reader036.fdocuments.in/reader036/viewer/2022062316/568150a7550346895dbeb31b/html5/thumbnails/4.jpg)
Guide to Programming with Python 4
Using for Loops
• for loop – Like while loop, repeats a loop body– Unlike while loop, doesn’t repeat based on condition– Repeats loop body for each element in a sequence– Ends when it reaches end of the sequence– e.g., go through sequence of game titles and print
each
![Page 5: Guide to Programming with Python](https://reader036.fdocuments.in/reader036/viewer/2022062316/568150a7550346895dbeb31b/html5/thumbnails/5.jpg)
Guide to Programming with Python 5
The Loopy String Program
Figure 4.2: Sample run of the Loopy String programA for loop goes through a word, one character at a time.
![Page 6: Guide to Programming with Python](https://reader036.fdocuments.in/reader036/viewer/2022062316/568150a7550346895dbeb31b/html5/thumbnails/6.jpg)
Guide to Programming with Python 6
Understanding for Loops
• Sequence: An ordered list of elements• Element: A single item in a sequence• Iterate: To move through a sequence, in order• List of your top-ten movies
– A sequence– Each element is a movie title– To iterate over would be to go through each title, in
order
![Page 7: Guide to Programming with Python](https://reader036.fdocuments.in/reader036/viewer/2022062316/568150a7550346895dbeb31b/html5/thumbnails/7.jpg)
Guide to Programming with Python 7
• for loop iterates over a sequence; performs loop body for each element
• During each iteration, loop variable gets next element
• In loop body, something usually done with loop variable
Understanding for Loops (continued)
![Page 8: Guide to Programming with Python](https://reader036.fdocuments.in/reader036/viewer/2022062316/568150a7550346895dbeb31b/html5/thumbnails/8.jpg)
Guide to Programming with Python 8
Understanding for Loops (continued)
for letter in word:print letter
• A string is a sequence of characters• So loop iterates over letters in string word• Loop body simply prints each element (character)
![Page 9: Guide to Programming with Python](https://reader036.fdocuments.in/reader036/viewer/2022062316/568150a7550346895dbeb31b/html5/thumbnails/9.jpg)
Guide to Programming with Python 9
Counting with a for Loop
• Can use for loop to count• Can use in combination with range() function
![Page 10: Guide to Programming with Python](https://reader036.fdocuments.in/reader036/viewer/2022062316/568150a7550346895dbeb31b/html5/thumbnails/10.jpg)
Guide to Programming with Python 10
The Counter Program
Figure 4.3: Sample run of the Counter programUsing a for loop, counts forward, by fives, and backward.
![Page 11: Guide to Programming with Python](https://reader036.fdocuments.in/reader036/viewer/2022062316/568150a7550346895dbeb31b/html5/thumbnails/11.jpg)
Guide to Programming with Python 11
The range() Function
>>> range(5)[0, 1, 2, 3, 4]
>>> range(0, 50, 5)[0, 5, 10, 15, 20, 25, 30, 35, 40, 45]
• Returns a sequence of integers in range• range(i) returns sequence 0 through i – 1• range(i, j) returns sequence i through j – 1• range(i, j, k) returns sequence i to j - 1, step k
![Page 12: Guide to Programming with Python](https://reader036.fdocuments.in/reader036/viewer/2022062316/568150a7550346895dbeb31b/html5/thumbnails/12.jpg)
Guide to Programming with Python 12
Counting Forward, By Fives, and Backwards
# counting forwardfor i in range(10):
print i,
# counting by fivesfor i in range(0, 50, 5):
print i,
# counting backwardsfor i in range(10, 0, -1):
print i,
![Page 13: Guide to Programming with Python](https://reader036.fdocuments.in/reader036/viewer/2022062316/568150a7550346895dbeb31b/html5/thumbnails/13.jpg)
Guide to Programming with Python 13
Using Sequence Operators and Functions with Strings
• Python has functions and operators that work with sequences
• Can tell you things such as– Length of sequence– If contains specific element
![Page 14: Guide to Programming with Python](https://reader036.fdocuments.in/reader036/viewer/2022062316/568150a7550346895dbeb31b/html5/thumbnails/14.jpg)
Guide to Programming with Python 14
The Message Analyzer Program
Figure 4.4: Sample run of the Message Analyzer programlen() function and in operator produce information about a message.
![Page 15: Guide to Programming with Python](https://reader036.fdocuments.in/reader036/viewer/2022062316/568150a7550346895dbeb31b/html5/thumbnails/15.jpg)
Guide to Programming with Python 15
Using the len() function
>>> len("Game Over!")10
• Takes a sequence• Returns the number of elements• In strings, every character counts – spaces and
punctuation
![Page 16: Guide to Programming with Python](https://reader036.fdocuments.in/reader036/viewer/2022062316/568150a7550346895dbeb31b/html5/thumbnails/16.jpg)
Guide to Programming with Python 16
Using the in Operator
>>> "e" in "Game Over"True
• Tests for element membership– Returns True if element is in sequence– Returns False otherwise
![Page 17: Guide to Programming with Python](https://reader036.fdocuments.in/reader036/viewer/2022062316/568150a7550346895dbeb31b/html5/thumbnails/17.jpg)
Guide to Programming with Python 17
Indexing Strings
• Sequential access: Access in order• Random access: Direct access to any element• Indexing: Process used to access a specific
element of a sequence• Member: An element of a sequence• Python allows for random access to sequences
(such as strings) via indexing
![Page 18: Guide to Programming with Python](https://reader036.fdocuments.in/reader036/viewer/2022062316/568150a7550346895dbeb31b/html5/thumbnails/18.jpg)
Guide to Programming with Python 18
The Random Access Program
Figure 4.5: Sample run of the Random Access programYou can directly access any character in a string through indexing.
![Page 19: Guide to Programming with Python](https://reader036.fdocuments.in/reader036/viewer/2022062316/568150a7550346895dbeb31b/html5/thumbnails/19.jpg)
Guide to Programming with Python 19
Working with Positive Position Numbers
>>> word = "index">>> word[3]'e'
• Use brackets and position number to index• Indexing for positive position numbers starts at 0• Length of sequence minus one is last position• Attempt to access beyond last position results in
error
![Page 20: Guide to Programming with Python](https://reader036.fdocuments.in/reader036/viewer/2022062316/568150a7550346895dbeb31b/html5/thumbnails/20.jpg)
Guide to Programming with Python 20
Working with Negative Position Numbers
>>> word = "index">>> word[-2]'e'
• Can use negative position numbers• Start at end of sequence with position number: –1• End at first element, with position number: negative
sequence length
![Page 21: Guide to Programming with Python](https://reader036.fdocuments.in/reader036/viewer/2022062316/568150a7550346895dbeb31b/html5/thumbnails/21.jpg)
Guide to Programming with Python 21
Positive and Negative Position Numbers
Figure 4.6: Sequence Indexing
![Page 22: Guide to Programming with Python](https://reader036.fdocuments.in/reader036/viewer/2022062316/568150a7550346895dbeb31b/html5/thumbnails/22.jpg)
Guide to Programming with Python 22
String Immutability
>>> word = "game">>> word[0] = "l"TypeError: object does not support item assignment
• Mutable: Changeable • Immutable: Unchangeable• Strings are immutable sequences; can’t be
changed• But can create new strings from existing ones (like
through concatenation)
![Page 23: Guide to Programming with Python](https://reader036.fdocuments.in/reader036/viewer/2022062316/568150a7550346895dbeb31b/html5/thumbnails/23.jpg)
Guide to Programming with Python 23
String Immutability (continued)
Figure 4.7: Demonstration of string immutability
![Page 24: Guide to Programming with Python](https://reader036.fdocuments.in/reader036/viewer/2022062316/568150a7550346895dbeb31b/html5/thumbnails/24.jpg)
Guide to Programming with Python 24
Building a New String
• Can't modify an existing string• But can "build" (create) a new string with
concatenation operator
![Page 25: Guide to Programming with Python](https://reader036.fdocuments.in/reader036/viewer/2022062316/568150a7550346895dbeb31b/html5/thumbnails/25.jpg)
Guide to Programming with Python 25
The No Vowels Program
Figure 4.8: Sample run of No Vowels programNew strings are created through concatenation.
![Page 26: Guide to Programming with Python](https://reader036.fdocuments.in/reader036/viewer/2022062316/568150a7550346895dbeb31b/html5/thumbnails/26.jpg)
Guide to Programming with Python 26
Constants
VOWELS = "aeiou"
• Constant: Name associated with value not meant to be changed
• Convention is to use all uppercase variable names • Can make programs clearer • Saves retyping (and possibly errors from typos) • No true constants in Python
![Page 27: Guide to Programming with Python](https://reader036.fdocuments.in/reader036/viewer/2022062316/568150a7550346895dbeb31b/html5/thumbnails/27.jpg)
Guide to Programming with Python 27
Creating New Strings from Existing Ones
new_message += letter
• Concatenation creates brand-new string• Remember, strings are immutable• So, new_message becomes the newly created string
resulting from concatenation
![Page 28: Guide to Programming with Python](https://reader036.fdocuments.in/reader036/viewer/2022062316/568150a7550346895dbeb31b/html5/thumbnails/28.jpg)
Guide to Programming with Python 28
Slicing Strings
• Slice: Copy of continuous section of a sequence• Can make slices (copies) of continuous sections of
sequence elements• Can slice one element or multiple, continuous part
of sequence• Can even create a slice that is copy of entire
sequence
![Page 29: Guide to Programming with Python](https://reader036.fdocuments.in/reader036/viewer/2022062316/568150a7550346895dbeb31b/html5/thumbnails/29.jpg)
Guide to Programming with Python 29
The Pizza Slicer Program
Figure 4.9: Sample run of the Pizza Slicer programFresh, hot slices of "pizza", made just the way you asked.
![Page 30: Guide to Programming with Python](https://reader036.fdocuments.in/reader036/viewer/2022062316/568150a7550346895dbeb31b/html5/thumbnails/30.jpg)
Guide to Programming with Python 30
None
• Representing nothing• Makes a good placeholder for a value • Evaluates to False when treated as a condition
![Page 31: Guide to Programming with Python](https://reader036.fdocuments.in/reader036/viewer/2022062316/568150a7550346895dbeb31b/html5/thumbnails/31.jpg)
Guide to Programming with Python 31
Slicing
Figure 4.10: Slicing end pointsAn example of slicing end point numbers for the string "pizza".
QuickTime™ and a decompressor
are needed to see this picture.
QuickTime™ and a decompressor
are needed to see this picture.
![Page 32: Guide to Programming with Python](https://reader036.fdocuments.in/reader036/viewer/2022062316/568150a7550346895dbeb31b/html5/thumbnails/32.jpg)
Guide to Programming with Python 32
Slicing (continued)
>>> word = "pizza">>> print word[0:5]pizza>>> print word[1:3]iz>>> print word[-4:3]iz
• Can give start and end position • Slice is a brand-new sequence
![Page 33: Guide to Programming with Python](https://reader036.fdocuments.in/reader036/viewer/2022062316/568150a7550346895dbeb31b/html5/thumbnails/33.jpg)
Guide to Programming with Python 33
Slicing (continued)
>>> word = "pizza">>> word[:4]'pizz'>>> word[2:]'zza'>>> word[:]'pizza'
• Can omit the beginning point • Can omit the ending point• sequence[:] is copy of sequence
![Page 34: Guide to Programming with Python](https://reader036.fdocuments.in/reader036/viewer/2022062316/568150a7550346895dbeb31b/html5/thumbnails/34.jpg)
Guide to Programming with Python 34
Creating Tuples
• Tuple: Immutable sequence of values of any type• Could have tuple of integers for a high score list,
for example• Tuples elements don't need to all be of same type
![Page 35: Guide to Programming with Python](https://reader036.fdocuments.in/reader036/viewer/2022062316/568150a7550346895dbeb31b/html5/thumbnails/35.jpg)
Guide to Programming with Python 35
The Hero’s Inventory Program
Figure 4.11: Sample run of the Hero’s Inventory ProgramThe hero’s inventory is represented by a tuple of strings.
![Page 36: Guide to Programming with Python](https://reader036.fdocuments.in/reader036/viewer/2022062316/568150a7550346895dbeb31b/html5/thumbnails/36.jpg)
Guide to Programming with Python 36
Tuple Basics
• Creating an Empty Tupleinventory = ()
• Treating a Tuple as a Conditionif not inventory:
print "You are empty-handed."
• Creating a Tuple with Elementsinventory = ("sword", "armor", "shield", "healing potion")
![Page 37: Guide to Programming with Python](https://reader036.fdocuments.in/reader036/viewer/2022062316/568150a7550346895dbeb31b/html5/thumbnails/37.jpg)
Guide to Programming with Python 37
Tuple Basics (continued)
• Printing a tupleprint "\nThe tuple inventory is:\n", inventory
• Looping through a tuple’s elementsfor item in inventory:
print item
![Page 38: Guide to Programming with Python](https://reader036.fdocuments.in/reader036/viewer/2022062316/568150a7550346895dbeb31b/html5/thumbnails/38.jpg)
Guide to Programming with Python 38
Using Tuples
• Tuples are a kind of sequence (like strings) so can:– Get length with len()– Iterate through elements with for loop– Test for element membership with in – Index, slice, and concatenate
![Page 39: Guide to Programming with Python](https://reader036.fdocuments.in/reader036/viewer/2022062316/568150a7550346895dbeb31b/html5/thumbnails/39.jpg)
Guide to Programming with Python 39
The Hero’s Inventory 2.0
Figure 4.12: Sample run of the Hero’s Inventory programDemonstrates indexing, slicing, and concatenating tuples
![Page 40: Guide to Programming with Python](https://reader036.fdocuments.in/reader036/viewer/2022062316/568150a7550346895dbeb31b/html5/thumbnails/40.jpg)
Guide to Programming with Python 40
Using len() and in with Tuples
• The len() function with tuples– Just as with strings, returns number of elementsprint "You have", len(inventory), "items."
• The in operator with tuples– Just as with strings, tests for element membershipif "healing potion" in inventory:
print "You will live to fight another day."
![Page 41: Guide to Programming with Python](https://reader036.fdocuments.in/reader036/viewer/2022062316/568150a7550346895dbeb31b/html5/thumbnails/41.jpg)
Guide to Programming with Python 41
Indexing Tuples
Figure 4.13: Each element has a corresponding position number.Each string is a single element in the tuple.
![Page 42: Guide to Programming with Python](https://reader036.fdocuments.in/reader036/viewer/2022062316/568150a7550346895dbeb31b/html5/thumbnails/42.jpg)
Guide to Programming with Python 42
Slicing Tuples
Figure 4.14: Slicing positions defined between elementsTuple slicing works much like string slicing.
QuickTime™ and a decompressorare needed to see this picture.QuickTime™ and a
decompressorare needed to see this picture.
QuickTime™ and a decompressor
are needed to see this picture.
QuickTime™ and a decompressor
are needed to see this picture.QuickTime™ and a
decompressorare needed to see this picture.
![Page 43: Guide to Programming with Python](https://reader036.fdocuments.in/reader036/viewer/2022062316/568150a7550346895dbeb31b/html5/thumbnails/43.jpg)
Guide to Programming with Python 43
Tuple Immutability
>>> inventory = ("sword", "armor", "shield", "healing potion")>>> inventory[0] = "battleax"TypeError: object doesn't support item assignment
• Tuples are immutable • But can create new tuples from existing ones
![Page 44: Guide to Programming with Python](https://reader036.fdocuments.in/reader036/viewer/2022062316/568150a7550346895dbeb31b/html5/thumbnails/44.jpg)
Guide to Programming with Python 44
Concatenating Tuples
>>> inventory = ("sword", "armor", "shield", "healing potion")>>> chest = ("gold", "gems")>>> inventory += chest>>> print inventory('sword', 'armor', 'shield', 'healing potion',
'gold', 'gems')
• Concatenation operator, +, works with tuples just like with strings
![Page 45: Guide to Programming with Python](https://reader036.fdocuments.in/reader036/viewer/2022062316/568150a7550346895dbeb31b/html5/thumbnails/45.jpg)
Guide to Programming with Python 45
Review word_jumble.py
![Page 46: Guide to Programming with Python](https://reader036.fdocuments.in/reader036/viewer/2022062316/568150a7550346895dbeb31b/html5/thumbnails/46.jpg)
Guide to Programming with Python 46
Summary
• An ordered list of elements is called what?– A sequence
• To move through a sequence, in order, is called what?– Iterate
• When a for loop iterates over a sequence, how many times does it perform its loop body?– As many times as there are elements in the sequence
• What would range(20,10,-2) return?– [20, 18, 16, 14, 12]
• What would len(range(20,10,-2)) return?– 5
![Page 47: Guide to Programming with Python](https://reader036.fdocuments.in/reader036/viewer/2022062316/568150a7550346895dbeb31b/html5/thumbnails/47.jpg)
Guide to Programming with Python 47
Summary (continued)• If I use the in operator to test for element membership in a
tuple, what does it return if the element is there?– True
• What is the name of the technique used to access a specific element of a sequence?– Indexing
• Match the following pairs of words:– mutable unchangeable– immutable changeable
• Strings are immutable sequences, true or false?– True
• Constants are values that are meant to change, true or false?– False
![Page 48: Guide to Programming with Python](https://reader036.fdocuments.in/reader036/viewer/2022062316/568150a7550346895dbeb31b/html5/thumbnails/48.jpg)
Guide to Programming with Python 48
Summary (continued)• String concatenation adds onto an existing string, true or false?
– False, it creates brand-new strings• What does None evaluate to when treated as a condition?
– False
• Slicing creates a copy of a discontinuous collection of elements from a sequence, true or false?– False, it only copies a continuous segment of elements from a
sequence• A tuple is an immutable sequence of elements of what variable
type?– Any!
• The concatenation operator, +, works with tuples just like with strings, true or false?– True