Last Week if statement print statement input builtin function strings and methods for loop.

18
Last Week if statement print statement input builtin function strings and methods for loop

Transcript of Last Week if statement print statement input builtin function strings and methods for loop.

Page 1: Last Week if statement print statement input builtin function strings and methods for loop.

Last Week

• if statement

• print statement

• input builtin function

• strings and methods

• for loop

Page 2: Last Week if statement print statement input builtin function strings and methods for loop.

This Week• Practice with string methods and for

loops• Doctests• Conversion specifiers• New type list

– methods– Nested lists– Looping through a list– Looping using range

Page 3: Last Week if statement print statement input builtin function strings and methods for loop.

Doctests

Why do we use an example in our docstrings?

– To show the user how to call our function

– To ensure our function works properly

We can test our function by using the doctest module.

Page 4: Last Week if statement print statement input builtin function strings and methods for loop.

Docstringsimport doctest

def count_spaces(s):

‘’’(str) -> int

Return the number of spaces in s as an int.

>>>count_spaces(‘’)

0

>>>count_spaces(‘ ‘)

1

>>>count_spaces(‘there are several spaces here.’)

4

’’’

Page 5: Last Week if statement print statement input builtin function strings and methods for loop.

Doctestsdef count_spaces(s):

count = 0

for char in s:

if char == ‘ ‘:

count += 1

return count

if __name__ == ‘__main__’:

doctest.testmod()

# or for more details use

doctest.testmod(verbose=True)

What do these do? Let’s try it!

Page 6: Last Week if statement print statement input builtin function strings and methods for loop.

Visiting the Items in a String S

Printing out the characters of the string

English:for each char in S

print the charPython:

for char in S:

print(char)

Notes:char is a variable namefor and in are Python key words

Page 7: Last Week if statement print statement input builtin function strings and methods for loop.

for loopsFormat:

for variable in string:

statements

Example with strings:

name = ”Edward”

new = “”

for letter in name:

new = letter + new

print(new)

Page 8: Last Week if statement print statement input builtin function strings and methods for loop.

Strings Using Conversion SpecifiersWe sometimes would like to insert values of variables into strings:A1 = 60A2 = 75A3 = 88

We would like: ‘The average of 60, 75 and 88 is 74.33.’

How do we print this with our variables?

>>>print(‘The average of’, A1, ‘,’, A2, ‘ and ’, A3, ‘ is ’, (A1+A2+A3)/3)

Does this work?

Page 9: Last Week if statement print statement input builtin function strings and methods for loop.

Strings Using Conversion SpecifiersWe displayed:‘The average of 60 , 75 and 88 is 74.33333333333333 .’

Q. What’s wrong?A. Spacing is wrong around commas and periods.

We have many more decimal places than wanted.

Q. How can we fix it?A. Use conversion specifiers.

>>>print(‘The average of %d, %d and %d is %.2f’ %(A1, A2, A3, (A1+A2+A3)/3.0))

The average of 60, 75 and 88 is 74.33.

Page 10: Last Week if statement print statement input builtin function strings and methods for loop.

Common Conversion Specifiers

%d display the object as a decimal integer

%f display the object as a floating point with 6 decimal places%.2f display the object as a floating point with 2 decimal places%s display the object as a string

Q. What else do we use % for?

A. Modulus. We say that % is overloaded.

Page 11: Last Week if statement print statement input builtin function strings and methods for loop.

Way to store many variables, e.g.,

students = [“Abby”, “Bob”, “Harry”, “Sara”, “Don”]

grades_list = [85, 80, 82, 84, 83]

misc = [“Kaya”, 2006, “July”, 20, True]

students[0] = ?

students[3] = ?

grades_list[2] = ?

grades_list[5] = ?

Lists

“Abby”“Sara” 82

error

Page 12: Last Week if statement print statement input builtin function strings and methods for loop.

Lists cont…

grades_list = [85, 80, 82, 84, 83]

grades_list[2] = 86

grades_list.append(90)

grades_list == ??

Functionslen(grades_list) outputs…

max(grades_list) outputs…

min(grades_list) outputs…

sum(grades_list) outputs…

[85, 80, 86, 84, 83, 90]

6

90

80

508

work for strings too

Page 13: Last Week if statement print statement input builtin function strings and methods for loop.

students = [“Abby”, “Bob”, “Harris”, “Sara”, “Don”]

students.sort()

[“Abby”, “Bob”, “Don”, “Sara”, “Harris”]

students.insert(2, “Charlie”)

[“Abby”, “Bob”, “Charlie”, “Don”, “Sara”, “Harris”]

students.append(“Kaya”) has the same result as

students.insert( ???? , “Kaya”)

Lists -- Methods

student.insert(len(students), “Kaya”)

Page 14: Last Week if statement print statement input builtin function strings and methods for loop.

student_grades = [[‘99887766’, 72], [‘111222333’, 90],

[[‘99118822’, 84]]

student_grades[0] ==

student_grades[0][0] ==

student_grades[1][0] ==

student_grades[2][1] ==

Nested Lists -- Lists of Lists

listlistlist

[‘99887766’,72]

‘99887766’

‘111222333’

84

??

??

??

??

Page 15: Last Week if statement print statement input builtin function strings and methods for loop.

Slicing Lists or StringsIdea: Grab part of a list aka a slice of a list.

countries = [‘Canada’, ‘France’, ‘China’, ‘Italy’, ‘India’] 0 1 2 3 4

countries[0:2] ==

countries[3:] ==

countries[:4] ==

countries[s:t] means:

• start at index s

• include all list items up to but not including item t.

[‘Canada’, ‘France’, ‘China’, ‘Italy’]

??

[‘Italy’, ‘India’]??

[‘Canada’, ‘France’]

??

Page 16: Last Week if statement print statement input builtin function strings and methods for loop.

Visiting the Items in a List L

Printing out the list

English:for each item in L

print the itemPython:

for item in L:

print(item)

Page 17: Last Week if statement print statement input builtin function strings and methods for loop.

For Loops -- RevisitedWant to print the numbers from 0-100.

for num in [0, 1, 2, 3, 4, …, 99, 100]:

print(num)

Is there an easier way to do this?

for num in range(0, 101):

print(num)

range(start, stop[,step]) • returns a list of integers• beginning with start to the last integer before stop.• start can be omitted and defaults to 0• step can be omitted and defaults to 1

Page 18: Last Week if statement print statement input builtin function strings and methods for loop.

For Loops -- RevisitedL1 = [1, 2, 3, 4]L2 = [‘A’, ‘B’, ‘C’, ‘D’]

Want to print each element from L1 followed by the corresponding element from L2.

for num in L1: print(num, ??) # How do we print the item from L2?

Loop over indices:

for index in range(len(L2)): print(L1[index], L2[index])