본문 바로가기

Language/Python

[Python] 파이썬 자료형 : 숫자형, 문자열 자료형, 리스트 자료형

 

 

 

 

 

숫자형

📌 숫자형

 

 

 

문자열

📌 문자열 자료형

[ 문자열 만들기 ]
"Hello World"
'Hello World'
"""Hello World"""
'''Hello World'''

📌 이스케이프 코드 : 프로그래밍 시 사용할 수 있도록 미리 정의해 둔 '문자 조합' 

📌 문자열 연산 : 문자열 + 문자열 또는 문자열 * 숫자 

 

📌 문자열 길이 : len() 함수 사용

📌 문자열 인덱싱

 

📌 문자열 슬라이싱

📌 문자열 포매팅

# 숫자 입력 %d : decimal
a = "a : 문자열 %d 포매팅" % 10
print(a)   

# 문자 입력 %s : string
b = "b : 문자열 %s 포매팅" % "test"
print(b)   

# 변수 입력 : 자료형 맞춰서
text = "good"
c = "c : 문자열 %s 포매팅" % text
print(c)

# 여러 개 입력
one = "first"
two = "second"
d = "d : 문자열 %s 포매팅 %s" % (one, two)
print(d)

📌 포맷 코드와 숫자 함께 사용해보기

# %10s : 전체 길이가 10인 문자열 공간에서 값을 오른쪽으로 정렬하고 나머지는 공백으로 채운다.
a = "%10s" % "py"
print(a)

# %-10s : 전체 길이가 10인 문자열 공간에서 값을 왼쪽으로 정렬하고 나머지는 공백으로 채운다.
b = "%-10sthon" % "py" # py + 공백*8 + thon
print(b)

# 소수점 두 자리 까지만 나타내기
c = "%0.2f" % 1.23456789 # %.2f 도 동일
print(c)

# 소수점 두 자리 까지만 표시하고 전체 길이가 10개인 문자열 공간에서 우측 정렬
d = "%10.2f" % 1.23456789
print(d)

📌 format 함수

# .format 함수 내 값을 index로 바인딩
a = "파이썬 {0} 공부중 {1} 다한다.".format("열심히", "최선을")
print(a)

# 순서 변경 가능
b = "파이썬 {1} 공부중 {0} 다한다.".format("열심히", "최선을")
print(b)

# 변수 대입 가능
number = 5
text = "파이썬"
c = "나는 지금 {0}개월 간 {1} 공부를 하고 있다.".format(number, text)
print(c)

# 변수명 직접 대입 가능
d = "나는 지금 {number}개월 간 {text} 공부를 하고 있다.".format(number = 1, text = "열심히")
print(d)

# 혼용 가능
e = "나는 지금 {0}개월 간 {text} 공부를 하고 있다.".format(2, text = "아무도 모르게")
print(e)

# 왼쪽 정렬
f = "{0:<10}".format("code")
print(f)

# 오른쪽 정렬
g = "{0:>10}".format("code")
print(g)

# 가운데 정렬
h = "{0:^10}".format("code")
print(h)

# 정렬 후 공백 란에 문자 채우기
i = "{0:$^10}".format("code")
print(i)

# 소수점 5자리까지만 표현하기
floatNum = 1.23456789
j = "{0:.5f}".format(floatNum)
print(j)

k = "{0:10.5f}".format(floatNum)
print(k)

# {}를 특수 기호로 쓸 때는 두 개씩 입력한다.
l = "{{ and }}".format()
print(l)

 

📌 f 문자열 포매팅 : 문자열 앞에 f 접두사를 붙임. 파이썬 3.6 버전 부터 사용 가능

# f 접두사로 변수 바인딩
name = '멋쟁이'
age = 30
a = f'내 이름은 {name}이고 나이는 {age}살 입니다.'
print(a)

# 중괄호 안에서는 연산이 가능
b = f'내 이름은 {name}이고 나이는 {age + 1}살 입니다.'
print(b)
c = f'내 이름은 {name}이고 나이는 {age * 2}살 입니다.'
print(c)

# 정렬도 가능
d = f'{"code":<10}'
print(d)
e = f'{"code":>10}'
print(e)
f = f'{"code":^10}'
print(f)

# 공백 채우기
g = f'{"code":&<10}'
print(g)

# 소수점 표현 & 총 자리 수 맞추기
number = 1.23456789
h = f'{number:10.3f}'
print(h)

# {} 문자 그대로 표시하기
i = f'{{ okay }}'
print(i)

# f 문자열을 사용하여 금액에 콤마(,) 삽입하기
j = f"이 물건의 가격은 {150000:,}원 입니다"
print(j)

📌 문자열 관련 함수

# 문자 개수 세기 count
str = "welcome"
a = str.count('e')
print(a)    # 2

# 문자열 위치 find : index 찾아줌, 없으면 -1
text = "Python Study Group"
b = text.find('u')
print(b)    # 9

# 문자열 위치 index : index 찾아줌, 없으면 오류 발생
c = text.index('u')
print(c)    # 9

# 문자열 삽입 join : 각 문자 사이에 문자열 삽입
d = ",".join('hello')
print(d)    # h,e,l,l,o
e = ", ".join('hello')
print(e)    # h, e, l, l, o

# join 함수는 리스트나 튜플도 사용할 수 있다. 
f = ",".join(['AB', 'CD', 'EF', 'GH'])
print(f)    # AB,CD,EF,GH

# 소문자 -> 대문자 upper
language = "korean"
g = language.upper()
print(g)    # KOREAN

# 대문자 -> 소문자 lower
lang = "koREan"
h = lang.lower()
print(h)    # korean

# 왼쪽 공백 지우기 lstrip
stripText = "    okay    "
i = stripText.lstrip()
print(i)    # okay

# 오른쪽 공백 지우기 rstrip
j = stripText.rstrip()
print(j)    #     okay

# 양쪽 공백 지우기 strip
k = stripText.strip()
print(k)    # okay

# 문자열 바꾸기 replace
changeText = "어느날 갑자기 시작하게 됐습니다."
l = changeText.replace("시작", "종료")
print(l)    # 어느날 갑자기 종료하게 됐습니다.

# 문자열 나누기 split
m = changeText.split()
print(m)    # ['어느날', '갑자기', '시작하게', '됐습니다.']

n = "a$b$c$d"
print(n.split('$')) # ['a', 'b', 'c', 'd']

# 문자열이 알파벳으로만 구성되어 있는지 확인 isalpha : 공백도 false
# 문자열이 숫자로만 구성되어 있는 지 확인 isdigit : 공백도 false
# 문자열이 특정 문자열로 시작/종료 하는 지 확인 startswith/endswith

 

 

 

리스트

📌 리스트

# 리스트 : 대괄호 안에 각 요소들을 넣고 콤마로 구분
list = [1, 2, 3, 4, 5]

# 비어있는 리스트는 list() 또는 [] 로 생성 가능
empty = list()
print(empty)    # []
empty1 = []
print(empty1)   # []

# 파이썬의 리스트는 자료형 구분 없이 다 담을 수 있다.
list1 = [1, 2, 'a', 'b']
list2 = [1, 2, 3, ['a', 'b', 'c']]
print(list2[-1][1])  # b

list3 = [1, "code", 3, ['a', 'b', 'c']]
print(list3[1][2])  # d (문자열은 인덱싱이 되니까)

 

📌 리스트 슬라이싱, 연산, 길이

# 리스트 슬라이싱
a = [1, 2, 3, 4, 5]
print(a[0::2])  # [1, 3, 5]

# 리스트 연산
calc1 = [1, 2, 3]
calc2 = [4, 5, 6]
print(calc1 + calc2)    # [1, 2, 3, 4, 5, 6]
print(calc1 * 3)    # [1, 2, 3, 1, 2, 3, 1, 2, 3]

# 리스트 길이 len()
lenlist = [1,2,3,4,5]
print(len(lenlist))     # 5

 

📌 리스트 요소 수정, 삭제

# 리스트 수정
a = [1, 2, 3, 4, 5, 6, 7, 8]
a[2] = 9
print(a)  # [1, 2, 9, 4, 5, 6, 7, 8]

# 리스트 요소 삭제 : del 함수
del a[1]
print(a)    # [1, 9, 4, 5, 6, 7, 8] 

del a[2:]
print(a)    # [1, 9]

📌 리스트 관련 함수

# 리스트에 요소 추가 append : 어떤 자료형이든 추가 가능
a = [1, 2, 3, 4, 5, 6, 7, 8]
a.append([9, 10])
print(a)  # [1, 2, 3, 4, 5, 6, 7, 8, [9, 10]]

# 리스트 정렬 sort : 순서대로 정렬
b = [1, 3, 5, 4, 2, 6, 7, 8]
b.sort()
print(b)    # [1, 2, 3, 4, 5, 6, 7, 8]

c = ['a', 'c', 'b']
c.sort()
print(c)    # ['a', 'b', 'c']

# 리스트 뒤집기 reverse : 현재 리스트 상태에서 거꾸로 뒤집어 줌
d = ['a', 'c', 'b']
d.reverse()
print(d)    # ['b', 'c', 'a']

# 리스트 순서대로 뒤집기 : sort 후 reverse 하면 되겠다 !

# 위치 찾기 index : 없으면 오류 발생
e = [1, 2, 3, 4, 5, 6, 7, 8]
print(e.index(4))   # 3

# 리스트 원하는 위치에 요소 삽입 insert
f = [1, 2, 3, 4]
f.insert(1, 5)
print(f)    # [1, 5, 2, 3, 4]

# 리스트에서 첫 번째로 일치하는 요소만 삭제 remove
g = [1, 2, 3, 4, 3, 3]
g.remove(3)
print(g)    # [1, 2, 4, 3, 3]

# 리스트 요소 끄집어 내기 pop : 끄집어 낸 요소 확인 가능
h = [1, 2, 3, 4]
print(h.pop())  # 4 (지정하지 않으면 맨 마지막 요소)
print(h)    # [1, 2, 3]

i = [1, 2, 3, 4]
print(i.pop(2)) # 3 (인덱스 지정해서 해당 위치 요소 끄집어 낼 수 있음)
print(i)       # [1, 2, 4]

# 리스트 요소 개수 세기 count
j = [1, 2, 3, 4, 3, 2, 3, 3]
print(j.count(3))   # 4

# 리스트 확장 extend : list += [4, 5]와 동일
k = [1, 2]
k.extend([3, 4])
print(k)    # [1, 2, 3, 4]