python의 자료형 관련 모듈
=> 자료형은 데이터의 모양
1. 데이터 분류
=> Literal : 사용자가 직접 입력하는 데이터
=> veriable : 데이터에 이름을 붙이는 것 - 재사용이 목적입니다
변수이름 = 데이터
기존의 변수가 존재하면 데이터를 변경하는 것이고 존재하지 않는 변수이름이라면 새로운 변수를 추가하는 것입니다.
변수는 만들고 난 후 사용해야 합니다.
최근에는 데이터를 분류할 때 수정 가능 여부에 따라 mutable 과 immutable 로 나누기도 합니다.
(변경가능한 데이터) (변경 불가능한 데이터)
1개의 데이터를 가진 Scala data와 0개 이상의 데이터를 가진 Vector Data(Collection)로 분류하기도 합니다.
변수에 Scala data를 대입하면 변수이름 자체가 데이터가 되지만
Vector Data는 변수이름이 데이터가 저장된 곳의 참조입니다.
Vector Data 의 경우는 . 이름 이나 [index] 를 이용해서 실제 데이터에 접근합니다.
정형 데이터 : 모양이 일정한 데이터 , 데이터베이스에 저장된 데이터
비정형 데이터 : 음성이나 텍스트 데이터 처럼 모양이 정해지지 않은 데이터 (ex: siri)
반정형 데이터 : 메타 데이터를 가지고 있는 형태로 스마트 폰의 센서 데이터 또는 Web에서 제공하는 XML 이나 Json 같은 포맷의 데이터를 의미합니다.
2. 파이썬 자료형
bool : true 아니면 false 저장
int(정수), float(실수) , complex(복소수).숫자
========= Scala data =========
bytes : 바이트의 모임 - 데이터가 컴퓨터에 저장될 때 사용
str : 문자의 모임
list : 데이터를 순서대로 저장하는 데이터의 모임 : 데이터 변경 가눙
tuple : 데이터를 순서대로 저장하는 데이터의 모임 : 데이터 변경 불가능
set : 데이터를 중복없이 순서와 무관하게 저장하는 데이터의 모임
dict : 데이터를 이름과 값의 쌍으로 저장하는 데이터의 모임
3. bool
=> true 나 false 를 저장하는 자료형
=> 숫자나 데이터의 모임을 가지고도 생성 가능
bool(숫자나 데이터의 모임)
숫자의 경우는 0 이면 false 나머지는 true
데이터의 모임을 가지고 만들 때는 데이터가 존재하면 true 데이터가
존재하지 않으면 false가 된다.
=> 산술 연산이 가능한데 true 1로 간주하고 false는 0으로 간주한다
4. 숫자(Number)
1) 정수 - int
=> 문자열이나 bool 을 가지고 정수를 만들 때는 int(bool 데이터나 문자열)
정수로 변경할 수 없는 문자열을 넣으면 에러
실수를 넣으면 소수가 없어집니다. 반올림 할 때는 int 대신에 round를 이용
올림이나 버림은 math.celi, math.floor
2) 실수 - floor
=> 문자열이나 bool 을 가지고 실수를 만들 때는 float(bool 데이터나 문자열)
=> 프로그래밍 언어는 실수를 완전하게 표현할 수 없어서 실수를 가지고 산술 연산을 하게되면 잘못된 결과를 만들 수 있습니다
3) 복소수 - complex
실수부 + 허수부 j 또는 complex(실수부, 허수부)
total=0 for i in range (0,1000): total= total+1 print("합계:",total) #실수는 여러 작업을 하다보면 표현할 수 없는 숫자가 있기 때문에 #1000번울 더한 경우 100이 나오지 않습니다 total=0.0 for i in range(0,1000): total=total+0.1 print("합계:",total) |
합계 : 10000
합계 : 99.999999999986..
print(10-8==2) print(1.0-0.8==0.2) #컴퓨터에서 실수를 사용할 때는 정수로 변환해서 연산을 한 후 실수로 바꾸거나 #아니면 별도로 제공되는 라이브러리를 이용해야 합니다. |
True
False
5. sequential type
=> bytes , str , list , tuple 4가지
=> 공통된 작업
1) 인덱싱 : [번호] - 번호 번째에 해당하는 데이터를 사용 , 음수를 넣으면 뒤에서 부터 계산
2) 슬라이싱 : [start:terminate:step]
start 번째 부터 terminate 앞까지 step 간격으로 데이터를 가져옵니다.
step 은 생략하면 순서대로 하나씩 가져오기
terminate를 생략하면 start 부터 끝까지
3) + 를 이용하면 결합이 가능
4) * 숫자를 이용하면 반복
5) 멤버가 존재하는지 조사할 때는 ( 멤버 in sequential type)
6) 데이터 개수를 알고자 할 때는 len(데이터)
msg = 'Hello sequential type' #인덕싱 print(msg[2]) 앞에서 3번째 print(msg[-2] 뒤에서 2번째 #슬라이싱 print(msg[0:4:1]) # 0번째부터 3번째까지 1글자씩 이동하면서 가져옵니다. print(msg[0:4:2])# 0번째부터 3번째까지 2글자씩 이동하면서 가져옵니다. print("hello" + "python")# 결합 print("hello" * 3) #3번 반복 print(len("hello")) #글자수확인 |
l
p
hell
hl
hellopython
hello hello hello
5
6. str
=> 문자열 클래스
=> 내부에 있는 데이터를 변경할 수 없는 문자의 모임
1) 생성
=> 작은 따옴표나 큰 따옴표 안에 문자를 대입
=> 여러 줄 입력을 할때는 따옴표를 3번씩 합니다.
msg = "hello"
print(msg[1]) # e
msg[1] = l #error - 내부 데이터를 변경할 수 없음
2) 문자열은 자신에게 연산을 하지 않습니다.
복사해서 작업한 결과를 돌려줍니다.
3) 문자열에서 고려할 부분
=> 영문의 경우 대소문자 구분 : upper() 나 lower() 를 이용하면 대문자 나 소문자로 변경해서 리턴해줍니다.
=> 좌우 공백 제거 : strip()을 호출하면 좌우 공백을 제거해줍니다.
다른 언어에서는 trim()이라고 합니다
=> 문자열 포함 여부 확인 : find(검색할 문자열)을 호출하면 문자열이 있으면 그 위치를 리턴해주고
없으면 -1을 리턴해줍니다
보통 다른 언어에서는 find 대신에 indexof 라고 합니다.
=> 파이썬은 > 나 < 를 이용해서 문자열의 크기가 비교가 가능합니다.
if 한글문자열 >= '가" and 한글문자열 < "나":
'Python' 카테고리의 다른 글
[파이썬] 파이썬의 모듈 (0) | 2021.01.30 |
---|---|
[파이썬] 파이썬 정리2 (0) | 2021.01.24 |
[파이썬] 추상***** (0) | 2021.01.23 |
[파이썬] 상속 (0) | 2021.01.23 |
[파이썬] 상속 (0) | 2021.01.17 |