본문 바로가기
[ CODING STUDY ]/》파이썬 공부

파이썬 5장(조건문, 관계연산자, 논리연산자)

by MRG 2020. 7. 3.
728x90
반응형

▣ 안녕하세요 ^^
저번장 숙제는 다 해보셨나요?
열심히 하시고 계실 거라 믿고 
오늘은 저번장에 연장선인 관계 연산자와 논리 연산자를 활용하여 조건문을 사용해보겠습니다.



▣ 조건문은 무엇일까요?
조건에 맞게 컴퓨터가 우리가 준 명령을 조건에 맞게 수행하는 걸 의미합니다.
우리가 그 조건을 넣어줘야겠지만요.

 

▣ 이렇게 자판기가 있다고 생각해보겠습니다.
그리고 자판기에 우리가 코딩을 한다고 생각해보겠습니다. 
언제 자판기에 음료가 나오게 되나요?
네 해당 음료에 맞는 금액을 넣을 경우 
넣은 금액에 맞게 선택할 수 있는 음료에 불이 켜지고 
음료버튼을 누르면
해당 음료가 나오고 
거스름돈이 있다면 거스름돈이 나오게 됩니다.
이런 과정을 조건문을 활용하여 이럴 때 이렇게 해
저럴 때 이렇게 이런 식으로  코딩을 하는 게 조건문이라고 생각하시면 됩니다.
조건문에도 종류가 있습니다.
그 종류 중에 if문을 먼저 공부해보겠습니다.

 

 

▣ if는 만약에 이라는 의미입니다.
if문을 사용하려면 먼저 if문을 입력해주시고,
if 옆에 조건을 넣어줘야 합니다. 
조건은 이렇게 10 == 10 관계 연산자와 논리 연산자를 활용해서 
만들어주고 조건에 끝에는 꼭 : 콜론을 붙어줘야 합니다.!!!



▣ 그런 다음에 if에 조건이 참이면
다음 줄에 
무엇을 할지 들여 쓰기로 구분해서 
코딩을 합니다.
저는 print함수로 출력을 하는 걸 코딩했습니다.
그럼 이렇게 10==10에 관계 연산이 참이기 때문에
밑에 있는 값을 출력하게 됩니다.
아주 간단하죠?
관계 연산을 이용해서 이렇게 간단한 조건문을 만들 수 있습니다.



▣ 그런데 여기서
중요한 점을 이야기하면 if문 조건문 끝에는 꼭 : 콜론 기호를 붙어줘야 합니다.
c언어처럼 ; 세미콜론을 붙이시면 안 됩니다.
만약에 조건 끝에 콜론을 안 붙이면 어떻게 될까요?

 

▣ 이렇게 Run을 하게 되면
컴퓨터가 해석을 하다가 조건에 끝이 어디인지 모르게 되고 오류 경고가 나오게 됩니다. 
이점 꼭 기억해주세요.
많은 분들이 : 콜론을 빼먹습니다.
그러니 꼭 조건문 끝에는 
: 콜론을 붙인다는 점 잊지 마세요.
그리고 c언어에서는 {} 스코프로 조건문에 범위를 지정했다면
여기서는 들여 쓰기로 구분합니다.
파이썬은 그렇습니다.
만약에 들여 쓰기를 안 하게 되면
if문과 다른 일반적인 코딩으로 봅니다. 
그건 나중에 더 알아보겠습니다.
그럼 조건을 틀리게 되면 어떻게 될까요?

 

 

▣ 이렇게 조건을 틀리게 하면 
밑에 조건에 값이 나오지 않을걸 확인할 수 있습니다.

 

▣ 그리고 당연하겠지만, 
변수를 넣어서 조건을 만든 다음에 
조건을 출력하게 할 수도 있습니다.

▣ 아까 위에서 이야기한 것처럼 
조건이 맞을 경우에 값을 입력할 때
들여 쓰기(4칸) 띄어쓰기를 하지 않으면 
이렇게 오류가 나오게 됩니다.



▣ 그런데 한 줄을 내리면 오류가 나오지 않습니다.
그럼 if문이 참 이어도 아무것도 하지 않게 되겠죠?
참이면 무엇을 해라라는 조건문에 값이 없기 때문이죠.
그리고 넘어가서 print함수는 일반적인 코딩으로 인식하고
그냥 print함수를 실행하게 됩니다. 



▣ 이 차이를 기억해주시고 직접 확인해주세요.
그리고 제가 들여 쓰기를 4칸이라고 했는데
스페이스로 4칸을 띄어쓰기를 하셔도 되고
Tab을 눌러서 들여쓰기를 하셔도 됩니다.
이걸 어떻게 하냐에 대한 부분은 아직까지도 논쟁이 있기 때문에
무엇이 정답이다라고 하기는 어려울 거 같습니다. 
하지만 4칸을 구분해야 한다는 점 잊지 마세요.

 

▣ 조건문에 else라는 것도 있습니다.
이건 이렇게 생각하시면 됩니다.
위에 있는 조건들이 다 틀려야지만 작동하는 나머지 조건문 연산이다라고 생각해주세요.
그래서 1번에 if문을 틀렸기 때문에 
else를 작동하게 됩니다.
else는 모든 조건문이 틀린 나머지 조건문이기 때문에 조건을 입력할 필요는 없지만 
반드시 if문처럼 : 콜론을 붙어줘야 합니다. 

 

▣ 자 그럼 이건 어떻게 될까요?
다시 말씀드리지만, 
else는 위에 있는 조건문이 모두 틀려야 작동합니다.
그럼 else 밑에 if 조건문이 있다면 어떻게 될까요?
그건 따로 다른 조건문이라고 생각하시면 됩니다.
다시 해석하면 처음 if문에 조건이 거짓이기 때문에 
else가 작동합니다.
그리고 else 밑에 또 if문이 있기 때문에 
if문 조건을 검사하고 참이기 때문에 
밑에  printf함수를 실행하게 됩니다. 
프로그램은 순차적으로 해석하고 작동하기 때문입니다.



▣ 한 가지 또 중요한 걸 이야기하면 
조건문을 검사하는 건 컴퓨터는 연산하는 것이라고 생각하시면 되는데,
왜냐 컴퓨터는 기계어로 작동하기 때문이죠.
그럼 조건문을 많이 검사할수록 더 많은 연산을 하기 때문에
컴퓨터가 힘들어합니다.
그래서 if if if을 연속으로 쓰게 되면 서로 참이건 거짓이건 상관없이 모두를 검사하고
if문이랑 else를 사용하면 if문이 참일 경우 else 연산을 보지 않고 넘어가게 됩니다.
그럼 좀 더 연산을 덜하겠죠?
그래서 if if if를 연속으로 사용할지
if else를 사용할지에 대한 부분은 우리가 코딩을 하면서
많은 생각을 해야 합니다.
동시에 모두 검사하려면 if if if를 연속으로 사용해야 합니다.
지금은 말이 어려워서 많이 헷갈리시겠지만,
if if는 서로가 거짓이건 참이건 무조건 하나하나 다 검사하고
if else는 if가 참이면 else를 검사하지 않는다라고 생각하시면 됩니다.

 

▣ 이걸 직접 이렇게 코딩을 해서 확인해주세요.
참이건 거짓이건 if if if 가 모두가 독립적으로 
각자 검사를 다 하게 됩니다. 



▣ 그럼 else는 나머지라고 했는데, 
if가 틀리면 검사하는 조건문도 있겠죠?

 

▣ 이렇게 elif라는 것도 있습니다.
이건 위에 있는 if문이 틀려야지만 elif 하게 됩니다.
else와 다릅니다.
else는 elif까지 모두 다 틀려야지만 검사합니다. 나머지라는 것 잊지 마세요.
그럼 첫 번째 if가 틀렸기 때문에
elif를 검사 하합니다.
그리고 elif 조건이 참이기 때문에, 출력을 하고
else는 검사하지 않습니다.
직접 하나하나 확인해보세요.

▣ 자 다시 한번 정리해보겠습니다.
이렇게 elif는 위에 있는 조건이 틀려야지만 검사합니다.
1번이 틀리면 2번 2번이 틀리면 3번 
if, elif가 모두 틀려야지만 else를 검사합니다.
이점 기억하시면서
직접 한번 실습해보세요.
저와 다르게 코딩을 해보셔야 합니다.

 

▣ 지금까지 관계 연산자만 사용했다면 이렇게 
좀 더 복잡하게 논리연산자를 합쳐서 조건을 만들 수도 있습니다.
그럼 좀더 디테일한 조건으로 컴퓨터한테 조건문을 만들어 줄 수 있겠죠?
꼭 직접 하나하나 만들어서 사용해보세요.
그리고 if문 안에 if문을 넣을 수도 있습니다.
그걸 중첩 if문이라고 하는데, 
지금은 이것만 해도 복잡하기 때문에 
나중에 코딩을 짜면서 공부하도록 하겠습니다. 



▣ 자 오늘은 이렇게 조건문을 공부했습니다.
이제 더 코딩을 읽는 훈련과
사고하는 훈련을 해야 합니다.
그러니 꼭 코딩을 읽고 해결하는 훈련을 꼭 과제를 하시면서 해주세요.
혹시 이게 너무 어렵다고 생각하시는 분은 
스크래치장으로 가셔서 조건문을 공부하고 오시면 좋을 거 같습니다.
결국 스크래치도 c언어 기반으로 만들어져 있기 때문에 
틀은 비슷합니다. 
그리고 위에서 이야기했던 실습들은 꼭 직접 해보시기 바랍니다. 
그리고 오류가 나오더라도 꼭 읽으면서 하나하나 해결해보세요.
하시다가 궁금하신 사항 있으시면 댓글 남겨주세요.
그럼 다음장에서 뵙겠습니다. 



▣ 포기하지 마세요!! 저도 했습니다!!! 파이팅!!!

728x90
반응형

댓글