파이썬 기초 문법이 궁금하신 분들은
제 벨로그의 파이썬 왕초보 시리즈를 먼저 보고 오시는 걸 추천 드립니다.
이번 글부터는 파이썬 프로그래밍 기초에 대해 다루겠습니다.
구글 코랩이나 주피터 노트북에서 직접 작성하며 풀어보세요.😊
조건문은 말 그대로
상황에 맞는 조건에서만 일을 수행하게 하는 것이다.
상황과 조건이 맞기 때문에 마라탕을 1그릇 먹게 된다.
만약 상황이 "나는 출출하다"거나 "나는 배가 고프지 않다"라면 조건에 맞지 않기 때문에 마라탕을 1그릇 먹는 수행은 일어나지 않는다.
이걸 파이썬 식으로 작성해보면 아래와 같다.
나 = 배가 고프다
if 나 = 배가 고프다:
마라탕을 1그릇 먹는다.
이 코드를 실행하면 마라탕을 1그릇 먹게 된다.
나 = 출출하다
if 나 = 배가 고프다:
마라탕을 1그릇 먹는다.
위 코드를 실행하면 아무 일도 일어나지 않는다.
조건과 상황이 맞지 않기 때문이다.
if 조건문:
수행할 문장 1
수행할 문장 2
if 옆에 조건을 적고 콜론을 "꼭" 찍은 후,
조건이 맞았을 때 수행할 코드를 밑 줄에 작성한다.
수행할 코드를 작성할 때는 꼭 탭을 쳐줘야 하며,
동일한 조건문에 속한 수행 코드는 탭 간격이 같아야 한다.
무슨 말인지 아래 예시를 보자.
if 조건문:
수행할 문장 1
수행할 문장 2
두 번째 수행 코드가 if 조건문에 속하게 하려면 첫 번째 수행 코드랑 같은 간격의 탭을 유지해야 한다.
위의 코드처럼 작성하면 안된다.
파이썬에서는 이처럼 들여쓰기를 통해 어디에 속해있는지, 속해 있지 않은지를 보여준다.
상황은 조건문보다 앞에 작성한다.
상황
if 조건문:
수행할 문장 1
수행할 문장 2
if 조건문은 상황과 조건이 맞을 때 코드를 수행한다.
즉, 조건문이 True일 때 코드가 수행된다.
"만약 배가 고프다면 마라탕을 1그릇 먹고, 그렇지 않다면 운동을 해라"
"배가 고프다"라는 조건이 맞지 않는 경우 "운동을 한다"를 수행하는 코드다.
즉, 조건문이 참이 아닌 경우에 해당하는 코드도 작성할 수 있다.
if 배가 고프다:
마라탕을 1그릇 먹는다.
else:
운동을 한다.
'그렇지 않다면'에 해당하는 것이 else문이다.
정리하면 아래처럼 작성하면 된다.
if 조건문:
수행할 문장 1
수행할 문장 2
else:
수행할 문장 A
수행할 문장 B
수행할 문장 A와 B는 탭으로 else문에 속해있다는 걸 알 수 있다.
조건이 아닐 때 또 조건을 주고 싶다면 elif문을 쓰면 된다.
"만약 배가 고프다면 마라탕을 1그릇 먹고, 출출하다면 오이를 먹고, 그렇지 않다면 운동을 해라"
if 배가 고프다:
마라탕을 1그릇 먹는다.
elif 출출하다:
오이를 먹는다.
else:
운동을 한다.
상황과 같이 써보면 아래와 같다.
나 = 출출하다
if 나 = 배가 고프다:
마라탕을 1그릇 먹는다.
elif 나 = 출출하다:
오이를 먹는다.
else:
운동을 한다.
위 코드를 수행하면 나는 오이를 먹게 된다.
elif문은 여러 개 사용할 수 있다.
if 조건문:
수행할 문장 1
수행할 문장 2
elif 조건문:
수행할 문장 가
수행할 문장 나
else:
수행할 문장 A
수행할 문장 B
비교 연산자 | 뜻 |
---|---|
x < y | x가 y보다 작다 |
x > y | x가 y보다 크다 |
x == y | x가 y와 같다 |
x != y | x가 y와 다르다 |
x >= y | x가 y보다 크거나 같다 |
x =< y | x가 y보다 작거나 같다 |
연산자는 프로그래밍에서 자주 사용하는데,
if조건문에서는 아래와 같이 활용할 수 있다.
if a > 3:
마라탕을 1그릇 먹는다.
a가 3보다 크다면 마라탕을 1그릇 먹으라는 뜻이다.
그냥 아무 말이나 적었다.
연산자 활용 방법만 확인하면 된다.
논리 연산자 | 뜻 |
---|---|
x or y | x와 y 중 하나만 참이어도 참이다 |
x and y | x와 y 모두 참이어야 참이다 |
not x | x가 거짓이면 참이다 |
'not x'는 'x가 거짓인 경우가 맞는 조건이다' 라고 해석하면 더 쉽게 이해할 수 있다.
in | not in |
---|---|
x in 리스트 | x not in 리스트 |
x in 튜플 | x not in 튜플 |
x in 문자열 | x not in 문자열 |
in : '~가 ~안에 있다면'
not in : '~가 ~안에 없다면'
if 5 in [1, 2, 3, 4, 5]:
마라탕을 1그릇 먹는다.
5가 리스트 안에 있다면 마라탕을 1그릇 먹으라는 뜻이다.
5가 리스트 안에 있으니 조건이 맞는다.
즉 참이다. 마라탕을 1그릇 먹을 수 있겠다.
여기까지는 정석적인 if문이다.
파이썬도 결국 언어기 때문에 발전할수록 기존 문법과는 다른 문법이나 숙어가 생기기도 한다.
if score >= 60:
message = "success"
else:
message = "failure"
위의 코드는 정석적인 방법이다.
해석을 하면
score이 60보다 같거나 크다면
message에 "success"라는 값을 넣어라
그렇지 않다면 (60 미만이라면)
message에 "failure"라는 값을 넣어라.
라는 뜻이다.
이 경우 score 값에 따라 print(message)를 했을 때 success가 나올 수도 있고 failure가 나올 수도 있다.
임의로 score에 70을 넣었더니 message의 값이 success가 나왔다.
이를 한 줄로 써보면 아래와 같다.
message = "success" if score >= 60 else "failure"
하지만 정석적인 방법을 쓰는 게 더 좋다.
무조건 간결하다고 좋은 게 아니라
남이 봤을 때도 무슨 말인지 알아야 좋은 코드다.
아래의 코드를 천천히 해석해보자.
money = 2000
if money >= 3000:
print('taxi')
else:
print('walk')
위 코드를 돌리면 무엇이 나올까?
walk 라고 답했다면 정확히 이해하였다.
논리 연산자를 사용해서 조건을 한 번에 두 개를 줄 수도 있다.
money = 2000
card = True
if money >= 3000 or card == True:
print('taxi')
else:
print('walk')
위 코드의 if문은 money가 3000 이상이거나 card가 True랑 같을 때 taxi를 출력한다.
상황을 보면 card = True기 때문에 taxi가 출력되고, else문으로 넘어가지 않는다.
상황을 리스트로 줄 수도 있다.
pocket = ['paper', 'cellphone']
card = True
if 'money' in pocket:
print('taxi')
elif card == True:
print('taxi')
else:
print('walk')
위의 코드를 돌리면 Taxi가 나오는 걸 확인할 수 있다.
여기까지 파이썬 if 조건문에 대한 설명이었습니다.
수정이 필요한 부분이나 이해가 안 가는 부분이 있다면 언제든 말씀해주세요!^0^
다음 글에서는 실습 문제를 풀어볼게요.
그럼 이만
총총