-
[python] 자료형과 관련함수 총 정리파이썬 2023. 8. 17. 21:44
주석
#한줄 주석 """ 여러 줄 주석 """
숫자형 자료형
a = 123 #정수형 a = 1.2 a = 4.24E10 a = 4.24e-10 # = 4.24*10^-10 실수형 a = 0o177 //8진수 a = 0x8ff //16진수
연산자
** : 제곱 연산자
a**b # a^b
% : 나머지 연산자
3 % 7 = 3 7 % 3 = 1
// : 몫 연산자 ( 몫만 나옴 )
/ 연산자를 사용하는 경우, 실수 발생함.
7 // 3 # 1 5 // 2 # 2.5
문자열 자료형
- "" : 대입하려는 문자열 안에 작은 따옴표가 포함되어 있는 경우 사용, 혹은 역슬래시를 표현하려는 따옴표 앞에 사용하면 출력가능
- '' : 대입하려는 문자열 안에 큰 따옴표가 포함되어 있는 경우 사용, 혹은 역슬래시를 표현하려는 따옴표 앞에 사용하면 출력가능
- """ """ : 여러 줄 문자열을 변수에 대입할때 사용
- ''' ''' : 여러 줄 문자열을 변수에 대입할때 사용
익스케이프 코드
- \n : 문자열 내 줄바꿈
- \t : 문자열 사이 탭
- \\ : \를 그대로 표현할때 사용
- \' : 작은 따옴표를 그대로 표현할때 사용
- \" : 큰 따옴표를 그래로 표현할때 사용
문자열 더하기, 문자열 곱하기
head ="Python" tail =" is fun" print(head + tail) #Python is fun print(head * 2) #PythonPython
문자열 길이 구하기 ,len()
a = "~ " len(a)
인덱싱 슬라이싱
- [시작_번호 : 끝_번호] : 시작~ 끝번호-1번째까지 추출한다. (슬라이싱)
- 슬라이싱을 이용하면 문자열을 여러 갈래로 나눌 수 있음
- 인덱싱이나 슬라이싱은 리스트, 튜플 처럼 순서가 있는 자료형에 사용할 수 있다. 딕셔너리나 집합과 같이 순서가 없는 경우 사용이 불가능하다.★
a ="Life is too short, You need Python" print(a[0]) # L print(a[-1]) # n print(a[0:4]) # Life print(a[19: ]) # 19번째부터 끝까지 출력 print(a[:17]) # 처음부터 16까지 출력 print(a[:]) # 다출력
문자열 포매팅
%s 는 문자열 아니더라도 , 어떤 형태의 값이든 변환해 넣을 수 있다.
"I eat %d apples." % 3 # I eat 3 apples. "I eat %s apples." % "five" # 문자열 넣을때 number = 3 "I eat %d apples." % number # 변수 넣을때 (정수 변수) day ="three" "I ate %d apples, so %s " % (number, day) #여러 개 넣을때
문자열 포맷 코드 포맷 코드와 숫자 함께 사용
"%10s" % "hi" # _______hi 총10칸 공백두고 왼쪽정렬 "%-10s" % 'hi' # hi_______ 총 10칸 공백두고 오른쪽 정렬 "%0.4f" % 3.42134235 # 3.4213 소숫점 뒤 4번째자리 까지만 나타냄 "%10.4f" % 3.42134235 # ____3.4213
format 함수를 사용한 포매팅
#인덱스 이용 "I eat {0} apples".format(3) "I eat {0} apples".format("five") "I eat {0} apples".format(number) "I eat {0} apples {1} ".format(number,day) "{0:<10}".format("hi") #왼쪽 정렬하고 문자열 자릿수 10개 맞춰서 "{0:>10}".format("hi") #오른쪽 정렬하고 ~ "{0:^10}".format("hi") #가운데 정렬하고 ~ "{0:=^10}".format("hi") #가운데 정렬하고 나머지 공백을 = 로 채운다. "{0:0.4f}".format(3.145678) # 소숫점 4번째까지 #이름으로 넣기 "I eat {number} apples".format(number=10)
f 문자열 포매팅
name ='홍길동' age = 30 f'나의 이름은 {name}입니다. 나이는 {age}입니다.'
f문자열 포매팅에서도, 중괄호 안의 변수를 계산식과 함께 사용하거나, 딕셔너리를 이용하거나, 정렬, 공백채우기, 소숫점 표현 등 을 할수 있다.
문자열 관련 함수
문자열은 자체 값을 변경할 수 없는 immutable 자료형이기 때문에, 아래 설명할 문자열 관련 함수는 본래 변수의 값 자체를 변경하는 것이 아니라 수정한 값을 리턴하는 함수이다. 본래 변수의 값을 변경하려면 대입문을 사용해서 바꿔야한다.
1. 문자 개수 세기 - count()
a ="hobby" a.count('b') : 해당 문자열 내에 'b'가 몇개인지 세어줌
2. 위치 알려주기 - find() , index()
a ="hobby" a.find('b') : 해당 문자열 내에 'b'가 처음으로 나온 위치를 반환해줌, 찾는 문자열이 없다면 -1을 반환함
3. 문자열 삽입 - join()
",".join('abcd') #a,b,c,d 문자열 각 문자 사이에 , 삽입
4. 대문자로 바꾸기 - upper()
5. 소문자로 바꾸기 - lower()
6. 문자열 바꾸기 - replace()
a = "Life is too short" a.replace("Life", "Your leg")
7. 문자열 나누기 - split()
a = "Life is too short" a.split() # ['Life','is','too','short'] # 괄호 안에 아무것도 넣지 않으면, 공백을 기준으로 문자열을 나누어 리스트에 하나씩 들어간다. # 괄호 안에 특정 값을 넣으면 특정값을 구분자로 문자열을 나누어 리스트에 하나씩 들어간다.
리스트 자료형
리스트명 = [요소1, 요소2, 요소3, ...]
- 리스트 안에는 어떤 자료형도 다 포함할 수 있음.
- 문자열처럼 인덱싱과 슬라이싱 가능함
- 문자열처럼 +, * 를 사용해 더하거나, 반복할 수 있다. 그러나 이때 정수와 문자열을 서로 더할수는 없다. 자료형이 동일해야함.
- 문자열 길이 구할 때 처럼 len()으로 길이를 구할 수 있다.
- 참고로 len()은 문자열,리스트,튜플,딕셔너리에서 길이를 구할때 동일하게 사용된다.
- del()함수로 리스트 요소를 삭제할 수 있다. ex) del a[1]
리스트 관련 함수
1. 리스트에 요소 추가 - append(x)
맨 마지막에 x를 추가한다, 어떤 자료형도 다 추가 가능
a = [1,2,3] a.append(4) # [1,2,3,4] a.append([1,2]) # [1,2,3,4,[1,2]]
2. 리스트 정렬 - sort()
오름차순, 알파벳 순서로 정렬함
a = [1,4,3,2] b = ['a','b','c'] a.sort() # [1,2,3,4] b.sort() # ['a','b','c']
3. 리스트를 역순으로 반전 - reverse()
a = [1,2,3] a.reverse() # [3,2,1]
4. 위치 인덱스 반환 - index(x)
x값이 있는 위치를 반환한다. 존재하지 않는경우 오류 발생
5. 리스트에 요소 삽입 - insert(a,b)
맨뒤에 삽입하는 append(x)와 다르게 원하는 a번째 위치에 b를 삽입한다.
6. 리스트 요소 제거 - remove(x)
첫번째로 나오는 x를 제거한다.
7. 리스트 맨 마지막 요소 리턴하고 삭제 - pop()
8. 리스트에 포함된 요소 x의 개수 세기 - count(x)
9. 리스트 확장 - extend
a += [4,5]라고 해도 extend 사용 효과와 동일함
a = [1,2,3] b = [4,5] a.extend([4,5]) # a= [1,2,3,4,5] a.extend(b)
튜플 자료형
- 리스트는 요솟값의 생성,삭제,수정이 가능하지만 튜플은 요솟값을 바꿀 수 없다.
- 튜플은 t = (1,) 처럼 1 개의 요소만을 가질때에도 쉼표를 반드시 붙여야한다.
- t = 1,2,3 처럼 소괄호를 생략해도 된다.
- 튜플과 리스트의 가장 큰 차이는, 튜플은 요솟값을 바꿀 수 없다는 것이다. 즉 요솟값을 고정적으로 두고 싶은 상황일때 튜플을 사용하면된다.
- 문자열, 리스트와 마찬가지로 인덱싱, 슬라이싱이 가능하다.
딕셔너리 자료형
{key1: value1, key2: value2, ...}
- Key와 Value를 한 쌍으로 가지는 자료형으로, 이름 = "홍길동" , 생일 ="몇월 며칠" 처럼 대응관계를 나타낼 때 사용한다.
- 리스트나 튜플처럼 순차적으로 해당 요솟값을 구하지 않고, key를 통해 value를 얻는다. 마치 사전같은..
- 딕셔너리는 인덱싱이나 슬라이싱으로 이해하면 안된다. grade['pay'] 처럼 "딕셔너리이름[키값]"을 이용해서 원하는 value를 얻을 수 있다.
- 딕셔너리 key는 중복으로 사용할 수 없다.
딕셔너리 추가하기 딕셔너리 이름[key값] = value값
a = {1: 'a'}라는 딕셔너리가 있을때
a[2] = 'b'를 하게되면, key가 2이고 value가 b인 딕셔너리 쌍이 추가된다. (인덱싱으로 이해하면 안됨, key값으로 이해)
딕셔너리의 키 값은 변하지않는 immutable한 성질을 가져야한다. ( 가능 : 문자열, 정수, 튜플 | 불가능: 리스트 )
딕셔너리의 value 값은 변하는 값이든 변하지 않는 값이든 상관없다.
딕셔너리 삭제하기 del 딕셔너리 이름[key값]
딕셔너리 관련 함수
1. key 값 모으기 - keys()
a = {'name':'pey', 'phone':'010-999-999','birth':'11-14'} a.keys() # dict_keys 객체 리턴
keys()는 딕셔너리 a의 Key값만 모아 dict_keys객체를 리턴하는 함수이다. 이때 dict_keys 객체는 리스트와 유사하지만 리스트는 아니다. ( 보통 반복문에 for k in a.keys(): 와 같이 사용된다. )
dict_keys객체를 리스트화 시키고 싶다면 list(a.keys())로 변환하면 된다.★ 파이썬에선 이처럼 list변환이 매우 쉬움
2. value 값 모으기 - values()
딕셔너리이름.values() 로 사용하며, value값만 갖고 있는 dict_values 객체를 얻을 수 있다.
3. key,value 쌍 얻기 - items()
딕셔너리 이름.items()로 사용하며, key 와 value 쌍을 튜플로 묶은 값을 갖고 있는 dict_items 객체를 얻을 수 있다.
dict_items = [('name','pey'), ('phone','010-999-999")]
4. 딕셔너리 내부 모든 요소 삭제 - clear()
5. key로 value 값 얻기 - get('key이름')
만약 원하는 키 값이 딕셔너리 내부에 없는 경우 get('key이름','defult 값') 으로 사용하여 미리 정해 둔 디폴트값을 대신 가져오게 할 수도 있음.
a = {'name':'pey', 'phone':'010-999-999','birth':'11-14'} a.get('name') #'pey' # a['name'] 과 동일한 결과를 리턴함
6. 해당 key가 딕셔너리 내부에 있는지 조사 - In
True, False를 리턴한다.
a = {'name':'pey', 'phone':'010-999-999','birth':'11-14'} 'name' in a # a내부에 name인 키가 있는지?
7. 리스트처럼 .pop을 사용할 수 있다.
맨마지막 요소를 꺼내고 삭제하는 리스트와 달리, 딕셔너리에서는 괄호안에 키값을 넣어 원하는 항목만 꺼내서 삭제할 수 있다.
집합 자료형
s1 = set([1,2,3]) s2 = set("Hello") s1 >> {1,2,3} s2 >> {'e','H','l','o'}
- set()키워드를 사용해 만들 수 있다.
- 집합 자료형은 중복을 허용하지 않는다.
- 순서가 없다. -> 순서가 없기때문에 딕셔너리 처럼 인덱싱이나 슬라이싱이 불가능하다.
- 인덱싱을 사용하려면 해당 집합을 list(s1) , tuple(s1)처럼 리스트나 튜플로 변환한 후에 사용해야 한다.
- 교집합, 차집합, 합집합을 구할 때 사용한다.
- 리스트내에 중복수를 없애고자할때 사용하며, 집합으로 변환한 후 다시 리스트로 변환하면 중복값 제거가 가능하다.
s1 $ s2 #교집합 s1 | s2 #합집합 s1 - s2 #차집합
집합 자료형 관련 함수
값 1개 추가 하기 - add(추가할 값)
s1 = set([1,2,3]) s1.add(4)
값 여러 개 추가하기 - update
s1 = set([1,2,3]) s1.update([4,5,6])
특정 값 제거하기 - remove(지울 값)
불 자료형
Ture, False을 나타내느 자료형이다. 첫문자를 항상 대문자로 작성한다.
a = True b = False
문자열,리스트,튜플,딕셔너리 등 값이 비어있으면 거짓이다. 비어있지 않으면 참이다.
a = [1,2,3,4] while a: # a리스트 내에 값이 없어질때까지 true이므로 지속 print(a.pop())
- 숫자가 0 이면 거짓이다.
- None은 거짓이다.
'파이썬' 카테고리의 다른 글
[python] 클래스 (0) 2023.08.26 [python] 입출력 (0) 2023.08.21 [python] 함수 (0) 2023.08.21 [python] 제어문 (0) 2023.08.20 [python] 변수 (0) 2023.08.17