acm init() day 3

Post on 03-Aug-2015

105 Views

Category:

Education

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

ACM init()Day 3: April 29, 2015

From last time

• Input- Madlibs!

• Comparison operators

• Boolean operators

• Conditionals

The calculator

Can we improve this• This calculator is pretty inconvenient

• User must be prompted often

• Unfriendly interface

• Only one calculation can be performed

• Can this be improved?

Of course we can!We can use 'loops' to make a much better calculator

Why is this better?

• We can do more than one calculation

• The user can type in a legitimate mathematical equation

• There is less confusion and clutter in the interface

Loops

• Loops are a great tool if you want to repeat an action

• We are going to go over two types of loops: 'while' and 'for'

While loopA while loop checks to see if a certain condition is true, and while it is, the loop keeps running. As soon as the condition

stops being true, the loop stops.

while statement is true: do something

While example

While loop! The indents are important. They tell Python what is still part of the loop.

While example

x = 1

Output:

While example

x = 1

Output:

While example

x = 1

Output: 1

While example

x = 2

Output: 1

While example

x = 2

Output: 1

While example

x = 2

Output: 1 2

While example

x = 3

Output: 1 2

While example

x = 3

Output: 1 2

While example

x = 3

Output: 1 2 3

While example

x = 4

Output: 1 2 3

While example

x = 4

Output: 1 2 3

While example

x = 4

Output: 1 2 3

END

Another while example

This will print out the entire song!

Quick aside

str(x) will convert a number to a string. This allows you to concatinate numbers and strings together when printing.

DangerWe always have a condition that will make the loop end.

What if we forget to update the condition? !

We might create something called an infinite loop. This loop will keep running forever, which is really bad.

Infinite Loop OutputAHHHHHHHHHHHHHHHHHHHHH AHHHHHHHHHHHHHHHHHHHHH AHHHHHHHHHHHHHHHHHHHHH AHHHHHHHHHHHHHHHHHHHHH AHHHHHHHHHHHHHHHHHHHHH AHHHHHHHHHHHHHHHHHHHHH AHHHHHHHHHHHHHHHHHHHHH AHHHHHHHHHHHHHHHHHHHHH AHHHHHHHHHHHHHHHHHHHHH AHHHHHHHHHHHHHHHHHHHHH AHHHHHHHHHHHHHHHHHHHHH AHHHHHHHHHHHHHHHHHHHHH

...

Infinte loops

Infinite loops are bad because they keep going forever, might crash your computer, and are generally annoyin. Be careful!

BreakPut 'break' anywhere in a while loop to instantly leave the loop.

While-else

This is similar to if-else, with an exception! The else in a while loop will execute when the loop condition becomes false. It will

not execute if break is used.

Here's an example: we're going to generate 3 random numbers. If one of them is a 5, you lose! Otherwise, you win.

ChallengeWe're going to make a game similar to the example on the last

slide. However, allow the user to guess what the number is three times.

Remember, raw_input turns user input into a string, so we use int() to make it a number again.

Use a while loop to let the user keep guessing so long as guesses_left is greater than zero.

!Ask the user for their guess.

!If they guess correctly, print "You win!" and break.

!Decrement guesses_left by one.

!Use an else: case after your while loop to print "You lose."

Here's a start!

A brief sidenoteou might have seen that in loops I was using += and -=

These are just shorthand.

For loopA 'for' loop is used when we know how many times we'll be

looping when we start. The loop will run however many times we tell it to.

for variable in range(number): do something

For example

The range is from 0 to 3, not including 3!

For example

i = 0

Output:

For example

i = 0

Output: 0

For example

i = 1

Output: 0

For example

i = 1

Output: 0 1

For example

i = 2

Output: 0 1

For example

i = 2

Output: 0 1 2

For example

i = 3

Output: 0 1 2

For example

i = 3

Output: 0 1 2END

What will this print?

Answer1 2 3 4 5 6 7 8 9

We can loop through strings too!

This will print out every letter in the string.

Problem

Write a for loop to print out every letter in any word a user types in.

Answer

What will this print out?

Answer

1 3 5 7 9

The continue keyword moves on the the next iteration of the loop.

Challenge problem: Fizzbuzz

Write a program that prints the numbers from 1 to 100. For multiples of three print “Fizz” instead of the number and for

the multiples of five print “Buzz”. For numbers which are multiples of both three and five print “FizzBuzz”.

The next slide shows what the output should look like for the first 26 numbers.

Fizzbuzz!

What we did today• Loops!

• While loop- don't make them infinite!

• While-else

• For loops

• For-else loops exist as well

Calculator revisitedUsing the loops from today try to improve your calculator. Hint:

you'll probably have to use both types of loops! !

Another hint: if you want to access a certain character of a string you can do it like this:

string[i] = ... i is the index of the string, starting at 0.

top related