https://book.naver.com/bookdb/book_detail.nhn?bid=16268369
으뜸 파이썬과 함께 공부하는 포스트입니다.
이전 글에 이어서 변수와 연산자를 좀 더 공부해보겠다.
각 변수는 값을 표현하는 데에 적합한 크기의 공간을 메모리에서 확보해야 한다. 이렇게 필요한 공간을 결정, 공간에 값 입력, 읽기를 위해서 자료의 형(type)을 결정해야 하는데, 사용자가 지정하지 않아도 파이썬이 가장 적합한 형을 알아서 결정해준다.
예를 하나 들어보겠다.

이 코드의 문제점은 무엇일까?
이 코드를 입력하면 SyntaxError: Invalid Syntax 에러가 발생한다. 우선 첫번째부터 세번째 식별자의 이름이 잘못되었다. 식별자는 시작을 숫자로 하면 안되는데 셋 다 숫자로 시작하여서 에러가 발생한다. 두번째로는 식별자에 _ 가 아닌 기호를 사용한 점이 문제이다. +는 연산자이기 때문에 식별자로 쓸 수 없다.
이제 변수를 지정하고 문장을 출력해보자.

실행 결과

이렇게 따옴표로 문자를 쓰고 쉼표로 구분한 다음 변수를 사용하는 것으로 문장을 만들 수 있다. 이렇게 하면 값을 바꿀때도 변수에 지정한 값만 바꾸면 되므로 편하다.
수학 연산을 할 때에도 좋다.
사각형의 면적을 구해보자.

실행 결과

면적을 바꿀 때에도 너비와 높이의 값만 바꾸면 되므로 아주 편하다.
지금까지 여러 자료형의 데이터를 다루어 보았다. 더 자세히 배워 볼 것이다. 컴퓨터는 숫자, 문자, 부울 값, 문자열 등 많은 종류의 데이터를 처리할 수 있는데, 프로그래밍 언어에서 처리할 수 있는 데이터의 유형을 자료형(data type) 이라고 한다.
파이썬에서는 부울형, 숫자형(정수, 실수, 복소수), 문자열, 리스트, 튜플, 집합, 딕셔너리와 같은 기본 자료형이 있다. 자료형의 종류를 알아보려면 type() 함수를 사용하면 된다.

num에는 정수, pi에는 실수, message에는 문자열이 할당되어있다. type()함수를 사용하여 알아보면 num은 int pi는 float message에는 str 클래스 자료형이라는 것을 알 수있다.
파이썬은 num = 85와 같이 num이라는 변수에 정수 값이 할당되면 변수의 자료형이 int형으로 결정된다. 이와 같은 방식으로 자료형이 결정되는 방식을 동적 형결정 이라고 한다.
컴퓨터 언어에서는 몇몇 용어들이 일반적 의미가 아닌 특별한 뜻을 가지는 경우가 있다.
예를 들어 저수준, 고수준 이라는 말이 컴퓨터 분야에서는 각각 "기계에 가까운" , "사람에 가까운" 이라는 의미를 가진다. 위에서 설명한 동적/정적도 이런 경우 중 하나이다.
동적 이라는 용어는 어떤 행위가 프로그램이 실행되는 도중에 일어나는 것이고, 정적 이라는 용어는 어떤 행위가 프로그램이 실행되기 전에 미리 결정되는 것을 의미한다.

l에는 여러 자료 항목이 저장된 객체를 할당했는데, 이를 리스트 라고 한다.
d에는 키와 값이 쌍으로 이루어진 객체를 할당했는데, 이를 딕셔너리 라고 한다.
t에는 서로 다른 자료형 값을 저장한 튜플이라고 한다.
이 장에서는 자세히 배우진 않으므로 type()이라는 함수로 자료형을 확인할 수 있다는 것만 익혀두면 좋을 것 같다.
이제 수치를 다루는 자료형의 특성을 알아보겠다.
기본 데이터 자료형을 알아보면, 정수는 음의 자연수, 0, 그리고 양의 자연수를 포함하는 수이다.
실수(부등소수형)는 소수점 이하의 값도 함께 표현할 수 있는 자료이다. 부울형은 참과 거짓을 의미하는 True와 False로 이루어져있고, 마지막으로 문자열형은 'Hello','World'와 같은 연속된 문자로 이루어져있다.
이 중 부울형만 출력해보지 않았으므로 한번 해보겠다.

이렇게 등호나 부등호를 사용하여 참과 거짓을 따지는 자료형이 부울형이다.

위 사진의 코드는 우리가 생각하기에 True값이 나와야 정상일 것이다. 하지만 파이썬의 실수값은 정밀도에 한계가 있어서 0.1과 같은 부동소수점수는 불가피한 수치 오류를 미세하게 출력한다. 실수 데이터를 다룰땐 이러한 오류까지 고려하여서 주의를 기울여야 한다.
복소수의 표현법도 알아보자. 복소수는 실수 뿐만이 아닌 허수 값도 가진 수이다. 보통 수학 문제에서는 a+bi 같이 표현하는데, 파이썬 복소수 표현은 허수에 i를 사용하면 아래와 같은 오류가 발생하므로 j를 사용해야한다.
또, real이라는 속성은 실수부, imag라는 속성은 허수부를 표현한다. 복소수 자료형이므로 덧셈 연산도 실수부와 허수부가 따로 되는 것을 확인할 수 있다. 3+4j 같이 표현할 수도 있고, complex(3,4)와 같이 표현할 수도 있다.

아래와 같이 허수부의 부호가 다른 켤레 복소수도 구할 수 있다. conjugate() 함수를 사용하면 된다.

간단한 문제를 하나 풀어보자.
복소수 a = 8 + 2i , b = 4 + 3i의 두 복소수에 대해 다음 연산 결과를 적어라.

실행결과
연산자 가운데 =를 할당 연산자라고 한다. 파이썬에서의 =는 수학에서 사용하는 의미와 다르다. 이것은 연산자 우측 값을 좌측 변수에 할당하라는 의미이다.
num = 100 과 같이 할수도 있고, num1 = num2 = num3 = 200과 같이 다중 할당도 가능하다. 다중 할당시 num3 = 200이 가장 먼저 실행되며, 그다음 num2 = num3 , num1 = num2가 실행된다. 또, num4, num5 = 200, 300과 같은 동시 할당도 가능하다.

num = num + 100과 같은 연산도 가능한데, 원래 할당된 num값에 100을 더하여 그 결과를 다시 num 변수가 참조하도록 하는 의미이다. num += 100으로도 표현 가능하다. 이를 복합 연산자라고 한다.

논리 연산자
파이썬은 and, or, not 연산자를 지원하는데, 이것을 논리 연산자 라고 한다.이 연산을 통해 참,거짓 중 하나의 값을 가지는 부울 값을 반환한다.
원래 부울값이 아닌 자료형의 데이터도 부울형으로 반환될 수 있다. 먼저 숫자 0은 False이고, 0 제외 모든 수는 True이다. 문자열은 빈 문자열이 False, 나머지는 다 True로 출력된다.

이외에 and, or, not 연산자를 설명하겠다.
and는 변수 두개 중 하나라도 거짓이면 모두 거짓, 모두 참인 경우에만 참이 된다.
or은 변수 두개 중 하나만 참이라도 참이 되고, 모두 거짓일 때만 거짓이 된다.
not은 not x로 설명하겠다. x가 참이면 거짓, x가 거짓이면 참이 된다.

이와같은 and, or, not 연산을 수행하는 장치를 논리회로라고한다.
파이썬은 이진수도 처리가능하다. 한자리의 이진수를 비트라고 한다.비트 단위의 조작을 비트 연산자, 다른 말로는 비트 단위 연산자 라고도 한다.
다른 것은 안되고 정수형의 피연산자에만 적용할 수 있다. 10진수 숫자 9는 2진수로 1001이며 숫자 10은 1010인데, 이와같이 0과 1로 표현되는 각 비트에 대한 연산을 수행하는 것이 비트 연산자이다. bin() 함수로 나타낼 수 있다.

프로그래밍에서 매우 중요한 요소인 주석문은 코드에 대한 보조적인 설명을 남기거나 코드 중간에 짧은 메모를 남기는 데 사용된다. 실행과 무관하므로 주석이 없어도 프로그램은 잘 실행된다.
'#'을 입력하고 뒤에 메모를 남기면 된다.

어느 분야에서든 마찬가지로 남용은 좋지 않다. 주석문은 가독성이 떨어지고 코드가 지저분하기 때문인데, 적절하게 사용하면 의미 파악을 하기 쉬우므로 유의하는 것이 좋겠다.
사용자 입력을 받는 input()함수를 사용해보자. 사용자의 키보드 입력을 받을때에는 name = input('이름을 입력하세요: ') 형식으로 사용하면 된다.
문자열이므로 정수로 바꾸고자 할때는 age = int(input('나이를 입력하세요 :')) 와 같이 적으면 된다. 실행 결과와 같이 검은색 글씨로 나타난 부분이 사용자가 입력하는 부분이다.

실행결과
