본문 바로가기
개발언어/Python

Python 문법 간단 정리 : 자료형

by Ligion 2022. 11. 14.

 

숫자형

3 ** 4 # 곱연산 : 3의 4제곱 = 81
7 // 4 # 몫연산 : 1 (나머지연산 7 % 4 == 1)

문자열

a = 'abc'
b = 'hobby'

# 멀티라인
multiLine1 = "adc\ndef" # or 'adc\ndef'
multiLine2 = """
	abc
	def
""" # ''' ... '''도 마찬가지 일반 문자열에 자유롭게 엔터사용

# 문자열 곱연산
a * 2 # 'abcabc'
print("=" * 50) # ==================================================

# 문자열 길이
len(a) # 3

# 문자열 슬라이싱
a[1] # b, 파이썬은 문자열의 인덱싱을 자동으로 잡는다
a[-1] # c, -1은 맨뒤를 뜻함, a[-2] == b
a[0:2] # ab, a[인덱스:인덱스부터 몇개까지]
a[1:] # bc, 뒤 인수가 없으면 끝까지
a[:1] # ab, 앞 인수가 없으면 0으로 인식
a == a[:]
a[1] = 'a' # aac, 배열처럼 수정가능

# 문자열 포매팅
'a %s c' % 'b' # a b c, 뒤에 데이터타입은 신경안쓰고 그냥 %s쓰면 됨
'a {0} c'.format('b') # a b c
'a %s c %s' % ('b', 'd') == 'a {0} c {1}'.format('b', 'd')
'My name is {name}.'.format(name='jack') # My name is jack

'%10s' % 'hi' # '        hi', 앞에 공백 10개와 함께 삽입
'%10s' % 'hi' == '{0:<10}'.format('hi')
'%-10s' % 'hi' # 'hi        ', -는 뒤에, %와 s사이에 int는 공백 수
'%-10s' % 'hi' == '{0:>10}'.format('hi')

'%0.2f' % 3.141592 # 3.14, 소수자르기, %0.필요한자리f
'%0.2f' % 3.141592 
		== '{0:0.2f}'.format('3.141592')
		== f'{3.141592:0.2f}'
'%2.2f' % 3.141592 # '  3.14'
'%2.2f' % 3.141592 
		== '{0:2.2f}'.format('3.141592')
		== f'{3.141592:2.2f}'

'{0:^10}'.format('hi') # '    hi    ', ^는 양쪽으로
'{0:^10}'.format('hi') == f'{"hi":^10}'
'{0:=^10}'.format('hi') # '====hi====', :과 ^사이에 문자를 넣으면
'{0:=^10}'.format('hi') == f'{"hi":=^10}'

# 중복 문자 개수 세기
b.count('b') # 2

# index 확인
b.find('o') # 1
b.find('b') # 2, 처음 찾은 인덱스만 반환
b.find('e') # -1, 없으면 -1

b.index('o') # 1, find와 동일
b.index('b') # 2, find와 동일
b.index('e') # error, find와의 차이점

# 문자열 삽입
','.join(a) # a,b,c
','.join(a) == ','.join(['a','b','c'])

# 대소문자 변경
a.upper() # ABC
a.lower() # abc

# 공백지우기
a.lstrip() # 왼쪽 공백 삭제
a.rstrip() # 오른쪽 공백 삭제
a.strip() # 양쪽 공백 삭제

List

# 슬라이싱
a = [1, 2, 3, 4, 5]
a[:2] # [1, 2]
a[2:] # [3, 4, 5]

a = [1, [2, 3, 4], 5]
a[1][:1] # [2]

# 연산
a = [1, 2, 3]
b = [4, 5, 6]
a + b # [1, 2, 3, 4, 5, 6]
a * 2 # [1, 2, 3, 1, 2, 3]
len(a) # 3

# 수정, 삭제
a = [1, 2, 3]
a[1] = 4 # a == [1, 4, 3]
del a[1] # a == [1, 3]
del a[1:] # a == [1], 슬라이스와 같이 사용가능
a.remove(2) # a == [1, 3], List.remove(value)
a.pop(1) # 2, a == [1, 3], List.pop([index]) > 값반환후 삭제, index없으면 마지막 요소

# 추가
a = [1, 2, 3]
a.append(4) # a == [1, 2, 3, 4]
a.append([4,5]) # a == [1, 2, 3,[4, 5]], 리스트 그대로 삽입됨
a.extend([4,5]) # a == [1, 2, 3, 4, 5], 리스트의 각 요소 분해되 추가됨
a.insert(0,4) # a == [4, 1, 2, 3], List.insert(index, value)

# 기타 함수
a = [1, 3, 2, 1]
a.sort() # a == [1, 1, 2, 3]
a.reverse() # a == [3, 2, 1, 1]
a.count(1) # 2, List.count(value)

Tuple

## 리스트형과 거의 비슷함

# 초기화
t1 = ()
t2 = (1, 2, 3)
t3 = 1, 2, 3
t4 = ('a', 'b', ('ab', 'cd'))

Dictionary

# 초기화
# valName = {Key1:Value1, Key2:Value2, Key3:Value3, ...}
# key는 unique해야함, unique하지않으면 앞에 값이 삭제됨

# 값사용
a = {'a' : 1}
a['a'] # 1, a[key] > value
a['a'] == a.get('a')
a['b'] # error, 없는 키를 호출 시 에러
a.get('b') # None, a['b']와 차이로 에러가 아니라 None값 리턴

# 추가
a = {1: 'a'}
a[2] = 'b' # a == {1: 'a', 2: 'b'}
a['c'] = 3 # a == {1: 'a', 'c': 3}
a[2] = ['b', 'c'] # a == {1: 'a', 2: ['b', 'c']}

# 삭제
a = {1: 'a', 2: 'b'}
del a[1] # a == {1: 'a'}

# 기타 함수
a = {1: 'a', 2: 'b'}
a.keys()
	# dict_keys([1, 2]), 키값 리스트를 리턴하지만 일반 리스트처럼 사용X
	# for k in a.keys():, but for문에서는 바로 사용할 수 있음
	# 바로 리스트로 사용하려면 list(a.keys())
a.values() # dict_values(['a', 'b']), keys()와 동일한 속성 가짐
a.clear() # a == {}, 초기화
1 in a # True, key가 dictionary에 있는지 확인, key in dictionary

Set

# 초기화
s1 = set([1,2,3]) # {1, 2, 3}
s2 = set("Hello") # {'e', 'H', 'l', 'o'}
# 값 중복 혀용 X
# 순서 보장 X

s1 = set([1, 2, 3, 4, 5, 6])
s2 = set([4, 5, 6, 7, 8, 9])

# 교집합
s1 & s2 # {4, 5, 6}
s1 & s2 == s1.intersection(s2)

# 합집합
s1 | s2 # {1, 2, 3, 4, 5, 6, 7, 8, 9}
s1 | s2 == s1.union(s2)

# 차집합 (앞이 기준)
s1 - s2 # {1, 2, 3}
s1 - s2 == s1.difference(s2)
s2 - s1 # {7, 8, 9}
s2 - s1 == s2.difference(s1)

# 추가
s1.add(7) # {1, 2, 3, 4, 5, 6, 7}, 1개 추가, Set.add(value)
s1.update([7, 8]) # {1, 2, 3, 4, 5, 6, 7, 8}, 여러개 추가

# 제거
s1.remove(2) # {1, 3, 4, 5, 6}, 특정값 제거, Set.remove(value)

변수

a = [1, 2, 3]
id(a) # 4303029896 <- 메모리 주소값

# 리스트 복사
b = a
a is b # True
id(a) == id(b) # True

# 의도한 복사를 위한 방법
b = a[:]
a is b # False
id(a) == id(b) # False

b = copy(a)
a is b # False
id(a) == id(b) # False

# 변수 교환
a = 1
b = 2
a, b = b, a # a = 2, b = 1

# 여러가지 선언법
a, b = (1, 2)
a, b = 1, 2
[a, b] = [1, 2]
a = b = 1

 

댓글