Data Analysis

[ Python ] 자료형

곽수진 2021. 8. 30. 13:46
반응형

1. 수치형 자료: 정수형, 실수형, 복소수형

▶️ type() : 자료형 확인 함수

▶️ abs() : 절댓값 확인 함수

▶️ 복합대임연산자 : += / -+ 등

 

2. 문자열 자료: ' ' 또는 " " 안에 있는 한 글자 이상의 문자나 숫자, 기호

 

3. 리스트 자료: [ ] 안에 임이의 객체를 순서 있게 나열한 자료, 각 요소는 콤마(,)로 구분

 

4. 튜플 자료: 튜플은 리스트와 비슷하지만 요소 값을 변경할 수 없다는 점이 리스트와의 차이점

 

5. 사전 자료: { } 안에 키값으로 구성된 순서가 없는 자료형, 인덱스로 접근할 수 없고 키를 통해 대응되는 값을 다룸

 

 

형변환

정수 → 실수, 실수 → 정수, 수치형 → 문자형 등

▶️ float() : 실수형

▶️ int() : 정수형

 

 

부동소수점

▶️ 부동소수점을 표현하지 못함

 

 

▶️ 좌항과 우항이 모두 1이라고 생각하지만 False 값이 나옴

▶️ == : 동등 연산자

 

▶️ round() : 반올림 함수

▶️ 반올림 후 비교해보면 결과값이 True로 나옴

 

 

불리언형 자료

True / False, 1 / 0 → 참과 거짓을 의미함

 

  • 1이면 맞다, 동일하다로 해석하고 0은 틀리다, 동일하지 않다로 해석함
  • 생성 방법: bool( ), is instance(변수, 자료형)
  • ' ', 빈 자료([ ], ( ), { }, ...)False를 의미

 

 

▶️ ''(작은 따옴표) 혹은 [](대괄호) 사이에 공간이 없는 경우 False를 출력하지만 사이에 공간이 있는 경우에는 True를 출력함

 

 

▶️ 변수를 생성해 True값을 입력한 뒤 정수형으로 1을 출력할 수 있음

 

 

문자형 자료

 

▶️ double quotation("), single quotation(') 사용함

 

 

문자형 변환

▶️ yongddon이라는 변수에는 1000이라는 정수가 입력되어 있어 type을 출력하면 정수형(int)임을 알려줌

▶️ yongddon변수를 str()으로 감싸면 문자열로 변함

▶️ str() : 문자열

 

 

▶️ myyongddon이라는 변수에 사용자가 용돈을 입력할 수 있도록 만든 코드

▶️ int로 감싸지 않으면 myyongddon이라는 문자열과 정수 100을 더할 수 없기 때문에 문자열(myyongddon)을 정수로 형변환시킴

 

 

문자열 길이

▶️ len() : 문자열의 길이 확인

공백도 포함

▶️ 이때 letter은 위에서 입력했던 "i am groot"에 해당함

 

 

문자열 대/소문자 바꾸기

▶️ upper() : 대문자로 변경

▶️ lower() : 소문자로 변경

 

 

특정문자 개수 찾기

▶️ 문자열.count('찾고자 하는 문자', 찾기를 시작하고자 하는 인덱스, len(str)) : '찾기를 시작하고자 하는 인덱스'부터 '문자열 끝'까지 중에서 '찾고자 하는 문자'의 개수를 출력함

▶️ letter 변수에 'i am groot' 문자열을 입력

▶️ letter.count('o') : letter 변수에 'o' 문자는 2개 존재함

▶️ letter.count('o', 8, len(letter)) : o라는 문자를 8번 인덱스부터 문자열의 총 길이끝까지 찾았을 때 1개 존재함

 

 

특정 문자 위치 찾기

▶️ 문자열.index('찾을 문자', 시작, 끝) : '시작'부터 '' 중에서 찾은 '찾을 문자'의 위치(index 번호)를 출력함

▶️ letter 변수에 'i am groot' 문자열을 입력

▶️ letter.index('t', 0, len(letter)) : letter 문자열에서 0부터 문자열 끝까지 찾았을 때 9번째에 t 문자가 존재함

 

 

문자 바꾸기

▶️ 문자열.replace('바꿀 대상', '바꾸고자 하는 문자', 횟수) : '바꿀 대상''바꾸고자 하는 문자''횟수'번 바꿈

▶️ letter 변수에 'I am groot' 문자열을 입력

▶️ letter2 = letter.replace("o", "가톨릭", 2) : letter2 변수를 새로 만들어 letter 문자열에서 'o' 문자를 '가톨릭'으로 총 2번 바꿔 저장함

▶️ letter.replace('i', 'I', 1) : letter 문자열에서 'i' 문자를 'I' 문자로 총 1번 바꿔 출력함

 

 

문자 나누기

▶️ letter 변수에는 'I am groot' 문자열이 입력되어 있음

▶️ 문자열.split('나눌 기준', 횟수) : 문자열을 '나눌 기준'으로 '횟수'번 나눔

▶️ letter.split(' ', 1) : letter 문자열을 ' '(띄어쓰기)를 기준으로 1번 나눔

 

 

▶️ a라는 변수에 카리나 22살을 입력

▶️ b = a.split(' ',1) : b라는 변수를 새로 만들어 a 문자열을 ' '(띄어쓰기)를 기준으로 1번 나눔

▶️ name, age 변수를 새로 생성해 각각 b 변수의 0번 인덱스와 1번 인덱스를 나눠 저장 후 출력

 

 

문자 공백 제거하기

▶️ str.lstrip() : 왼쪽 공백 제거

▶️ str.rstrip() : 오른쪽 공백 제거

▶️ str.strip() : 양쪽 공백 제거

▶️ str_l_space.lstrip() : str_l_space 변수에 저장되어 있는 문자열의 왼쪽 공백을 제거

 

 

▶️ str_r_space.rstrip() : str_r_space 변수에 저장되어 있는 문자열의 오른쪽 공백을 제거

 

 

▶️ str_space.strip() : str_space 변수에 저장되어 있는 문자열의 양쪽 공백을 제거

 

 

String Format

{}, {0}, %s(문자), %d(정수), %f(실수), %.2f(소수점 두 자리)

→ %는 변수를 인식하기 위한 약속된 문자, 가장 오래된 버전

 

  • Positional 형식 문자 입력

▶️ University of Illinois urbana-champaign을 출력하려고 함

▶️ twin_city_1, twin_city_2 변수를 생성해 urbana와 chanpaign 문자열을 미리 저장함

 

 

▶️ {}(중괄호) 내에 인덱스 번호를 미리 지정한 후 .format() 안에 집어넣고자 하는 변수 순서대로 입력

 

 

▶️ 중괄호 내에 인덱스 번호를 지정하지 않으면 .format()안에 있는 변수가 순서대로 입력됨

 

 

▶️ 집어넣고자 하는 변수가 문자열이기 때문에 %s를 이용해 지정

 

 

▶️ 위와 동일하게, 집어넣고자 하는 변수가 문자열인 경우에는 %s, 정수인 경우에는 %d를 이용해 지정할 수 있음

 

 

  • Keyword 형식 문자 입력

▶️ test 변수에 딕셔너리 자료형을 만들어 name에는 fruit를 지정하고 taste에는 good을 지정해 출력함

 

 

%를 출력하고 싶다면?

▶️ print() 함수를 이용해 %를 출력하면 잘 출력되지만 아래 셀에서는 오류가 발생함

→ %는 변수를 인식하기 위해 약속된 문자이기 때문

→ 단독으로 있을 때는 괜찮지만, 아래 셀에서는 앞에 %s에 해당하는 변수가 존재함

 

 

▶️ 앞에 %를 하나 더 붙여 해결 가능함

print("%")의 %는 문자열이고 print(변수 % 변수)의 %는 string format

 

 

f-string format

f'출력하고자 하는 문장'

→ 변수 타입에 영향을 받지 않음

 

▶️ 출력하고자 하는 변수만 {}(중괄호)안에 넣으면 됨

 

 

따옴표 종류('', "") 출력

→ 큰 따옴표로 감싸고 있는 문장 내에 큰 따옴표 문장이 하나 더 있는 형태의 문장을 출력하고자 함

 

▶️ ""(큰 따옴표) 사용이 겹쳐 오류가 발생한 모습

 

 

▶️ 살리고싶은 따옴표 앞에 \(back slash)를 넣어줌으로써 오류 없이 문장 출력 가능

 

 

이스케이프(escape)

\(backslash) + 특정문자

\n : 줄 바꿈

\t : 탭

 

▶️ I'm Groot 문자를 감싸고 있는 작은 따옴표와 I 뒤에 쓴 작은 따옴표가 겹쳐 오류가 발생

 

 

▶️ 이를 해결하고자 I 뒤에 있는 작은 따옴표 앞에 이스케이프 문자를 넣어줌

 

 

▶️ 위 상황에 더해 \n을 통해 줄바꿈하여 두 문장으로 나눔

 

 

▶️ 위 상황에 더해 \t을 통해 탭 역할을 함

 

 

이스케이프 문자까지 함께 출력하고 싶다면?

r'string'

▶️ r' '로 감싸줌으로써 문장 내에 사용한 이스케이프 문자까지 모두 출력

 

 

사용자에게 값을 입력받아 변수에 저장하기

▶️ input() : 사용자가 입력한 값 저장

▶️ korean_hello = input("hello를 한국말로 하면?") : korean_hello라는 변수에 사용자가 "hello를 한국말로 하면?"이라는 질문에 입력한 값을 저장함

 

 

# 연습 문제 #

 

10과 10.1의 자료형을 확인해보자.

▶️ type() : 자료형 확인 함수

 

 

정수형과 실수형을 더한 값은 자료형이 어떻게 될까?

▶️ 정답은 11.1로 실수형으로 표현

 

 

10 나누기 3의 결과를 내림해보자.

▶️ 실수로 표현된 값을 정수로 표현하는 방법은 2가지가 존재함.

int() : 정수형 형변환

// : 정수 몫 나눗셈

 

 

수집하려는 페이지를 1씩 더하면서 수집할 예정이다. page = page + 1을 다르게 표현해보자.

▶️ += : 복합관계연산자

 

 

1을 문자형으로 변환해보자.

▶️ 변환하기 전 1은 정수형임'

▶️ str() : 문자 형변환

 

 

 

"I love Python"을 me 변수에 넣고 3번 출력해보자.

▶️ 문자열 * 횟수 : 문자열횟수번 곱함

 

 

me 변수에 저장된 길이를 출력해보자.

▶️ len() : 문자열 길이 출력 함수

 

 

me 변수에 저장된 문자열을 소문자로 바꿔보자.

▶️ lower() : 소문자 변경 함수

 

 

me 변수에 저장된 문자열 중 p의 개수를 출력해보자.

▶️ count() : 개수 출력 함수

 

 

me 변수에 저장된 문자열에서 I의 위치를 출력해보자.

▶️ 변수.index('찾고자 하는 문자') : 변수 내에서 찾고자 하는 문자의 위치를 출력함

 

 

 

me 변수에 저장된 문자열을 공백을 기준으로 나눠보자.

▶️ 변수.split('나누고자 하는 기준', 횟수) : 변수에 저장된 문자열을 나누고자 하는 기준으로 횟수번 나눔

 

 

me 변수에 저장된 문자열에서 I를 We로 바꿔보자.

▶️ 변수.replace('바뀌기 전 문자', '바뀐 후 문자') : 변수에 저장된 문자열에서 바뀌기 전 문자를 찾아 바뀐 후 문자로 바꿈

 

 

아래 데이터를 이용해 '마트에서 애기를 둔 아빠가 기저귀를 살 때 같이 구매하는 제품은 맥주다.'를 변수를 사용해 출력해보자.

 

▶️ 변수 purchase_1purchase_2를 각각 생성해 '기저귀''맥주'를 미리 저장함

▶️ 변수가 들어갈 곳을 {}(중괄호)로 만들고 .format()에 변수를 순서대로 저장

▶️ 문자열의 경우 %s를 이용해 만들고 %()에 변수를 순서대로 저장

 

 

2017년 기준 금리는 1.51%이다.를 f-string format을 이용해 출력해보자.

 

▶️ 변수 basemoney_rate을 생성해 1.51을 미리 저장함

▶️ f' ' 내에 변수를 넣고자 하는 부분만 {}(중괄호)로 만들어줌

반응형

'Data Analysis' 카테고리의 다른 글

[ Python ] 딕셔너리  (0) 2021.08.30
유튜브 영상 다운로드 프로그램  (0) 2021.08.30
[ Python ] 변수  (0) 2021.08.30
Jupyter Notebook 기본 기능 익히기  (0) 2021.08.30
Jupyter Notebook 설치 및 실행  (0) 2021.08.30