컴공과컴맹효묘의블로그

[효묘]초보자를 위한 Python강좌 3 본문

컴퓨터/Python

[효묘]초보자를 위한 Python강좌 3

효묘 2019. 6. 14. 15:07
반응형

 

안녕하세요, 효묘입니다. 이번 포스팅에서는 관계연산자, 논리 연산자, 조건문, 그리고 문자열에대해 알려드리겠습니다.

 

 

관계 연산자

 

연산자 의미
== 같다.
!= 같지 않다.
> (왼쪽이)크다.
< (왼쪽이)작다.
>= (왼쪽이)크거나 같다.
<= (왼쪽이)작거나 같다.

 

예시를 하나 보여드리겠습니다.

이런식으로 쉘창에 변수 a와 b를 만든 후, 관계연산자를 입력하면 위와같은 출력이 나옵니다.

a는 5, b는3 이기때문에 a는 b보다 작다는 문장은 참입니다.

 

반대로 a<b를 하면 False가 출력되겠죠?

 

 

 

관계연산자는 매우 유용하게 쓰입니다.

 

예시를 하나 들어보겠습니다.

 

제가 치킨을 한 마리 사려면, 치킨 값보다 제가 가지고있는 돈이 같거나 많아야합니다. 만약 치킨보다 제가 가지고 있는 돈이 적다면, 치킨을 못 삽니다.

게임 아이템을 구입할때에도 같은 논리가 적용됩니다. 이런 논리를 적용시키기 위해서는 조건문이 필요합니다.

 

 

조건문

조건문은 명제(참과 거짓)에 따라서 특정 문장을 실행시킬지, 말지 결정하는 구조입니다.

조건문은 다음과 같이 씁니다.

 

if 명제 :
	이곳에 쓰인 문장은 명제가 참이면 출력함

if문은 명제가 True값을 가질 때에만 if문 밑에있는 문자을 출력합니다.

 

예를 들어 위에 a=5고 b=3일때, a가 b보단 크다는 출력을 하고싶다면 아래와 같이 작성하면 됩니다.

 

if a > b :

    print("a가 b보단 큽니다")

 

여기서 파이썬의 특이한 구조가 보입니다. 파이썬은 다른 C언어나 Java와는 다르게 "들여쓰기"가 매우매우 중요합니다. C언어같은 경우, 들여쓰기를 못 해도 코드에 오류는 없지만, 파이썬은 무조건 들여쓰기를 해야합니다.

 

a = 5
b = 3

if a < b :
print("a가 b보다 작습니다.")

if문은 위같은 코드를 인식 못합니다. 조건문에 의해 실행되는 문장은 무조건 해당 조건문보다 몇 칸 띄어써야합니다.

 

a = 5
b = 3

if a < b:
	print("a가 b보다 작습니다.")

if문 안에 들어있는 문장은 몇 칸정도 떨어져있습니다. 이런 것을 들여쓰기라고 합니다.

들여쓰기는 몇 칸을 해도 상관없지만, 보통 띄어쓰기 4칸(Tab한번 누른 것과 동일)정도 씁니다.

 

정말 중요한 것은 들여쓰기를 했으면, 들여쓰기한 문장들은 모두 같은 위치에 있어야 합니다. if문 안에 실행될 문장들이 일정하지 않으면 오류가 납니다.

 

따라서 파이썬을 배울땐, 들여쓰기가 매우 중요합니다.

 

 

 

조건문은 if, elif, else로 이루어져있습니다.

 

예시를 보여드리겠습니다.

 

 

chicken = 10000
money = int(input("지금 보유하는 돈을 얼마입니까? : "))

if chicken > money :
	print("저런, 돈이 부족하네요.")
elif chicken <= money:
	print("치킨을 샀습니다.")

치킨 사먹는 프로그램

 

if는 만약, 이라는 뜻이고, elif는 그렇지 않다면 만약, else는 어떠한 조건도 만족시키지 못한다면, 입니다.

 

elif는 if의 명제가 거짓이라면 elif를 실행시킵니다. else는 if 혹은 if와 elif의 명제가 모두 거짓일 때, else가 실행됩니다. 예시하나 보여드리겠습니다.

 

score = int(input("학점을 입력하시오."))

if score >= 4:

	print("A학점 입니다")
    
elif score >= 3:

	print("B학점 입니다.")
    
elif score >= 2:

	print("C학점 입니다.")
    
elif score >= 1:

	print("D학점 입니다.")
    
else:

	print("F학점 입니다.")

 학점 판단 프로그램

 

위 코드처럼 elif를 여러 개 쓸 수도 있습니다.

 

위 코드에 4를 입력하면 'A학점 입니다'가 출력 될 것이고, 첫 번째 if에서 참이기 때문에 if와 연결되어있는 elif와 else는 출력이 안됩니다.

 

 

 

논리 연산자

 

조건문에 쓰이는 논리 연산자입니다. 논리 연산자도 참과 거짓값을 가집니다.

 

a 연산자 b 용어 참의 조건
a and b 논리곱 a와 b 모두 참일때
a or b 논리합 a와 b 둘중 하나라도 참 일때
not a 논리 부정 a가 거짓이면 참, 참이면 거짓

 

그리고 이 논리 연산자들은 연산 우선순위가 가장 늦습니다. 

 

print(  10+3-4**0 and 3 * 4  )
print(  (10+3-4**0) and (3 * 4)  )
#서로 계산 순서가 같다.

 

#연산자 우선순위

 

연산자들의 연산 우선순의표를 알려 드리겠습니다.

 

우선순위 연산자 의미
1 () [] {} 괄호, 리스트, 딕셔너러ㅣ
2 ** 제곱
3 + - ~ 부호
4 * / % // 산술연산(곱하기)
5 + - 산술연산(더하기)
6 << >> 비트연산자(시프트)
7 & 비트 논리곱(AND)
8 ^ 비트 배타적 논리합(XOR)
9 | 비트 논리합(OR)
10 < > <= >= 관계 연산자
11 ==  != 동등 연산자
12 = %= /= //= -= += *= **= 대입 연산자
13 not 논리 연산자(부정)
14 and 논리 연산자(논리곱)
15 or 논리 연산자(논리합)
16 if elif else 비교식

 

포스팅에서 다루지 않은 연산자도 많이 보입니다. 하지만 프로그래밍을 하다 보면, 모두 접하게 될겁니다.

 

이 표를 모두 외울필요는 전혀 없습니다. 절대 영단어 외우듯이 외우지 마십시오. 자주 쓰이는 것들이기 때문에 프로그래밍을 하다보면 저절로 외워질 수 밖에 없습니다. 그래도 정 헷갈리시다면, 이 표를 찾아서 참고하기만 하면 됩니다.

 

이번 포스팅은 여기서 마치겠습니다. 감사합니다.

반응형
Comments