프로그래밍 이야기/파이썬 코딩 테스트 스터디

파이썬 코딩테스트 스터디 1주차 #2 - 코딩 테스트 필수 문법 - 데이터 타입

hoony926 2024. 6. 5. 21:01

이번 챕터에서는

파이썬 기본 문법을 다 다루기 보다는 

코딩테스트에서 자주 사용되는 문법을 위주로 설명이 되어있는 것 같다. 

 

왜냐하면 책소개에 나와있듯이,

 

"코딩 테스트 합격자 되기" 책 구입 완료!

우선, 구입 인증! 종이책과 전자책을 고민하다가종이책 들고 다니는 것도 불편하고, 전자책이 아주 조금 저렴하기도해서알라딘 전자책으로 결정!(근데 알라딘 전자책 이래저래 불편하다...흠...

hoony926.tistory.com

 

이 책의 대상자는 

"파이썬 기본 문법을 이해한 사람"

 

그럼 지금부터

코딩 테스트 필수 문법 정리 고고!

 

1. 빌트인 데이터 타입

2. 컬렉션 데이터 타입

3. 함수(다음 포스팅)

4. 코딩 테스트 코드 구현 노하우 (다음 포스팅)

 

 


1. 빌트인 데이터 타입

 

기본 데이터 타입 컬렉션 데이터 타입
정수형(int), 실수형(float), 문자열(string) 리스트(list), 튜플(tuple), 셋(set), 딕셔너리(dictionary) 등

 

앱실론?

이 부분을 처음 알게되었다

 

0.1을 3번 더한 a의 값

0.3을 대입한 b를

"=="으로 비교했는데

false가 나온다. 

 

그리고 a를 출력해봤더니 왠걸

0.3이 아니고, 0.3000000000000000004  

??????????뭐지????????????

 

 

 

그래서 ?

같게 하려면 어케해야하지...?

오늘 스터디 시간에 이걸 나누고 싶었는데 깜빡!

 

검색해보니 math 라이브러리를 import하고 

isclose(x,y) 함수를 사용하면 부동소수형(float) 비교가 가능하다.

 

다만, 비교가 가능한거지

실제 float끼리 더했을때 값이 바뀌는 건 아님

즉, 여전히 a는 0.300000000000000004


 

2. 컬렉션 데이터 타입

 

커렉션 :  여러 값은 담는 데이터 타입

즉, 리스트(list), 튜플(tuple), 딕셔너리(dictionary), 셋(set), 문자열(string) 등이 있다.

 

분류 뮤터블 객체(mutable object) 이뮤터블 객체(immutable object)
변경 가능한 객체 변경 불가능한 객체
종류 리스트, 딕셔너리, 셋 정수,부동소수,문자열,튜플

 

 

즉, 뮤터블 객체는 각 원소의 값을 바꿔도 원래 참조하던 객체의 주소가 그대로 유지되는 타입이다.

 

리스트(list)

아래 그림처럼 5번째 원소의 값이 바뀔 때, 

변수 my_list가 바라보는 객체 자체가 그대로 존재하고 값반 바뀜

출처: 코딩 테스트 합격자 되기 : 파이썬 편 71p

 

딕셔너리(dictionary): 키와 값의 쌍으로 저장하는 해시 테이블

 

이렇게  웹에서 Json형태와 유사.

선언은 위와 같이 my_dict(변수명) = {}(중괄호 여닫기) 

이와 같이 작성하면된다.

 

 

원래 my_dict의 "apple"키의 값을 9로 변경해도 원래 참조하던 값을 그대로 참조 한다. 

 

 

 

 

 

반면,

이뮤터블 객체는 값이 변할때,

기존의 객체가 아닌 새로운 객체를 생성하는 형식

출처: 코딩 테스트 합격자 되기 : 파이썬 편 73p

 

 

문자열과 튜플도 마찬가지로, 

튜플을 잠깐 살펴보자.

 

1. my_tuple =  (1,2,3) → 객체 생성

2. your_tuple = my_tuple → 서로 같은 객체 참조

3. your_tuple= your_tuple+(4,) → your_tuple에 값 4 추가

4. 각자 출력해보기 → 서로 다름

 

 

다시 한번 정리하면,

뮤터블
list와 dictionary, set → 변경해도 새로 객체 생성 안함
이뮤터블
int, float , string, tuple  → 변경하면 바로 새로운 객체 생성

 

끝!