일반인을 위한 파이썬 지침서/결정

If 서술문

+/-

언제나와 같이 나는 연습문제를 타이프함으로써 워밍업을 하면서 각장을 시작하여야만 하고 그래서 여기에 하나의 숫자에 대한 절대값을 계산하는 짧은 프로그램을 보인다.

n = input("Number? ")
if n < 0:
        print "The absolute value of",n,"is",-n
else:
        print "The absolute value of",n,"is",n

여기에 내가 이 프로그램을 두 번 실행한 출력결과를 보인다.

Number? -34
The absolute value of -34 is 34

Number? 1
The absolute value of 1 is 1

자, 컴퓨터는 이 코드조각을 보고서 무엇을 하는가? 먼저 컴퓨터는 사용자에게 숫자 하나를 "n = input("Number? ")"사용하여 요구한다. 다음으로 컴퓨터는 "if n < 0:" 라인을 읽고서 만약 n 이 0 보다 작다면 파이썬은 "print "The absolute value of",n,"is",-n"라인을 실행하고 그렇지 않으면 "print "The absolute value of",n,"is",n"라인을 실행한다.

더욱 형식적으로 파이썬은 표현식 n < 0 이 참인가 거짓인가를 살핀다. if 서술문 다음에는 서술문의 블록이 따른다. 서술문이 참일 경우에 그 블록은 실행된다. 선택적으로 if 서술문 뒤에는 else 서술문이 있을 수 있다. else 서술문은 그 표현식이 거짓일 경우에 실행된다.

하나의 표현식이 가질수 있는 약간의 다른 예들이 있다. 여기에 그들 모두를 기술한 표를 보인다.

연산자 함수
< 미만
<= 이하
> 초과
>= 이상
== 같다
!= 같지 않다
<> not equal의 다른 표현

if 명령어의 또 다른 사양은 elif 이다. elif else if 의 약자이며 원래의 if 서술문이 거짓이고 elif 부분이 참이라면 그 부분을 실행하라는 뜻이다.

여기에 하나의 예제가 있다.

a = 0
while a < 10:
        a = a + 1
        if a > 5:
                print a," > ",5
        elif a <= 7:
                print a," <= ",7
        else:
                print "Neither test was true"

그리고 그 출력은 다음과 같다.

1  <=  7
2  <=  7
3  <=  7
4  <=  7
5  <=  7
6  >  5
7  >  5
8  >  5
9  >  5
10  >  5

if문이 참이 되지 못할 때에만 elif a <= 7 가 평가됨을 주목하라 . elif 로 한개의 if 서술문안에서 다중 테스를 할 수 있다.

예제

+/-
# High_low.py

# Plays the guessing game higher or lower 
# (originally written by Josh Cogliati, improved by Quique)

# This should actually something that is semi random like the
# last digits of the time or something else, but that will have to
# wait till a later chapter.  (Extra Credit, modify it to be random
# after the Modules chapter)
number = 78
guess = 0

while guess != number : 
    guess = input ("Guess a number: ")

    if guess > number :
        print "Too high"

    elif guess < number :
            print "Too low"

print "Just right"
Sample run:

Guess a number:100
Too high
Guess a number:50
Too low
Guess a number:75
Too low
Guess a number:87
Too high
Guess a number:81
Too high
Guess a number:78
Just right