파이썬의 if문에서 많이들 헷갈려 하는 if와 elif의 차이입니다.
우선, elif를 단독으로 사용할 수 없고 if부터 사용해야 합니다.
if 조건:
조건에 해당하면 실행할 내용
elif 조건:
조건에 해당하면 실행할 내용
elif 조건:
조건에 해당하면 실행할 내용
위처럼 첫 시작은 if로 조건과 함께, 그 조건이 충족되면 실행할 코드를 콜론 이후 줄바꿈하여 적습니다.
두번째 조건부터 elif를 사용하여 첫번째 조건과 다른 조건을 작성하며,
elif는 여러 번 사용할 수 있습니다.
if 조건:
조건에 해당하면 실행할 내용
else:
앞 조건에 해당하지 않으면 실행할 내용
else는 앞에서 분기한 조건이 아닌 모든 상황일 때 실행할 내용을 적습니다.
따라서 따로 조건을 작성하지 않습니다.
if, elif, else 모두 혼용하여 사용할 수 있으며, if로 처음부터 시작해야 하지만, else로 마무리지을 필요도 없습니다.
a = int(input())
if a > 0:
print("양수")
elif a == 0:
print(0)
elif a < 0:
print("음수")
정수 a를 사용자로부터 입력받은 후,
양수 조건일 때 양수를, 0일 때 0을, 음수일 때 음수를 출력하는 코드입니다.
a = int(input())
if a > 0:
print("양수")
elif a == 0:
print(0)
else:
print("음수")
위 코드의 마지막 조건을 elif가 아닌 else를 사용하여, 양수와 0이 아닐 때를 처리할 수 있도록 했습니다.
정리하자면, if와 elif, else는 하나의 덩어리로 생각해야 합니다.
if, elif, else의 적어도 3가지 분기 또는 if, else의 적어도 2가지 분기를 돌다가
조건에 해당한다면 그 조건일 때의 코드를 실행한 후 조건문에서 빠져나오게 됩니다.
여기서, if문을 여러번 사용할 수는 없는 걸까요?
a = int(input())
if a > 0:
print("양수")
if a > 3:
print("3보다 큰 양수")
if a > 10:
print("10보다 큰 양수")
위 코드는 elif가 아닌 if로만 작성한 코드입니다.
첫번째 if와 두번째 if의 조건은 다르지만,
이 경우, if~elif~else문과 달리 각각의 if를 시작점으로 보아
위 코드는 3가지 if 덩어리가 있는 거라고 생각해야 합니다.
따라서 a에 해당하는 값이 3개의 if문 중에서 조건에 해당하는 만큼 코드가 실행될 것입니다.
a가 0이나 음수라면 아무것도 실행되지 않습니다.
a가 1, 2, 3이 입력된다면 '양수'만 출력됩니다.
a가 4, 5, 6, 7, 8, 9, 10이 입력된다면 '양수', '3보다 큰 양수'가 출력됩니다.
a가 10보다 큰 양수가 입력된다면 '양수', '3보다 큰 양수', '10보다 큰 양수' 모두 출력됩니다.
'프로그래밍 > 파이썬(Python)' 카테고리의 다른 글
[Pandas] 숫자 슬라이싱과 문자(라벨) 슬라이싱의 차이 (0) | 2024.09.22 |
---|---|
[Pandas] isna()와 isnull()의 차이 (0) | 2024.09.22 |
[Pandas] and와 & 차이 (0) | 2024.09.22 |
[Pandas] 대괄호([])를 2번 사용하는 이유(단일 열/2개 이상의 열) (0) | 2024.09.22 |
[Pandas] Series(list('문자열'))과 Series(['문자열'])의 차이 (0) | 2024.09.22 |