02장 파이썬 프로그래밍의 기초, 자료형
어떤 프로그래밍 언어든 그 언어의 자료형을 알고 이해할 수 있다면 이미 그 언어의 절반을 터득한 것이나 다름없다는 말이 있다. 자료형이란 프로그래밍을 할 때 쓰이는 ...
wikidocs.net
2장. 파이썬 프로그래밍의 기초, 자료형
02-1 숫자형
- 정수형(Integer), 실수형(Floating-point), 8진수(Octal) 0o숫자, 16진수(Hexadecimal) 0x숫자
- 사칙연산 : : +, -, *, /,**(제곱), %(나머지), //(몫)
02-2 문자열 자료형
- 문자열으로 사용하는 방법 : ‘text’, “text“, ‘’’text’’’, “””text”””
- 문자열 안에 따옴표를 포함시키고 싶을 때 : 1) 서로 반대되는 따옴표를 사용. 2) 백스래시(\)사용
- 여러 줄을 대입하고 싶을 때 : 1) 이스케이프 코드 ‘\n’ 사용. 2) 연속된 3개 따옴표 사용 → 보기에 더 편함
- 이스케이프 코드 : 미리 정의해 둔 ‘문자 조합’. 주로 출력물을 보기 좋게 정렬하는 용도
- 문자열 연산하기 : 더하기 (+) : concatenation, 곱하기( * ) :숫자만큼 문자열 반복됨
- 문자열 길이 : len(’문자열')
- 문자열 인덱싱/슬라이싱 : a[0:3] : 0 <= a < 3
** 문자열의 요소값은 바꿀 수 없음(immutable한 자료형)
- 문자열 포매팅
1. 문자열 포맷 코드 : "I ate %d apples. %s days." % (number, day)
- %s : 문자열, %c : 문자열 1개, %d : 정수, %f : 부동소수, %o : 8진수, %x : 16진수, %% : Literal %
2. format함수 사용 : "I ate {number} apples. {day} days.".format(number=10, day=3)
3. f 문자열 포매팅 (파이썬 3.6 이후) : 문자열 앞에 f 접두사
ex) f'나는 내년이면 {age+1}살이 된다.’ f'나의 이름은 {d["name"]}입니다. 나이는 {d["age"]}입니다.’ #딕셔너리 key-value 값 사용, d = {'name':'홍길동', 'age':30}
- 왼쪽 정렬 : f'{"hi":<10}’, 가운데정렬(^)
- 공백채우기 : f'{"hi":!<10}' # 왼쪽 정렬하고 '!' 문자로 공백 채우기
- 소수점 : f'{y:10.4f}' # 소수점 4자리까지 표현하고 총 자리수를 10으로 맞춤
- {} 표현 : f'{{ and }}’
- 문자열 관련 함수(문자열 내장 함수)
- 문자 수 세기 : 문자열.count(’대상문자')
- 위치 : 문자열.find(’대상문자’) #처음으로 나온위치 반환, 0부터, 존재하지 않으면 -1
- 위치2 : 문자열.index(’대상문자') 맨 처음으로 나온 위치 반환, 미존재 시 오류발생
- 삽입 : “구분자”.join(’문자열') : 문자열 사이에 “구분자” 값 삽입
- 소→대문자 : 문자열.upper(), 대→소문자 : 문자열.lower()
- 왼/오/양쪽 공백지우기 : 문자열.lstrip(), 문자열.rstrip(), 문자열.strip()
- 바꾸기 : 문자열.replace(바뀌게 될 문자열, 바꿀 문자열)
- 나누기 : 문자열.split()
02-3 리스트 자료형
- 리스트 생성
a = list()
a = []
a = [1,2,['Life']]
- 리스트 인덱싱/슬라이싱 : 문자열과 동일
- 중첩된 리스트에서 슬라이싱
a = [1, 2, 3, ['a', 'b', 'c'], 4, 5] a[3][:2] ['a', 'b']
- 리스트 연산 : 더하기 : +, 반복 : *, 길이 : len(a)
- 리스트 수정과 삭제: del 객체(파이썬이 자체적으로 가지고 있는 삭제 함수)
- 리스트 관련 함수
- 추가 : 리스트.append(내용)
- 확장 : 리스트.expend(추가할 리스트) #a.extend([4, 5])는 a += [4, 5]와 동일
- 삽입 : 리스트.insert(위치, 내용)
- 제거 : 리스트.remove(x) : 첫번쨰로 나오는 x 삭제
- 꺼내기 : 리스트.pop(index) : default 맨 마지막 요소를 꺼내고 삭제, index 요소를 돌려주고 삭제
- 정렬/역순정렬 : 리스트.sort(), 리스트.reverse()
- 위치반환 : 리스트.index(내용) : 위치값 리턴, 없으면 valueError개수 : 리스트.count(x) : x가 몇 개 있는지
02-4 튜플 자료형
튜플은 값을 바꿀 수 없음(값의 삭제, 수정 불가)
인덱싱, 슬라이싱, 더하기, 곱하기, 길이구하기 가능
t1 = ()
t2 = (1,) #1개의 요소만 가질 떄 , 필수
t3 = (1, 2, 3)
t4 = 1, 2, 3 #괄호 생랼 가능
t5 = ('a', 'b', ('ab', 'cd'))
02-5 딕셔너리 자료형
Key와 Value를 한 쌍으로 갖는 자료형, {Key1:Value1, Key2:Value2, Key3:Value3, ...}
- Key는 고유한 값이므로 중복되는 Key 값을 설정해 놓으면 하나를 제외한 나머지 것들이 모두 무시
- Key에 리스트는 쓸 수 없다. (리스트 : Key가 변하는(mutable) 값)
- 튜플은 Key로 쓸 수 있다. (튜플 : 변하지 않는(immutable) 값)
- 관련 함수
- Key리스트 만들기 : a.keys()
- Value 리스트 만들기 : a.values()
- Key, Value 쌍 얻기 : a.items() → dict형태이므로 list로 변환 필요함
- Key: Value 쌍 모두 지우기 : a.clear()
- Key로 Value얻기 :
1) a.get('name') : key 없으면 None, Key 값이 없을 경우 미리 정해 둔 디폴트 값을 대신 가져오게 하고 싶을 때에는 get(x, '디폴트 값')
2) a['nokey'] : key없으면 KeyError
- Key가 딕셔너리 안에 있는지 조사하기 : 'name' in a # True or False
02-6 집합 자료형
중복을 허용하지 않으며, 순서가 없는 자료형 set()
- 교집합 : s1 & s2, s1.intersection(s2), set.intersection(s1, s2)
- 합집합 : s1 | s2, s1.union(s2), set.union(s1, s2)
- 차집합 : s1 - s2, s1.difference(s2), set.difference(s1, s2)
- 대칭차집합(XOR) : s1^s2, s1.a.symmetric_difference(s2), set.symmetric_difference(s1, s2)
- 집합연산 후 할당 연산자 사용하기
- 세트1 |= 세트2, 세트1.update(세트2)
- 세트1 &= 세트2, 세트1.intersection_update(세트2)
- 세트1 -= 세트2, 세트1.difference_update(세트2)
- 세트1 ^= 세트2, 세트1.symmetric_difference_update(세트2) - 부분집합 확인: 현재세트 <= 다른세트, 현재세트.issubset(다른세트)
- 진부분집합확인(부분집합이지만 같지는 않을 때) : 현재세트 < 다른세트
- 상위집합 확인 : 현재세트 >= 다른세트, 현재세트.issuperset(다른세트)
- 진상위집합 확인 : 현재세트 > 다른세트
- 겹치는 값이 있는지 확인 : 현재세트.isdisjoint(다른세트)
- 집합관련 함수
- 추가 : s1.add(4)
- 값 여러개 추가 : s1.update([4, 5, 6])
- 특정 값 제거 : s1.remove(2)
02-7 불 자료형
True(참)/False(거짓)만 가지는 자료형
참 : 값이 있을때, 1
거짓 : 문자열, 리스트, 튜플, 딕셔너리 등의 값이 비어있으면, 0, None
- 불 연산으로 자료형의 참과 거짓을 식별가능
bool([1,2,3]) #True
bool([]) #False
bool(0) #False
bool(3) #True
02-8 변수
객체를 가리키는 것, 객체가 메모리에 생성되고 변수는 메모리의 주소를 가리키게 됨(id()로 객체 주소 확인 가능)
- 변수 생성
a, b = ('python', 'life') # type(a) : str
(a, b) = 'python', 'life' # type(a) : str, type((a,b)) : tuple
[a,b] = ['python', 'life'] # type(a) : str
a = b = 'python'
a, b = b, a #변수 바꾸기
- 리스트 복사
a = [1, 2, 3]
b = a #주소 값이 동일함(변수명만 2개가 된 것이고 동일한 리스트임)
b = a[:]
b = copy(a) #from copy import copy, copy 모듈 사용
b = a.copy() #리스트 자료형 자체 함수
'Coding > 언어-Python' 카테고리의 다른 글
[점프투] #4. 5장 클래스와 객체 (0) | 2022.08.31 |
---|---|
[점프투] #3. 4장 함수 (0) | 2022.08.31 |
[점프투] #2. 3장 제어문 (0) | 2022.08.31 |
[점프투] 점프투파이썬 intro (0) | 2022.08.31 |