- 프로그램이 처리할 수 있는 모든 데이터에는 어떤 것들이 있으며
- 데이터를 보관 및 처리하는 간단한 방법에 대해 살펴봄.
1. 자료형과 기본 자료형
기능과 역할에 따라 자료를 구분
- 기본 자료형(data type)
- 문자열(string)
- 숫자(number)
- 불(boolean)
- 기본 자료형을 조합하여 새로운 자료형을 만들 수 있음
- ex) 이재영(00년생)
- ex) 2000-07-11
2. 자료(data)를 알아야 하는 이유
- 자료형(data type) 확인하기
파이썬에서 자료(data)의 형식(type)을 확인할때 type() 함수 사용
print(type('안녕~'))
==> print(type('안녕~'))
<class 'str'>
• 'str'이라고 출력되었는데 'string'의 약자를 출력한 것으로 "안녕~"이라는 자료(data)는 'string'형 데이터라는 것을 확인하였다.
print(type(73))
==> <class 'int'>
• 'int' 라고 출력되었는데 'integer'의 약자를 출력한 것입니다. 즉 정수형 데이터라는 뜻이다.
3. 문자열 만들기
'hello', '안녕', '이 재영', 'good morning'
위와 같이 문자열 형 데이터를 만들 때는 문자열을 이중 인용 부호로 감싸면 된다. 또는 단일 인용 부호로 감싸면 된다.
print('안녕~')
print('좋은 아침이야')
==>
안녕~
좋은 아침이야
3-1. 큰 따옴표로 문자열 만들기
"안녕~"이라는 문자열 형 데이터와 "좋은 아침이야"라는 문자열 형 데이터를 생성해서 (문자열을 이중 인용 부호로 감싸서) print() 함수에 전달해보겠다.
print("안녕~","좋은 아침이야")
문자열 (형) 데이터 두개를 "안녕~"과 "좋은 아침이야" print()함수에 전달했으며 두 문자열(형) 데이터를 구분하기 위해 쉼표(,)를 사용했다.
3-2. 작은 따옴표로 문자열 만들기
작은 따옴표(') 로도 문자열(형) 데이터를 만들 수 있다.
print('안녕~')
3-3. 문자열 내부에 따옴표 넣기
print(" 내 꿈은 '멋진 집'을 갖는거야!")
print('내 꿈은 "멋진 집"을 갖는거라고')
4. 여러 줄 문자열 만들기
print('한번 더 나에게 \\n질풍 같은 용기를\\n거친 파도에도 굴하지 않게\\n드넓은 대지에 다시 새길 희망을
==>
한번 더 나에게
질풍 같은 용기를
거친 파도에도 굴하지 않게
드넓은 대지에 다시 새길 희망을
5. 문자열 연산자 : +
자료의 자료형에 따라 적용할 수 있는 연산자가 정해져 있다.
숫자형 데이터 2와 숫자형 데이터3은 더할 수 있다.
print('이'+'재영')
==> 이재영
6. 문자열 반복 연산자 : *
print('안녕'*3)
==> 안녕안녕안녕
7. 문자열 선택 연산자(인덱싱) : []
- 문자열 데이터 '이재영' 은 세 개의 글자로 구성되어 있는데 첫[0] 번째 글자는 '이', 두[1]번째 글자는 '재', 세[3]번째 글자는 '영' 이다.
- 여기서 각각의 글자(요소)에 접근하기 위한 숫자 0,1,2를 인덱스(index)라고 한다.
print('이재영'[0])
==> 이
print('이재영'[1])
==> 재
print('이재영'[2])
==> 영
• 짧은 테이프에 '이재영'이라고 쓰고 테이프의 앞과 뒤를 붙여 원으로 만들었다고 가정한다. 문자열 '이재영'에서 '이' 자리를 인덱스 0 위치라고 하면 '이' 왼쪽에는 '재'라는 글자가 위치하며 그 자리는 0의 왼족자리 즉 -1의 위치로 볼 수 있다.
8. 문자열 범위 선택 연산자(슬라이싱) : [:]
'질풍가도(쾌걸 근육맨)'이라는 문자열 데이터를 가지고 문자열 내에서 범위를 지정하여 데이터를 추출하는 방법을 알아보겠다. 예를 들어 '질풍가도(쾌걸 근육맨)'이라는 문자열 데이터에서 '질풍가도'만 추출하거나 '(쾌걸 근육맨)'만 분리해 보는 것이다.
print('질풍가도(쾌걸 근육맨)'[0]) # 인덱스 0은 맨 처음
print('질풍가도(쾌걸 근육맨)'[-1] # 인덱스 -1은 맨 마지막
==> 질
)
문자열 데이터, '질풍가도(쾌걸 근육맨)'에서 '질풍가도만 추출하겠다. 다시 말해 인덱스 0부터 인덱스 3까지의 데이터만 추출하면 된다.
'질풍가도(쾌걸 근육맨)'[0~3]
위 코드에서 [0~3] 표현은 파이썬 문법에 맞지 않다. 인덱스 0부터 인덱스 3까지의 의미를 담는 표현은 [0:4] 이다. [0:3] 이 아니다.
[start : end]
위표현에서 start는 지정하려는 범위의 시작 인덱스이고 end는 지정하려는 범위의 끝 인덱스 보다 1 더 큰 수 이다. 지정하려는 범위가 인덱스 0부터 인덱스 3까지라면 start의 값은 0이고 end의 값은 지정하려는 범위의 끝 인덱스보다 1 더 큰 4가 되어야 한다.
print('거친 파도에도' + '굴하지 않게'[:7])
print('거친 파도에도' + ' 굴하지 않게'[:7])
print('거친 파도에도 굴하지 않게'[0:])
print('거친 파도에도 굴하지 않게'[3:])
==>
거친 파도에도굴하지 않게
거친 파도에도 굴하지 않게
거친 파도에도 굴하지 않게
파도에도 굴하지 않게
print('12345'[:5])
print('12345'[:4])
==>
12345
1234
9. 문자열의 길이 구하기
len()함수로 문자열 데이터의 길이(문자 개수)를 구할 수 있다. 함수는 수학 시간에 처음 들었던 말이다. 수학 선생님께서 '함수를 영어로 바꾸면 뭐지?' 우리는 대답한다. 'function'이요
영어 수업 시간이다. 영어 선생님이 'function이 한국말로 뭐지?' 우리는 대답한다. 기능요
프로그래밍 수업시간 이다. 'function'이 뭐지?' 뭐라고 대답하고 싶은가?
이후 function(함수)라는 말이 자주 등장하는데, 한 마디로 기능 블록 이다. 어떤 일을 하도록 작성된 기능 블록이다.
len()는 문자열 데이터의 길이를 측정할 수 있는 기능을 갖은 코드 블록, 함수(function)이다.
print(len('질풍가도'))
==> 4
s = '하나둘셋'
print(len(s))
==>
4
len = 32
len(s)
==>
TypeError Traceback (most recent call last)
<ipython-input-5-c65ce7a521d8> in <cell line: 2>()
1 len = 32
----> 2 len(s)
TypeError: 'int' object is not callable
에러가 난 이유는 len이 키워드 이기 때문에 키워드는 변수로 사용하면 안된다.
한번 len을 변수로 지정해주면 다시 사용할 수 없게 되기 때문에 런타임 다시 시작을 해줘야 한다.
'빅데이터 분석가 양성과정 > Python' 카테고리의 다른 글
Ch 03-1 조건문 / 불 자료형과 if 조건문 (0) | 2024.07.04 |
---|---|
Ch02-4 자료형 / 숫자와 문자열의 다양한 기능 (0) | 2024.07.04 |
Ch02-3 자료형 / 변수와 입력 (0) | 2024.07.04 |
Ch02-2 자료형 / 연산자 (0) | 2024.07.04 |
Ch01 시작하기 (0) | 2024.07.04 |