- 데이터형(Data Type)은 자료형이라고도 하며 컴퓨터에서 다루어지는 다양한 데이터 값들의 유형을 의미합니다.
- 정수형, 실수형, 문자열형 등이 있으며, 3은 정수형이고 3.5는 실수형이라고 합니다.
- 파이썬에 있는 데이터형
- 정수형(int)
- 실수형(float)
- 문자열형(str)
- 부울형(bool)
- 위의 명령문은 정수 3과 정수 5를 덧셈 연산자를 사용하여 덧셈을 수행하는 것입니다.
- 3 + 5를 입력하고 Ctrl + Enter 키를 입력하면 명령문 아래에 8이라는 값이 출력됩니다.
- 파이썬은 인터프리터이므로 입력 후 출력 결과를 대화식으로 즉시 확인할 수 있습니다.
- 나머지 사칙연산자들도 사용해보면 마지막 나누기 연산식의 결과값이 실수형이라는 것이 특이합니다.
- 문자열형은 단어나 문장을 저장하기 위해 준비된 데이터형입니다.
- 프로그래밍 언어들은 문자 1개를 저장하는 문자형(char)이 따로 있는데 파이썬에서는 문자형을 문자열형으로 사용하기 때문에 문자형이 없습니다.
- 파이썬에서는 문자열형에 작은따옴표(' ')와 큰따옴표(" ")를 모두 사용할 수 있습니다.
- 첫 번째 명령문은 큰따옴표로 열고 큰따옴표로 닫은 문자열형의 값입니다.
- 출력 결과가 작은따옴표로 출력되었습니다.
- 변수(variable)는 데이터를 저장할 수 있는 메모리 공간의 이름을 의미합니다.
- 프로그래머가 쉽게 데이터에 액세스할 수 있도록 특정 메모리에 이름을 붙인 것이 변수입니다.
- 지속적으로 내용을 다른 값으로 갱신할 수 있어서 변수라고 합니다.
- 변수에 특정한 값들이 저장되어 있다면 변수 또한 데이터형이 지정된 것입니다.
- 파이썬에서는 어떤 변수의 데이터형이 무엇이냐고 물어보면 해당 변수에 저장된 값에 따라서 답이 정해집니다.
- 파이썬에서는 변수에 데이터를 할당하는 순간 자동으로 선언되는 효과가 있습니다.
- 변수의 데이터형은 처음 입력되는 값의 데이터형에 따라 결정됩니다.
- 등호('=')는 산술적인 계산이 아닌 어떤 특정한 기능을 수행하는 연산자입니다.
- 등호('=') 연산자는 등호를 기점으로 오른쪽에 위치한 값을 왼쪽에 저장하라는 연산자입니다.
- 위의 명령문을 실행하면 다음 2가지 일을 수행하고 아래 그림과 같은 내용으로 메모리에 생성됩니다.
1. (입력값이 정수형이므로) num이라는 정수형 변수가 메모리에 생성
- 정수형 변수 num에 3 저장
- 위의 명령문을 실행하면 아무런 반응이 없는데, 입력값이 3으로 정수형이기 때문에 정수형 변수 num을 생성하고 3을 저장만 합니다.
- num에 저장된 값인 3이 출력됨을 확인할 수 있습니다.
- 대부분의 언어에서는 문자 1개를 저장할 수 있는 '문자형'을 별도로 지원하지만 파이썬에서는 작은따옴표(' ')를 이용하여 '문자형'과 '문자열형'을 같이 사용합니다.
- 'John'이라는 문자열을 user라는 문자열형 변수에 입력하고 출력하는 명령문입니다.
- 문자열이 한글로도 잘 동작합니다.
- 데이터형을 확인이 필요할 때는 type( ) 함수를 사용하면 됩니다.
- isinstance( ) 함수를 이용하여 해당 변수가 어떤 종류인지 조사할 수 있습니다.
- 정수형 변수 a가 정수인지를 알아보는 명령문입니다.
- 참이면 True를 거짓이면 False를 출력(반환)합니다.
- 위의 명령문에서 정의된 변수의 이름은 var입니다.
- 해당 변수의 데이터형은 문자열형입니다.
- 위의 명령문을 실행하면 ''가 출력됩니다.
- 부울형 변수는 부울(또는 불린)이라 부르고 영어로는 boolean의 약어인 bool로 데이터형을 표시합니다.
- True 또는 False의 2가지 논리값 중 하나의 값만을 가집니다.
- 참 또는 거짓의 값을 의미합니다.
- 파이썬도 다른 프로그래밍 언어와 마찬가지로 다양한 연산자 기능을 제공하고 있습니다.
- 연산자의 종류로는 산술연산자, 관계연산자, 논리연산자, 비트연산자가 있습니다.
- 산술연산자에 대한 내용은 이미 데이터형에서 설명했습니다.
- a는 정수형이며 b는 실수형입니다.
- 위 코드를 보면 결과가 정확히 출력됩니다.
- 정수와 실수의 합이 특별한 형변환(Type Conversion) 없이 수행되는 것을 볼 수 있습니다.
- 관계연산자는 2개의 값이나 변수 간의 관계를 연산하며 관계연산자의 결과는 참(True) 또는 거짓(False)입니다.
- 관계연산자의 종류
- 아래의 관계식은 한글 문장으로 "a는 0보다 크다"라고 읽을 수 있습니다.
- 관계식은 반드시 연산자의 왼쪽을 문장에서 주어로 해석해야 합니다.
- "0은 a보다 작다"라고 하면 논리적으로는 문제가 없으나 잘못 읽은 것이 됩니다.
- '>'는 '작다'가 아니라 '크다'로 정의되어 있기 때문입니다.
- 논리연산자는 2개의 값이나 변수 간에 논리적인 연산을 수행하며, 논리연산자의 결과는 참(True) 또는 거짓(False)입니다.
- 관계연산자와 마찬가지로 읽혀지는 내용이 컴퓨터가 계산하는 내용입니다.
- 논리연산자의 논리 계산법
- 결론적으로 and는 두 개의 피연산자(operand) 중에 하나라도 False이면 결과도 False가 되고, or은 두 개의 피연산자 중에 하나라도 True이면 결과도 True가 됩니다.
- not은 피연산자의 값의 반대값으로 전환하면 되므로 False는 True로 전환되며 역으로도 성립합니다.
- 일반적으로 논리연산자는 관계연산자와 혼합하여 자주 사용됩니다.
- 논리 연산자 not은 값을 반대로 바꾸는 역할을 합니다.
- 비트연산자는 비트 단위 연산을 수행합니다.
- 비트 단위로 논리적인 연산이나 자리 이동을 시키는 시프트 기능이 있습니다.
- 비트연산자 종류
- 비트연산자의 논리는 논리연산자의 논리와 같다고 생각하면 됩니다.
- 다만 비트연산자는 비트 단위로 계산되기 때문에 1을 True로 0을 False로 생각하면 됩니다.
- 파이썬의 print( ) 함수는 해당 객체를 출력장치(스크린) 또는 문자 스트림 파일로 전송할 수 있습니다.
- 객체란 출력할 내용을 의미하며 print( ) 함수는 해당 값이나 변수에 저장된 값을 문자열 형태로 출력하게 됩니다.
- 파이썬은 C언어의 printf( ) 함수와 유사한 데이터 형식 지정자를 제공합니다.
- 파이썬은 출력하는 값이나 변수에 대한 형식 지정자를 지정해주지 않고도 출력이 가능합니다.
다양한 데이터형 출력
- print( ) 함수를 이용하여 단순히 값이나 변수에 저장된 값들을 화면에 출력할 수 있습니다.
문자열 출력
- print( ) 함수에서는 함수의 입력값으로 수식을 지정할 수 있으며 해당 수식을 계산한 후 출력할 수 있습니다.
- print( ) 함수에서 다수의 값이나 변수에 저장된 값들을 출력하려면 각각의 내용들을 콤마( , )로 연결하면 됩니다.
- 문자열형도 마찬가지입니다.
- 파이썬 형식에서는 콤마( , ) 대신에 '%'를 적고 이후에 출력하는 값이나 변수를 적어주면 됩니다.
- 다른 데이터형들의 표기 방법
- 변수에 저장된 값을 출력하는 예제
- 파이썬에서는 input( ) 함수를 이용하여 키보드로 입력되는 문자열의 내용을 지정한 변수에 저장할 수 있습니다.
- input( )를 사용하면 입력창이 뜨고 입력창에 직접 입력을 하면 문자열이 출력됩니다.
- 적절한 지시사항을 포함하면 사용자가 당황하지 않고 사용할 수 있을 것입니다.
- age와 after를 더하면 2514로 출력됩니다.
- input( ) 함수로 입력된 모든 값들은 문자열로 저장되었기 때문입니다.
- 숫자든 문자열이든 모두 input 함수로 입력받으면 문자열로 저장됩니다.
- 문자열을 정수 형태로 변환하는 int( ) 함수를 사용하면 해결이 됩니다.
- 병합 기호인 '+'를 사용할 때는 데이터형을 일치 시켜줘야 합니다.
예제 1-17 데이터값 덧셈
예제 1-18(1) 정수형 데이터값 덧셈
예제 1-18(2) 정수형 데이터값 곱셈
예제 1-19
- 뎃셈을 할 때 age로부터 읽어온 값을 바꾼 것이지 age 자체의 값이 바뀐 것은 아닙니다.
예제 1-20
- 정수뿐만 아니라 실수형의 데이터 동작 원리도 마찬가지입니다.
- input( ) 함수로 입력 받았기 때문에 문자열로 저장되었으며 출력은 str이 출력됩니다.
예제 1-21
- int( ) 함수는 문자열뿐만아니라 실수형의 데이터도 정수로 변환할 수 있습니다.
- 소수점 이하의 수는 저장할 수 없으므로 정수부분만 출력됩니다.
- 문자열 형태로 된 정수는 int( ) 함수로 변환이 가능하지만 문자열 형태로 된 실수는 int( ) 함수로 바꿀 수 없으며 에러가 발생합니다.
예제 1-22
- 위 과정을 아래처럼 한 줄로 처리할 수 있습니다.
- a는 bool형이 아닌 str형으로 저장되었습니다.
- bool 함수를 이용해서 a를 출력하면 False가 아닌 True가 출력됩니다.
- bool( ) 함수의 입력값으로 문자열형 값을 입력하면 무조건 참(True)가 됩니다.
- 결론적으로 문자열을 부울값으로 직접 변환하는 방법은 없습니다.