본문 바로가기

나만의 무기 조각들

[파이썬 문법] 연산자의 종류와 입력값 받기, 그리고 자료형 변환

서론

이번에 들은 강의는 바로 파이썬의 연산자에 대한 내용이다. 강의 내용을 그대로 따라하는 것은 어렵지 않지만 후반부에 나오는 실습 문제를 직접 풀어보고 들으니 한층 더 어렵고 재밌었다. 값이 제대로 출력되지 않고 오류가 뜰 때 머리카락을 쥐어뜯고 싶으면서도 스스로 해결해보려고 고민하는 그 시간이 코딩 실력을 향상시킨다는 말을 아주 조금은 체감했다.

 

 

연산의 의미와 종류

연산이란 수나 식을 일정한 규칙에 따라 계산하는 것이다. 연산의 종류는 크게 다섯가지로 나눌 수 있다.

 

1. 할당 연산

할당연산은 앞서 다른 포스팅에서 정리했듯이 변수에 데이터를 할당하는 것이다. '변수 = 데이터' 형태로 표현 가능하다.

자세한 출력 방법은 아래 링크를 참고하면 된다.

https://dreamingbaeksoo.tistory.com/entry/파이썬-문법-주석과-자료형숫자형문자형불린형-그리고-변수

 

[파이썬 문법] 주석과 자료형(숫자형/문자형/불린형) 그리고 변수

서론 파이썬을 설치하고 처음으로 배운 것은 자료형의 분류와 변수다. 프로그래밍의 기초도 모르는 상태에서 들으니 모든 것이 그저 뜬구름 같다. 강의를 보고 그대로 따라하기 바빴기에 이것

dreamingbaeksoo.tistory.com

 

 

2. 산술 연산

산술연산은 수학에서 배우는 사칙연산과 같다.

 

파이썬 산술연산

 

주로 많이 사용되는 것은 더하기, 빼기, 곱하기, 나누기니 이들을 중점적으로 알아두면 좋다.

 

 

3. 비교 연산

비교연산은 두 데이터를 비교하는 연산이다.

 

파이썬 비교연산

 

비교연산은 결과가 불린형 데이터로 출력된다.

예를 들어 '5>3'이라는 명령어를 실행할 경우 True라는 불린형 데이터가 나온다.

 

 

4. 논리 연산

논리연산 또한 비교연산과 마찬가지로 특정 명제가 맞을 경우 True가, 틀릴 경우 False가 출력된다.

논리연산의 종류는 다음과 같다.

 

파이썬 논리연산

 

5. 멤버십 연산

멤버십연산은 데이터 간의 포함관계에 대한 연산이다.

 

파이썬 멤버십연산

 

예를 들어 '"독학" in "파이썬 독학"'이라는 명령어를 실행시킬 경우 '독학'이라는 단어가 '파이썬 독학'에 포함되어있기 때문에 True가 출력된다.

 

 

 

파이썬 연산 적용하기

 

파이썬 작업창

 

할당연산은 이미 이전 포스팅에서 했기 때문에 산술연산부터 해본다.

숫자의 사칙연산 명령어를 실행하면 아래에 각각의 계산 값이 출력된다.

 

파이썬 작업창

 

직접적으로 숫자를 연산하는 것뿐만 아니라 미지수에 값을 부여한 후 이를 이용한 식의 값을 도출할 때도 적용 가능하다.

 

파이썬 작업창

 

숫자가 아닌 문자열을 연산하는 것도 같은 논리다.

큰 따옴표를 이용해 각각의 문자열을 더하는 명령어를 실행하면 문자열들이 이어지는 문장이 도출된다.

그리고 마찬가지로 미지수에 문자열을 부여하고 식을 통해 명령해도 같은 결과가 나온다.

 

파이썬 작업창

 

파이썬 작업창

 

비교/논리/멤버십연산은 어떠한 명제를 print() 안에 입력한 후 실행하면 아래 불린형 데이터로 출력된다.

여러 가지 기호들이 사용되어 복잡해 보일 뿐 천천히 논리적으로 생각하면 답은 쉽게 찾을 수 있다.

 

 

 

입력과 자료형 변환

사용자로부터 입력을 받기 위해서는 input() 명령어를 사용한다.

 

데이터 입력값 받기

x = input()

위의 코드에 대한 실행 과정을 크게 4단계로 나누어 확인해보자.

 

1. 할당연산자(=) 오른쪽부터 실행한다.

2. input() 명령어를 실행한 후, 입력을 기다린다.

3. 데이터를 입력하고 엔터를 누른다.

4. input() 자리에 입력한 데이터가 들어간다.

 

이렇게만 설명하면 이해가 어렵기 때문에 파이썬으로 직접 실행하는 것이 더 알아듣기 쉽다.

 

파이썬 작업창
파이썬 작업창

 

x에 input()를 부여하고 print("입력한 값은", x, "입니다.") 코드를 출력하면 아무런 값이 나오지 않는다.

input() 안에 아무런 데이터가 없기 때문이다.

터미널의 끝부분을 클릭하면 직사각형이 생기는데 이것이 바로 데이터 입력을 기다린다는 것을 의미한다.

 

파이썬 작업창

 

사진처럼 데이터를 입력하고 엔터를 누르면 된다. 여기서 데이터는 20으로 입력했다.

 

파이썬 작업창

 

엔터를 누르면 input()이 20으로 입력되면서 최종적으로 '입력한 값은 20입니다.'가 출력된다.

 

파이썬 작업창

 

이번에는 input() 괄호 안에 '숫자를 입력하세요 >>>'라는 메시지를 추가했다.

그리고 코드를 실행하면 아래에 '숫자를 입력하세요 >>>' 뒤에 데이터를 입력할 수 있는 직사각형이 뜨면서 입력을 기다린다.

마찬가지로 20을 입력하고 엔터를 누른다.

 

파이썬 작업창

 

그러면 최종적으로 20이 input("숫자를 입력하세요 >>>")을 대체하는 데이터가 되어 출력된다.

즉, x = 20이 된다는 뜻이다.

 

 

자료형 변환

자료형 변환은 특정 자료형에서 다른 자료형으로 바꾸는 것을 의미한다.

 

예시 문제를 한 번 보자.

 


사용자로부터 두 개의 숫자를 입력 받고 더한 결과를 추측하라.

 

데이터 입력

첫 번째 숫자를 입력하세요 >>> 20

두 번째 숫자를 입력하세요 >>> 40

 

데이터 출력

60


 

이 문제를 풀면서 처음으로 어려움을 많이 느꼈다. 일단 해보자.

 

파이썬 작업창

 

x와 y에 각각 input("첫 번째 숫자를 입력하세요 >>>")와 input("두 번째 숫자를 입력하세요 >>>")를 할당한다.

그리고 x + y를 출력하면 x의 데이터부터 입력할 수 있게 된다.

x에 20, y에 40을 입력하고 엔터를 누른다.

 

파이썬 작업창

 

엔터를 누르면 60이 아니라 2040이 나온다.

여기서 한참을 헤맸었다.

이렇게 나오는 이유는 바로 20과 40이 문자열 데이터기 때문에 문자열끼리 붙어서 출력된 것이다.

 

파이썬 작업창

 

실제로 변수가 어떤 자료형인지 파악하기 위해서는 print(type(변수)) 명령어를 실행하면 된다.

사진과 같이 아래에 <class 'str'>이라고 출력되는데, 여기서 str은 string의 약자로 문자열을 뜻한다.

즉 x의 자료형은 문자열이라는 것이다.

x와 y를 문자열에서 숫자형으로 바꾸어야 60이라는 값을 얻을 수 있기 때문에 여기서 자료형 변환을 해야 한다.

 

파이썬 작업창

 

숫자형으로 바꾸기 위해서는 int()를 사용하면 된다.

그러면 괄호 안의 것이 숫자형으로 변환되어 출력된다.

사진의 아래에 나오듯이 60이 출력되며 자료형은 int로 나온다.

int가 바로 숫자형이라는 뜻이다.

마찬가지로 숫자형에서 문자열로 변환할 경우에는 str()을 같은 방법으로 사용하면 된다.