일반인을 위한 파이썬 지침서/결정
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