파이썬 자료형
* 숫자형
1. int
- 정수형으로 양, 음의 정수 및 0을 대입 가능
a = 321
b = -123
type(a)
type(b)
>>> return 'int'
2. float
- 실수형으로 소수점 단위 표현이 가능
a = 4.2
type(a)
>>> return 'float'
- 다른 표현으로 scientific notation 방식 표현
a = 3.4e-23 # == 3.4*10^-23과 표현이 같음. e의 대소문자는 상관없음
3. complex
- 복소수 자료형
a = complex(2, 3)
a
>>> return 2+3j
a = 3-5j
a
>>> return 3-4j
type(a)
>>> return 'complex'
숫자형에 사용이 가능한 Operations
Operation |
Result |
x+y |
x와 y의 합 |
x-y |
x와 y의 차 |
x*y |
x와 y의 곱 |
x/y |
x와 y의 몫 |
x//y |
x와 y의 정수로 내림한 몫 |
x% y |
x/y의 나머지 |
-x |
음의 x |
+x |
양의 x |
abs(x) |
x의 절댓값, 인자가 복소수일 경우 크기 반환 |
int(x) |
정수로 변환된 x |
float(x) |
실수로 변환된 x |
complex(re, im) |
실수부 re와 허수부 im으로 구성된 복소수 im의 기본값은 0 |
c.conjugate() |
복소수 c의 켤레 |
divmod(x, y) |
쌍(x//y, x&y) |
pow(x, y) |
x의 y거듭제곱 |
x ** y |
x의 y거듭제곱 |
bin(x) |
x를 10진수로 출력 |
oct(x) |
x를 8진수로 출력 |
hex(x) |
x를 16진수로 출력 |
* 문자열 자료형
1. 문자열
- 문자의 집합을 의미
a = 'this is school'
type(a)
>>> return 'str'
- 문자열의 표현방법은 4가지가 존재
a = 'this is school' #작은 따옴표로 묶기
b = "this is school" #큰 따옴표로 묶기
c = '''this is school''' #작은 따옴표 3개로 묶기
d = """this is school""" #큰 따옴표 3개로 묶기
2. 문자열의 연산
- 파이썬의 문자열은 더하거나 곱하기가 가능
a = 'i ' + 'do'
>>> return 'i do' #붙여진 문자열
b = 'i' * 3
>>> return 'iii' #3번만큼 반복된 문자열
3. 문자열 인덱싱과 슬라이싱
- 문자열을 편집하기 위한 인덱싱과 슬라이싱
a = 'learning python'
a[0]
>>> return 'l' #a의 0번째 문자를 가져옴
a[-2]
>>> return 'o' #a의 뒤에서 2번째 문자를 가져옴
a[3:7]
>>> return 'rnin' #a의 3번째부터 7번째가지의 문자를 가져옴
4. formatting
- 문자열 내의 특정한 값을 바꿀 시 사용
a = 20
f'{a}and{a}'
>>> return '20and20'
#f를 붙이고 문자열을 시작하면 중괄호에 변수값을 불러 올 수 있음
5. 관련 함수
- 문자열 내의 자체적으로 가지고 있는 함수
a = 'learning python'
a.upper()
>>> return 'LEARNING PYTHON' #대문자로 변환
a.lower()
>>> return 'learning python' #소문자 변환
a.replace('py', 'hi')
>>> return 'learning hithon' #'py'를 'hi'로 변환
a.split()
>>> return ['learning', 'python'] #공백을 기준으로 문자열을 나누어 리스트로 리턴
* 리스트 자료형
-- 리스트는 여러 요소들을 묶어 하나의 변수로 활용할 때 사용
-- 리스트의 요소는 4가지이며 요소들의 자료형은 어떤 형식이든 상관없음
-- 파이썬의 동적 배열로 자유롭게 확장할 수 있는 구조를 가짐
-- 요소들은 [] 안에 컬렉션을 표현, 요소는 저마다 다른 타입이 되며 (,)로 구분
1. 리스트 인덱싱
- 요소의 시작은 [0]부터 시작하고 참조 시 음수를 사용할 수 있으며 [-1]은 마지막 요소 [-2]는 뒤에서 두 번째 요소를 가리킴
num = [1, 2, 3]
num[0]
>>> return 1
num[-1]
>>>return 3
num[-2]
>>> return 2
2. 리스트 슬라이싱
- 리스트 일부 요소를 선택하는 방식.
- 리스트[처음 인덱스 : 마지막 인덱스]로 부분집합의 범위를 지정
- 인덱스의 시작은 [0]부터 시작하고 마지막 인덱스는 원하는 인덱스 위치의 +1을 해서 지정
- 첫 인덱스 생략 시 0부터 시작하고 마지막 인덱스 생략시 리스트 끝까지 포함시킴
num = [1, 2, 3, 4, 5, 6, 7]
num[1:3]
>>> return [2, 3]
#배열의 1번 요소와 3번째요소 바로전을 출력시킴
num[:3]
>>> return [1, 2, 3]
#0번째 요소부터 참조
num[1:]
>>> return [2, 3, 4, 5, 6, 7]
#1번째 요소부터 끝까지 참조
3. 리스트 요소 추가, 수정, 삭제
- 리스트에 새로운 요소를 추가할 때는 '리스트. append()'를 사용
- 수정 시 리스트 인덱싱을 이용해 값을 변경
- 삭제는 'del 요소'를 이용해서 요소 삭제
a = [10, 'and', 4.4]
a.append('or')
a
>>> return [10, 'and', 4.4, 'or']
#추가시킨 요소는 리스트 맨뒤에 추가됨
a[0] = 11
a
>>> return [11, 'and', 4.4, 'or']
#0번째 요소를 11로 변경
del a[1]
a
>>> return [10, 4.4, 'or']
#a의 1번째 요소를 삭제
4. 리스트 병합과 반복
- 두 개의 리스트를 병합하기 위해서는 플러스(+)를 사용, 이때 두 리스트는 순서대로 병합된 새로운 하나의 리스트로 변경
- 하나의 리스트를 N번 반복하기 위해서는 '리스트 *N'과 같이 표현 리스트 하나를 반복해서 만들어지는 새로운 리스트를 생성
a = [1, 2]
b = [3, 4, 5]
c = a + b
c
>>> return [1, 2, 3, 4, 5]
#a의 리스트와 b의 리스트를 합침
d = a * 3
d
>>> return [1, 2, 1, 2, 1, 2]
#a리스트를 3번 반복
5. 리스트 검색
- 리스트 속 특정 요소 검색은 index()를 사용
- 특정 요소 개수 체크는 count() 사용
mylist = "This is a book That is a pencil".split()
i = mylist.index('book')
n = mylist.count('is')
print(i, n)
>>> return 3 2
#split으로 공백기준으로 분리된 리스트를 만들고 'book'의 위치를 인덱싱 'is'의 개수는 카운트 한 결과 출력
6. List Compreshesion
- 리스트 속에서 for 루프를 사용해 반복적으로 표현식을 실행하여 리스트 요소들을 정의하는 특별한 용법
- 컬렉션으로부터 요소를 하나씩 가져와 표현식을 실행하여 결과를 리스트에 담음
[표현식 for 요소 in 컬렉션 [if 조건식]]
list = [n ** 2 for n in range(10) if n % 3 == 0]
print(list)
>>> return [0, 9, 36, 81]
#요소 n을 제곱하며 범위는 10까지(range에대해서는 나중에 다루겠다)
#조건은 요소n의 나머지가 3으로 나눌시 0으로 떨어지는 요소만 저장
* 튜플 자료형
- 리스트와 비슷하지만 두 가지의 다른 점이 존재
- 리스트는 []로 감싸지만 튜플은 ()로 감싸 짐
- 리스트 안의 요소들은 생성, 삭제, 수정이 가능한 동적 배열이지만 튜플은 할 수 없는 정적 배열
1. 튜플의 생성
t = (1, 2, 3)
t2 = (1, 2, 3,('a', 'b', 'c'))
#리스트와 같은 튜플안의 튜플이 가능
2. 슬라이싱, 더하기, 곱하기
- 리스트만큼의 다양한 조작이 불가능하지만 인덱싱과 슬라이싱은 가능하다
t[:2]
>>> retrun (1, 2)
#리스트와 같은 방식
t+t2
>>> retrun (1, 2, 3, 1, 2, 3,('a', 'b', 'c'))
#튜플의 더하기
t*3
>>> return (1, 2, 3, 1, 2, 3, 1, 2, 3)
#튜플의 곱셈
* 딕셔너리 자료형
- 특징으로는 key와 value가 짝이 되어 하나의 요소를 구성하게 됨
- key를 불러오면 연결된 value를 불러올 수 있고 value를 하나의 요소나 리스트로 구성하게 되면 강력한 도구가 됨
- 주의 사항으로 key의 값은 딕셔너리 속의 고윳값이어야 하고 string이나 숫자형은 unhashable type 이어야 함
1. 생성법
- 다른 자료형과는 조금 다른 형태
dict = {'key1' : 'value', 'key2' : '123123', 'key3' : ['list', 'can', 'be', 'a', 'value']}
#key의 값은 'key1', 'key2', 'key3'이며 해당하는 value는 (:)뒤에 있는 항목
#딕셔너리 추가
dict['key4'] = ['here', 'is', 'another', 'value']
#딕셔너리 삭제
del dict['key1']
2. 사용법
- key를 이용해서 값을 불러오는 방식
dict['key2']
>>> retrun '123123'
#key값을 불러와서 사용
3. 관련 함수
dict.keys() #딕셔너리 키값을 받음
>>> return dict_keys(['key2', 'key3', 'key4'])
dict.items() #key와 value가 매치된 dict_item객체 생성
>>> retrun dict_items([('key2', '123123'), ('key3', ['list', 'can', 'be', 'a', 'value']),
('key4', ['here', 'is', 'another', 'value'])])
'key2' in dict
>>> retrun true
'key' in dict
>>> return false
#'key2', 'key'가 dict안에 있는지 여부 확인 있으면 true, 없으면 false 반환
* 집합(set) 자료형
1. 집합 생성 및 특징
s1 = set([1, 2, 2, 3, 3, 3, 4, 4, 4, 4])
s1
>>> return {1, 2, 3, 4}
s2 = set('hello123')
s2
>>> retrun {'1', '2', '3', 'e', 'h', 'l', 'o'}
#특징 요소들이 unique함(중복되지 않음)
#순서가 없음
#**이런 특징들을 이용해서 종종 list안에 중복을 제거하는 용도로 사용하기도 함
2. 관련 함수
s2.add(1)
s2
>>> retrun {'o', '3', '1', 'e', '2', 'l', 'h', '1'}
s2.update([2, 3, 4, 5])
s2
>>> retrun {'o', '3', '1', 'e', '2', 'l', 'h', '1', 2, 3, 4, 5}
s2.remove(3)
s2
>>> retrun {'o', '3', '1', 'e', '2', 'l', 'h', '1', 2, 4, 5}
#3이라는 요소 삭제
3. 활용법
s1 & s2 #s1 와 s2의 교집합
>>> retrun {1, 2, 4}
s1 | s2 #s1과 s2의 합집합
>>> return {'o', 1, ,2, 3, 4, '3', 'e', 5, '2', 'l', 'h', '1'}
s1 - s2 #s1과 s2의 차집합
>>> retrun {1, 2, 3, 4}
'파이썬' 카테고리의 다른 글
PYTHON 객체와 클래스 (0) | 2019.07.31 |
---|---|
CODE UP 1078 : 기초100제 짝수 합 구하기(PYTHON) (0) | 2019.07.23 |
PYTHON 함수를 알아보자 (0) | 2019.07.23 |
PYTHON의 제어문을 알아보자 part.2 (0) | 2019.07.22 |
PYTHON의 제어문을 알아보자 part.1 (0) | 2019.07.22 |