[파이썬 프로그래밍 05] if 를 else 와 같이 사용하기

Home / 파이썬 프로그래밍 / [파이썬 프로그래밍 05] if 를 else 와 같이 사용하기
if 를 else 와 같이 사용하기

a==b 가 참일때 하는 작업들과 거짓일때 하는 작업을 프로그래밍 하려면 어떻게 할까요?
if 가 나오는 줄 다음 줄에는 참일때 하는 작업들을 들여쓰기로 프로그래밍하고, else:를 쓴다음 다음줄부터는 거짓일때 하는 작업들을 프로그램이하면 됩니다.

아래 코드가 한 예입니다.

if a==b :
    a = a+1
    b = b+1
else :
    a = a-1
    b = b-1
sum = a+b

a==b가 참일때는(예를 드면 a, b 모두 2인 경우) 연속해서 들여쓰기한 두 작업을 합니다. a+1의 결과를 a에 저장하고 b+1의 결과를 b에 저장합니다. 그런 다음 else:가 나온 줄 이후에 연속해서 들여쓰기 한 작업들을 뛰어 넘어 들여쓰기를 안 한 sum = a+b 라는 작업을 합니다.

반대로 a==b가 거짓일때는 (예를 들면 a = 2, b = 3 인 경우) if가 나온 줄 다음부터 연속해서 들여쓰기한 작업들을 하지 않고 뛰어 넘습니다. 대신 else:가 나온 줄 이후에 연속해서 들여쓰기 한 작업들을 합니다a-1을 a에 저장하고 b-1을 b에 저장하는 작업을 합니다. 그런 다음 들여쓰기를 안 한 sum = a+b 라는 작업을 합니다.

else를 쓰지 않고 하는 방법도 있습니다. 대신 == 기호외에 또 다른 기호를 알아야합니다.
==기호는 양쪽이 같은지에 대한 결과를 낸다면, 양쪽이 다른지에 대한 결과를 내는 기호도 있습니다.
!= 기호가 이에 해당합니다.

예를 들어 a에 2가 저장되어 있고 b에는 3이 저장되어 있다고 해보죠.
그러면 a에 저장된 값과 b에 저장된 값이 다르므로 a!=b의 결과는 참입니다.
만약에 a와 b 모두 2가 저장되어 있으면, a!=b의 결과는 거짓입니다.

if를 씆 줄 다음에 들여쓰기한 작업들은 if 다음의 결과가 참일때만 하므로 위에 if else로 프로그래밍한 코드는 아래와 같이 써도 같은 결과가 나옵니다.

if a==b :
    a = a+1
    b = b+1
if a!=b :
    a = a-1
    b = b-1
sum = a+b

그런데 이 경우는 운이 좋아서 같은 결과를 내는 것일 뿐입니다. 때로는 다른 결과를 내는 경우도 있습니다.

아래의 코드를 보죠.

if a==b :
    a = a+1
else :
    b = b+2
sum = a+b

a와 b 모두 2가 저장되어 있다면, a==b의 결과는 참이 되어 a+1의 결과 3이 a에 저장됩니다. 그런 다음 else다음에 들여쓰기한 작업을 뛰어넘도 sum = a+b 작업을 합니다. sum에는 a+b의 결과 5가 저장됩니다.

만약에 a에는 2가 저장되어 있고 b에는 3이 저장되어 있다면, a==b의 결과는 거짓이 되어 if 다음에 들여쓰기한 줄을 뛰어 넘고 else 다음에 들여쓰기한 작업만 해서 b에는 b+2의 결과인 5가 저장됩니다. 결국 sum에는 2+5의 결과인 7이 저장됩니다.

이제 코드를 else를 쓰지 않는 다른 방법으로 써보겠습니다.

if a==b :
    a = a+1
if a!=b :
    b = b+2
sum = a+b

a와 b 모두 2가 저장되어 있다면, a==b의 결과는 참이 되어 a+1의 결과 3이 a에 저장됩니다. 그런데 다시 if가 나옵니다. 이제는 a에는 3이 저장되어 있고 b에는 이전과 그대로 2가 저장되어 있습니다. 그러면 a!=b의 결과는 무엇일까요? 참입니다. 따라서 if a!=b 다음에 들여쓰기한 자업도 합니다. b에는 b+2의 결과인 4가 저장됩니다. 결국 sum에는 3+4의 결과인 7이 저장됩니다. if else를 썼을때와 비교해서 결과나 다릅니다.

만약에 a에는 2가 저장되어 있고 b에는 3이 저장되어 있다면, a==b의 결과는 거짓이 되어 if 다음에 들여쓰기한 줄을 뛰어 넘습니다. 그리고 다음에 오는 if 다음 a!=b의 결과가 참이므로 그 다음 들여쓴 줄을 작업해 b에는 b+2의 결과 5가 저장됩니다. 결국 sum에는 2+5의 결과인 7이 저장됩니다. 이 경우는 if else를 썼을 때와 같습니다.

이처럼 경우에따라 결과가 달라질 수 있기 때문에 if else를 써야하는진 if를 두번 쓰는지는 신중하게 판단해서 결정해야 합니다.