3-1-3-2. Conditional Statements

We’ve been running code that simply executes every line one by one from the top down.

Many times however, we want to run code only if a particular condition holds.

To demonstrate this concept,

let’s take a look at this billing system for a pay-as-you-go mobile phone.

Say a customer has a credit balance for

their phone which they can use for calls and messages.

The customer can then set up a link to their bank account so that

if their phone credit balance goes below a threshold amount,

in this case five dollars,

then 10 more dollars of credit are added and their bank balance is build.

Here is a simple way of representing this billing system in code.

If the phone balance is below five,

add 10 to phone balance and subtract 10 from bank balance.

This is an example of an if statement.

An if statement is a conditional statement that runs or

skips code based on whether a condition is true or false.

In an if statement, the if keyword is followed by the condition to be checked,

in this case, phone balanced less than five,

and then a colon.

The condition is specified in

a Boolean expression that evaluates to either true or false.

After this line is an indented block of code to be executed if the condition is true.

So in this case,

these lines will only execute if it is true that phone balance is less than five.

If phone balance is three,

this condition evaluates to true and these indented lines of code are executed.

You can observe these changes in the output.

If phone balance is eight however,

this condition evaluates to false and these lines are not executed.

As you see in the output,

there were no changes to phone or bank balance,

which is what we expect to happen since the condition in this if statement was false.

우리는 위에서 아래로 모든 라인을 단순히 실행하는 코드를 실행했습니다.

그러나 여러 번 특정 조건이 유지되는 경우에만 코드를 실행하려고 합니다.

이 개념을 보여주기 위해,

종량제 휴대전화에 대한 이 청구 시스템을 살펴보겠습니다.

고객에게 신용 잔액이 있다고 가정해 보겠습니다.

통화 및 메시지에 사용할 수 있는 전화.

그런 다음 고객은 은행 계좌에 대한 링크를 설정할 수 있습니다.

전화 크레딧 잔액이 기준 금액 미만인 경우

이 경우 5달러,

그런 다음 10달러의 신용이 더 추가되고 은행 잔고가 쌓입니다.

다음은 이 청구 시스템을 코드로 나타내는 간단한 방법입니다.

폰 잔고가 5미만이면

전화 잔액에 10을 더하고 은행 잔액에서 10을 뺍니다.

이것은 if 문의 예입니다.

if 문은 다음을 실행하는 조건문입니다.

조건이 참인지 거짓인지에 따라 코드를 건너뜁니다.

if 문에서 if 키워드 뒤에 검사할 조건이 옵니다.

이 경우 전화 균형이 5 미만,

그리고 콜론.

조건은

true 또는 false로 평가되는 부울 표현식입니다.

이 줄 뒤에는 조건이 참인 경우 실행할 들여쓰기된 코드 블록이 있습니다.

따라서 이 경우,

이 라인은 전화 잔고가 5 미만인 것이 사실인 경우에만 실행됩니다.

폰 잔고가 3이면

이 조건은 true로 평가되고 이러한 들여쓰기된 코드 행이 실행됩니다.

출력에서 이러한 변경 사항을 관찰할 수 있습니다.

하지만 폰 잔액이 8이라면,

이 조건은 거짓으로 평가되고 이 행은 실행되지 않습니다.

출력에서 볼 수 있듯이,

전화 또는 은행 잔고에 변동이 없었습니다.

이것은 이 if 문의 조건이 거짓이기 때문에 일어날 것으로 예상되는 일입니다.

Now you know how to execute a block of code if a condition is true.

But what if you have a different block of code that you

want to execute when that condition is false?

You can use the ‘else’ keyword to do so.

Consider this code, which prints a message indicating

whether an integer N is even or odd.

If N is even,

this line is run.

Otherwise, this line is run.

Code indented under the ‘else’ is what happens when this condition evaluates to false.

The ‘else’ keyword is always followed by a colon and doesn’t need a Boolean expression.

So, if we set N to be 4 like this,

the if statement here would evaluate to true and we would print the following string.

Alternatively, if we set N to be 15,

this condition would evaluate to false so we would skip

this block and execute the code under the else.

If you have more than two possible cases,

you can also use elif,

short for ‘else if’,

to deal with the situation.

This saves the multiple indentation that would be needed if

we used ‘else’ and then another ‘if’ statement inside the ‘else’ block.

Like ‘if’, an elif statement always requires a conditional expression.

For example, let’s say we wanted to print what

to do with the garden based on the current season.

If we set season equal to spring, like this,

then we can see that plant the garden is

printed as its first condition evaluates to true.

Alternatively, if we set season to winter,

then each of these conditions will evaluate to false until we had

this condition which will evaluate as true and print stay indoors.

Notice here we’re using double equal sign again.

Remember, a single equal sign is for assignment like we did

here when we were setting a season as a particular string.

Two equal sign is for evaluation where we are evaluating a condition as true or false.

이제 조건이 true인 경우 코드 블록을 실행하는 방법을 알게 되었습니다.

하지만 다른 코드 블록이 있는 경우

해당 조건이 거짓일 때 실행하시겠습니까?

그렇게 하려면 ‘else’ 키워드를 사용할 수 있습니다.

다음을 나타내는 메시지를 인쇄하는 이 코드를 고려하십시오.

정수 N이 짝수인지 홀수인지 여부.

N이 짝수이면,

이 라인이 실행됩니다.

그렇지 않으면 이 줄이 실행됩니다.

‘else’ 아래 들여쓰기된 코드는 이 조건이 false로 평가될 때 발생합니다.

‘else’ 키워드 뒤에는 항상 콜론이 오고 부울 표현식이 필요하지 않습니다.

따라서 N을 이렇게 4로 설정하면

여기서 if 문은 true로 평가되고 다음 문자열을 인쇄합니다.

또는 N을 15로 설정하면

이 조건은 false로 평가되므로 건너뛸 것입니다.

이 블록을 만들고 else 아래의 코드를 실행합니다.

가능한 경우가 2개 이상인 경우,

당신은 또한 elif를 사용할 수 있습니다,

else if’의 줄임말,

상황에 대처하기 위해.

이것은 다음과 같은 경우에 필요한 여러 들여쓰기를 저장합니다.

우리는 ‘else’를 사용한 다음 ‘else’ 블록 내에서 또 다른 ‘if’ 문을 사용했습니다.

‘if’와 마찬가지로 elif 문에는 항상 조건식이 필요합니다.

예를 들어 다음을 인쇄하고 싶다고 가정해 보겠습니다.

현재 계절을 기준으로 정원과 관련이 있습니다.

이렇게 계절을 봄으로 설정하면

그러면 우리는 식물이 정원임을 알 수 있습니다.

첫 번째 조건이 true로 평가될 때 인쇄됩니다.

또는 계절을 겨울로 설정하면

그러면 이러한 각 조건은 다음을 가질 때까지 false로 평가됩니다.

true로 평가되고 인쇄되는 이 조건은 실내에 유지됩니다.

여기에서 이중 등호를 다시 사용하고 있습니다.

하나의 등호는 우리가 했던 것처럼 할당을 위한 것임을 기억하십시오.

여기에서 시즌을 특정 문자열로 설정했습니다.

두 개의 등호는 조건을 참 또는 거짓으로 평가하는 평가를 위한 것입니다.

As you have just seen, indentation is important.

It’s how we tell Python what code is in the body of an if statement,

and what code is outside of it.

Indentation doesn’t just matter in if statements.

Soon, you’ll see it used in other contexts.

Some other languages use braces to show where blocks of code begin and end.

In Python, we use indentation to enclose blocks of code.

This indentation conventionally comes in multiples of four spaces.

It’s important to be strict about following this convention because

changing the indentation can completely change the meaning of the code.

If you are working on a team of Python programmers,

it’s important that everyone follows the same indentation convention.

방금 보았듯이 들여쓰기가 중요합니다.

이것이 우리가 파이썬에게 if 문의 본문에 있는 코드를 알려주는 방법입니다.

그리고 그 밖에 어떤 코드가 있는지.

들여쓰기는 if 문에서만 문제가 되지 않습니다.

곧 다른 맥락에서 사용되는 것을 보게 될 것입니다.

일부 다른 언어에서는 중괄호를 사용하여 코드 블록이 시작하고 끝나는 위치를 표시합니다.

Python에서는 들여쓰기를 사용하여 코드 블록을 묶습니다.

이 들여쓰기는 일반적으로 4칸의 배수로 나옵니다.

이 규칙을 엄격하게 준수하는 것이 중요합니다.

들여쓰기를 변경하면 코드의 의미가 완전히 바뀔 수 있습니다.

Python 프로그래머 팀에서 일하고 있다면,

모든 사람이 동일한 들여쓰기 규칙을 따르는 것이 중요합니다.

If Statement

An if statement is a conditional statement that runs or skips code based on whether a condition is true or false. Here’s a simple example.

if phone_balance < 5:
    phone_balance += 10
    bank_balance -= 10

Let’s break this down.

  1. An if statement starts with the if keyword, followed by the condition to be checked, in this case phone_balance < 5, and then a colon. The condition is specified in a boolean expression that evaluates to either True or False.
  2. After this line is an indented block of code to be executed if that condition is true. Here, the lines that increment phone_balance and decrement bank_balance only execute if it is true that phone_balance is less than 5. If not, the code in this if block is simply skipped.

Use Comparison Operators in Conditional Statements

You have learned about Python’s comparison operators (e.g. == and !=) and how they are different from assignment operators (e.g. =). In conditional statements, you want to use comparison operators. For example, you’d want to use if x == 5 rather than if x = 5. If your conditional statement is causing a syntax error or doing something unexpected, check whether you have written == or =!

If, Elif, Else

In addition to the if clause, there are two other optional clauses often used with an if statement. For example:

if season == 'spring':
    print('plant the garden!')
elif season == 'summer':
    print('water the garden!')
elif season == 'fall':
    print('harvest the garden!')
elif season == 'winter':
    print('stay indoors!')
else:
    print('unrecognized season')
  1. if: An if statement must always start with an if clause, which contains the first condition that is checked. If this evaluates to True, Python runs the code indented in this if block and then skips to the rest of the code after the if statement.
  2. elifelif is short for “else if.” An elif clause is used to check for an additional condition if the conditions in the previous clauses in the if statement evaluate to False. As you can see in the example, you can have multiple elif blocks to handle different situations.
  3. else: Last is the else clause, which must come at the end of an if statement if used. This clause doesn’t require a condition. The code in an else block is run if all conditions above that in the if statement evaluate to False.

Indentation

Some other languages use braces to show where blocks of code begin and end. In Python we use indentation to enclose blocks of code. For example, if statements use indentation to tell Python what code is inside and outside of different clauses.

In Python, indents conventionally come in multiples of four spaces. Be strict about following this convention, because changing the indentation can completely change the meaning of the code. If you are working on a team of Python programmers, it’s important that everyone follows the same indentation convention!

Spaces or Tabs?

The Python Style Guide recommends using 4 spaces to indent, rather than using a tab. Whichever you use, be aware that “Python 3 disallows mixing the use of tabs and spaces for indentation.”


Try It Out!

Use Test Run to execute the following code, which includes several examples of if statements. Experiment with different inputs and see what is printed out. Can you follow the flow of logic to figure out which code lines will get run? If you’re not sure, you can insert additional print statements to help you figure out how it works.

#First Example - try changing the value of phone_balance
phone_balance = 10
bank_balance = 50

if phone_balance < 10:
    phone_balance += 10
    bank_balance -= 10

print(phone_balance)
print(bank_balance)

#Second Example - try changing the value of number

number = 145
if number % 2 == 0:
    print("Number " + str(number) + " is even.")
else:
    print("Number " + str(number) + " is odd.")

#Third Example - try to change the value of age
age = 35

# Here are the age limits for bus fares
free_up_to_age = 4
child_up_to_age = 18
senior_from_age = 65

# These lines determine the bus fare prices
concession_ticket = 1.25
adult_ticket = 2.50

# Here is the logic for bus fare prices
if age <= free_up_to_age:
    ticket_price = 0
elif age <= child_up_to_age:
    ticket_price = concession_ticket
elif age >= senior_from_age:
    ticket_price = concession_ticket
else:
    ticket_price = adult_ticket

message = "Somebody who is {} years old will pay ${} to ride the bus.".format(age, ticket_price)
print(message)
%d 블로거가 이것을 좋아합니다: