Understanding Python For Loop and its Applications

Slide Note
Embed
Share

The lecture discusses the principles of computing loop structures, focusing on the for loop in Python. It explains the general form of a for loop, its flowchart, and provides an example of computing the average of a series of numbers using a for loop. The session highlights the importance of control structures and loop structures in programming.


Uploaded on Aug 14, 2024 | 0 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. Download presentation by click this link. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

E N D

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: 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: for <var> in <sequence>: <body> 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

  5. The Flowchart of a for Loop No More items in <sequence> 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

More Related Content