Presentation is loading. Please wait.

Presentation is loading. Please wait.

15-110: Principles of Computing

Similar presentations


Presentation on theme: "15-110: Principles of Computing"— Presentation transcript:

1 15-110: Principles of Computing
Loop Structures- Part I Lecture 7, September 23, 2018 Mohammad Hammoud Carnegie Mellon University in Qatar

2 Today… Last Session: Today’s Session: Announcement:
Decision Structures- Part II: Multi-way Decisions A Study on Design Today’s Session: Control Structures- Part I: For Loop Examples Announcement: HA2 is due on September 27 by 10:00AM

3 Towards Loops We looked in detail at the Python if statement and its use in implementing programming patterns such as 1-way, 2-way, and multi- way decisions We will now look at a new structure, known as the control (or loop) structure, which allows us to iterate through a sequence of values We have seen very briefly in the last lecture the Python for statement, which provides an example of a loop

4 The for Loop A Python for loop has this general form:
The <body> of the loop can be any sequence of Python statements <var> is called the loop index, which takes on each successive value in <sequence>, and <body> is executed once for each value The <sequence> portion consists of a list of values E.g., range(n) is a built-in function in Python that generates “on the fly” a sequence of numbers that starts at 0 and ends at n-1 for <var> in <sequence>: <body>

5 The Flowchart of a for Loop
More items in <sequence> No Yes <var> = Next item <body>

6 Example 1: Average of a Series of Numbers
Suppose we want to write a program that can compute the average of a series of numbers entered by the user Here is an algorithm to do so: Input the count of the numbers, n Initialize sum to 0 Loop n times Input a number, x Add x to sum Output average as sum/n

7 Example 1: Average of a Series of Numbers
We can easily translate this algorithm into a Python implementation def main(): n = eval(input("How many numbers do you have? ")) sum = 0.0 for i in range(n): x = eval(input("Enter a number >> ")) sum = sum + x print("\nThe average of the numbers is", sum/n) main()

8 Example 2: Printing Odd Numbers
Suppose we want to write a program that prints odd numbers from 0 to n (inclusive), which can be input by a user Here is how the program can look like: n = eval(input("Enter n: ")) for i in range(n+1): if i % 2 == 1: print(i, end = " ") print()

9 Example 2: Printing Odd Numbers
What if we want to print odd numbers from 1 (NOT 0) to n (inclusive), which can be input by a user? n = eval(input("Enter n: ")) for i in range(n+1): if i == 0: pass else: if i % 2 == 1: print(i, end = " ") print()

10 Example 2: Printing Odd Numbers
What if we want to print odd numbers from 2 (NOT 1) to n (inclusive), which can be input by a user? n = eval(input("Enter n: ")) for i in range(n+1): if i < 2: pass else: if i % 2 == 1: print(i, end = " ") print()

11 Example 2: Printing Odd Numbers
What if we want to print odd numbers from 3 (NOT 2) to n (inclusive), which can be input by a user n = eval(input("Enter n: ")) for i in range(n+1): if i < 3: pass else: if i % 2 == 1: print(i, end = " ") print()

12 Example 2: Printing Odd Numbers
Is there a better way for doing this? Yes, we can use another version of range, namely, range(start, end) s = eval(input("Enter the starting number: ")) e = eval(input("Enter the ending number: ")) for i in range(s, e+1): if i % 2 == 1: print(i, end = " ") print()

13 Yet, Another Version of Range(.)
We can even specify a different increment in the range(…) function via including a third argument to it (i.e., range(start, end, step)) start = eval(input("Enter a starting number: ")) end = eval(input("Enter an ending number: ")) step = eval(input("Enter the step: ")) for i in range(start, end, step): print(i, end = " ") print()

14 Example 3: Fibonacci Sequence
Suppose we want to write a program that computes and outputs the nth Fibonacci number, where n is a value entered by a user The Fibonacci sequence starts with 0 and 1 After these first two numbers, each number in the sequence is computed as simply the sum of the previous two numbers E.g., 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, …

15 Example 3: Fibonacci Sequence
def fibonacci(n): f_i = 0 f_j = 1 print(f_i, f_j, end = " ") for k in range(2, n+1): f_new = f_i + f_j print(f_new, end = " ") f_i = f_j f_j = f_new

16 Example 3: Fibonacci Sequence
n = eval(input("Enter a number that is larger than 1 >> ")) if n < 2: print("You can only enter a number that is larger than 1!") else: fibonacci(n)

17 Example 4: A Rectangle of Stars
How can we write a program that draws the following shape of stars using only 1 for loop and 1 if-else statement? *

18 Example 4: A Rectangle of Stars
How can we write a program that draws the following shape of stars using only 1 for loop and 1 if-else statement? for i in range(9): if i == 0 or i == 8: x = "*********" else: x = "* *" print(x)

19 Next Lecture… Problem Solving


Download ppt "15-110: Principles of Computing"

Similar presentations


Ads by Google