Python For Loop and its Applications

 
15-110: Principles of
Computing
 
Loop Structures- Part I
Lecture 7, September 23, 2018
 
Mohammad Hammoud
Carnegie Mellon University in Qatar
 
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
 
 
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
 
 
 
 
 
 
Towards Loops
 
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
 
 
 
 
 
 
The 
for
 Loop
 
for 
<var> 
in 
<sequence>
:
 
<body>
The Flowchart of a  
for
 Loop
More items in
<sequence>
 
No
 
Yes
<var> = Next item
<body>
 
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:
 
 
 
 
 
 
Example 1: Average of a Series of Numbers
 
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
We can easily translate this algorithm into a Python implementation
Example 1: Average of a Series of Numbers
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()
 
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:
 
 
 
 
 
 
Example 2: Printing Odd Numbers
n = eval(input("Enter n: "))
for i in range(n+1):
    if i % 2 == 1:
        print(i, end = " ")
print()
What if we want to print odd numbers from 
1
 (NOT 
0
) to 
n
 (inclusive),
which can be input by a user?
Example 2: Printing Odd Numbers
n = eval(input("Enter n: "))
for i in range(n+1):
    if i == 0:
        pass
    else:
        if i % 2 == 1:
            print(i, end = " ")
print()
What if we want to print odd numbers from 
2
 (NOT 
1
) to 
n
 (inclusive),
which can be input by a user?
Example 2: Printing Odd Numbers
n = eval(input("Enter n: "))
for i in range(n+1):
    if i < 2:
        pass
    else:
        if i % 2 == 1:
            print(i, end = " ")
print()
What if we want to print odd numbers from 
3
 (NOT 
2
) to 
n
 (inclusive),
which can be input by a user
Example 2: Printing Odd Numbers
n = eval(input("Enter n: "))
for i in range(n+1):
    if i < 3:
        pass
    else:
        if i % 2 == 1:
            print(i, end = " ")
print()
 
Is there a better way for doing this?
Yes, we can use another version of range, namely, 
range(start, end)
 
 
 
 
 
 
 
Example 2: Printing Odd Numbers
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()
We can even specify a different increment in the range(…) function
via including a third argument to it (i.e., 
range(start, end, step)
)
Yet, Another Version of Range(.)
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()
 
Suppose we want to write a program that computes and outputs the
n
th 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, …
 
 
 
 
 
 
Example 3: Fibonacci Sequence
 
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
 
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)
 
How can we write a program that draws the following shape of stars
using only 1 
for
 loop and 1 
if-else
 statement?
 
 
 
 
 
 
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?
 
 
 
 
 
 
 
Example 4: A Rectangle of Stars
for i in range(9):
    if i == 0 or i == 8:
        x = "*********"
    else:
        x = "*       *"
 
    print(x)
 
Problem Solving
 
 
 
 
 
 
 
Next Lecture…
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.

  • Python
  • Loop Structures
  • Control Structures
  • Programming Basics

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

giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#