9 분 소요

자료형

  • 데이터를 표현하는 형태.
  • 파이썬은 변수에 어떤 값을 넣느냐에 따라 자료형이 자동으로 정해진다.
  • 파이썬은 자료형 자체가 구분되어 있지 않고 모든 데이터를 객체로 만들어 관리한다.

id

  • 저장된 메모리 주소(고유한 ID값)를 반환해 준다.
# id
# 생성 된 객체를 구분하기 위한 일련번호를 확인할 수 있다.
print(id(100))
print(id(200))
print(id(100))
140710623856152
140710623859352
140710623856152

숫자형 (Number)

  • 수학적인 계산이나 숫자 데이터를 다룰 때 사용하는 자료형이다.
  • 정수(int), 실수(float), 복소수(complex) 값을 관리하는 객체
# 다른 형태의 값으로 생성할 수 있다.
# int() : 다른 숫자형을 가지는 값을 정수 타입으로 변환시켜 준다.
a1 = int(11.11) # 실수 타입은 반올림해준다.
a2 = int(True) # bool 타입의 True는 1, False는 원래 0 이다.
a3 = int('100') # 문자열로 된 숫자도 정수 타입으로 변환시킬 수 있다.
print(a1, a2, a3)

a1 = float(11) # 정수 타입은 뒤에 .0을 붙혀서 실수형으로 변환시켜 준다.
a2 = float(True) # True는 원래 1이기 때문에 1.0으로 변환시킨다.
a3 = float('11.11')
print(a1, a2, a3)

# bool 타입은 값을 가지기만 하면 모두 True로 가진다. (0이나 "", None 등만 아니라면)
a1 = bool(11)
a2 = bool(11.11)
a3 = bool('100')
a4 = bool(0)
a5 = bool(" ") # 문자열 안에 공백도 값에 해당한다.
print(a1, a2, a3, a4, a5)
11 1 100
11.0 1.0 11.11
True True True False True

숫자형에서 사용하는 함수

abs

  • 절대값을 구해준다.
# abs
# ()안에 넣어준 값의 절대값을 구해준다
a1 = abs(30)
a2 = abs(-30)
print(a1)
print(a2)
30
30

ceil

  • 소수점 이하를 올림여여 정수로 만들어 준다.
# ceil

import math # ceil이나 floor는 math모듈 안에 있기 때문에 import math를 먼저 해줘야 한다.

# ()안에 넣어준 값을 올림한다.
a1 = math.ceil(100)
a2 = math.ceil(55.55)
a3 = math.ceil(-55.55)
print(a1, a2, a3)
100 56 -55

floor

  • 소수점 이하를 버리고 가장 가까운 정수 중 작은 수로 내림한다.
# 소수점 이하 내림

import math

# ()안에 넣어준 값을 내림한다.
a1 = math.floor(100)
a2 = math.floor(55.55)
a3 = math.floor(-55.55)
print(a1, a2, a3)
100 55 -56

min, max

  • 주어진 값에서 최소값 또는 최대값을 가져온다.
  • min : 최소값, max : 최대값
# min, nax

a1 = min(30, -10, -20, 40)
a2 = max(30, -10, -20, 40)
print(a1, a2)
-20 40

round

  • 소수점 이하를 반올림한다.
  • round(값, 자릿수)
# 소수점 이하 반올림
a1 = round(22.22)
a2 = round(55.55)

# 소수점 이하 두 번째 자리를 기준으로 반올림
a3 = round(22.22, 1)
# 1의 자리를 기준으로 반올림
a4 = round(22.22, -1)
print(a1, a2, a3, a4)
22 56 22.2 20.0

문자열(String)

  • 글자들의 모음.
  • 파이썬은 작은 따옴표(‘) 또는 큰 따옴표(“)로 묶은 모든 것들이 모두 문자열이다.
# 문자열 생성
# 큰 따옴표나 작은 따옴표로 작성하는 것 자체가 문자열 객체를 생성하는 것이다.
str1 = '안녕하세요'
str2 = "안녕하세요"

print('str1 :', str1)
print('str2 :', str2)

print(type(str1))
print(type(str2))
str1 : 안녕하세요
str2 : 안녕하세요
<class 'str'>
<class 'str'>
  • 문자열 안에 따옴표를 사용할 때는 문자열이 큰 따옴표로 이루어져있다면 작은 따옴표를 작은 따옴표로 이루어져있다면 큰 따옴표를 사용해서 나타낸다.
# 큰 따옴표를 포함하는 문자열을 사용하고자 한다면..
str1 = '이름은 "홍길동" 입니다'
# 작은 따옴표를 포함하는 문자열을 사용하고자 한다면..
str2 = "이름은 '홍길동' 입니다"

print(str1)
print(str2)
이름은 "홍길동" 입니다
이름은 '홍길동' 입니다
  • 만약 문자열 안에 작은 따옴표와 큰 따옴표를 모두 포함하는 경우엔 문장을 (\ ‘ \ ‘) 또는 (\ “ \ “)로 감싸준다.
# 만약 문자열 안에 작은 따옴표, 큰 따옴표를 모두 포함하는 경우
str1 = '이름은 \'홍길동\' 이고 나이는 "20살" 입니다'
str2 = "이름은 '홍길동'이고 나이는 \"20살\" 입니다"

print(str1)
print(str2)
이름은 '홍길동' 이고 나이는 "20살" 입니다
이름은 '홍길동'이고 나이는 "20살" 입니다

여러줄 문자열

  • 작은 따옴표 세 개 (‘’‘)나 큰 따옴표 세 개 (“”“)로 묶어서 나타낸다.
# 여러줄 문자열
str1 = '''
동해물과 백두산이
마르고 닳도록
하느님이 보우하사
우리나라 만세
'''

str2 = """
동해물과 백두산이
마르고 닳도록
하느님이 보우하사
우리나라 만세
"""

print(str1)
print(str2)
동해물과 백두산이
마르고 닳도록
하느님이 보우하사
우리나라 만세


동해물과 백두산이 마르고 닳도록 하느님이 보우하사 우리나라 만세

에스케이프 문자

  • \와 같이 작성하는 특별한 의미를 가진 문자
# 에스케이프 문자
# \ 와 같이 작성하는 특별한 의미를 가진 문자
# \n : 줄바꿈
# \t : tab
# \' : 작은 따옴표
# \\ : \

str1 = "동해물과\n백두산이"
print(str1)

str2 = "동해물과\t\t백두산이"
print(str2)

str3 = "동해물과\\백두산이"
print(str3)
동해물과
백두산이
동해물과		백두산이
동해물과\백두산이
  • row string을 사용하면 에스케이프 문을 무시할 수 있다.
# row string 
# 에스케이프 문자를 무시한다.
str1 = '동해물과\n백두산이\t마르고\\닳도록'
print(str1)

str2 = r'동해물과\n백두산이\t마르고\\닳도록'
print(str2)
동해물과
백두산이	마르고\닳도록
동해물과\n백두산이\t마르고\\닳도록
  • ’’’ ‘'’나 “”” “"”을 사용한다면 에스케이프 문을 사용하지 않아도 된다.
str1 = '''이름은 '홍길동'이고 나이는 "20살" 입니다'''
str2 = """이름은 '홍길동'이고 나이는 "20살" 입니다"""
print(str1)
print(str2)
이름은 '홍길동'이고 나이는 "20살" 입니다
이름은 '홍길동'이고 나이는 "20살" 입니다

문자열 합치기

  • 문자열을 더하기 연산자로 연산하면 하나의 문자열로 만들어 준다.
# 문자열 합치기

a1 = '문자열1' + '문자열2'
print(a1)
문자열1문자열2
  • 문자열에 숫자를 곱해주면 해당 숫자만큼 문자열을 반복한다.
# 문자열 * 숫자 : 숫자만큼 문자열을 반복한 문자열이 생성된다.
str1 = '문자열1' * 3
print(str1)
문자열1문자열1문자열1
  • 문자열과 다른 타입의 값을 +연산자로 합치는 것은 불가능하다.
  • 만약 합치고자 한다면 다른 타입의 값을 문자열로 변환시켜야 한다.

    1. 다른 타입의 값을 str함수를 이용하여 문자열로 변환 후 문자열 합치기를 한다.
# str()로 변환하기.
a1 = '홍길동'
a2 = 20
a3 = 185

str1 = '이름은 ' + a1 + '이고 나이는 ' + str(a2) + '살 입니다. ' + a1 + '의 키는 ' + str(a3) + 'cm 입니다'
print(str1)
이름은 홍길동이고 나이는 20살 입니다. 홍길동의 키는 185cm 입니다
    1. 포멧 함수를 이용하여 다른 타입의 값을 문자열에 포함시킨다.
# 포멧 문자 사용
# 정수: %d, 실수 : %f, 문자열 : %s, 그 외에는 : %s
str2 = '이름은 %s이고 나이는 %d살 입니다. %s의 키는 %dcm 입니다' % (a1, a2, a3, a4)
print(str2)
    1. format메서드를 이용하여 다른 타입의 값을 문자열에 포함시킨다.
# format 사용
str3 = '이름은 {0}이고 나이는 {1}살 입니다. {0}의 키는 {2}cm 입니다'.format(a1, a2, a3)
print(str3)
이름은 문자열1문자열2이고 나이는 20살 입니다. 문자열1문자열2의 키는 185cm 입니다
    1. f 문자열을 사용하여 다른 타입의 값을 문자열에 포함시킨다.
# f 문자열 사용
str4 = f'이름은 {a1}이고 나이는 {a2}살 입니다. {a1}의 키는 {a3}cm 입니다'
print(str4)
이름은 문자열1문자열2이고 나이는 20살 입니다. 문자열1문자열2의 키는 185cm 입니다

문자열 내의 문자 접근

  • 0부터 1씩 증가하는 순서값을 이용하여 첫 번째 글자부터 접근할 수 있다.
# 문자열 내의 문자 접근
str1 = "abcdefg"

# 첫 번째 글자
print(str1[0])
# 두 번째 글자
print(str1[1])
a
b
  • -1 부터 1씩 감소하는 순서값을 이용하여 마지막 글자부터 접근할 수 있다
str1 = "abcdefg"

# 뒤에서 첫 번째 글자
print(str1[-1])
# 뒤에서 두 번째 글자
print(str1[-2])
g
f
  • 문자열 슬라이싱을 이용하여 원하는 글자부터 접근할 수 있다.
  • 문자열[시작:끝:간격]
# 순서값 2 ~ 5 - 1
print(str1[2:5])
# 처음 부터 5 - 1
print(str1[:5])
# 순서값 2 ~ 끝까지
print(str1[:])
cde
abcde
abcdefg

문자열 함수

len

  • 해당 문자열의 글자 수를 셀 수 있는 함수이다.
  • 문자열 외에도 리스트나 튜플 등 다른 자료형 타입에 값의 개수를 세는 것도 가능하다.
# len
str1 = 'abcdefg'
str2 = '가나다라마바사'

a1 = len(str1)
a2 = len(str2)

print(a1)
print(a2)
7
7

capitalize

  • 첫 글자를 대문자로 변경하고 나머지 문자를 소문자로 변환시킨다.
# capitalize

str1 = 'hello world'
str2 = str1.capitalize()
print(str2)

str3 = 'hELLO WORLD'
str4 = str3.capitalize()
print(str4)
Hello world
Hello world

center, ljust, rjust

  • 문자열을 주어진 크기로 늘려준다.
    • center : 원본 문자열을 가운데 배치하고 나머지는 주어진 문자열을 채워준다.
    • ljust : 원본 문자열을 좌측에 배치하고 나머지는 공백으로 채워준다.
    • rjust : 원본 문자열을 우측에 배치하고 나머지는 공백으로 채워준다.
    • 원하는 문자를 삽입하여 공백을 채우는 것도 가능하다.
# center, ljust, rjust

str1 = 'python'

str2 = str1.center(40)
print(f'[{str2}]')
str2 = str1.center(40, '_') 
print(f'[{str2}]')

str3 = str1.ljust(40)
print(f'[{str3}]')
str3 = str1.ljust(40, '♠')
print(f'[{str3}]')

str4 = str1.rjust(40)
print(f'[{str4}]')
str4 = str1.rjust(40, '♥')
print(f'[{str4}]')
[                 python                 ]
[_________________python_________________]
[python                                  ]
[python♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠]
[                                  python]
[♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥python]

count

  • 문자열 안에서 특정 문자가 몇 번 나오는지 세어주는 함수이다.
  • 숫자 문자열이나 공백도 셀 수 있다.
  • 알파벳의 경우 대소문자를 구분한다.
# count

str1 = 'abcd abcd abcd aaaa'

# 문자열내에 abcd가 몇개가 있는가..
a1 = str1.count('abcd')
print(a1)

# 문자열 내에 a가 몇개가 있는가..
a2 = str1.count('a')
print(a2)

# 앞에서 부터 10글자를 제외하고 a가 몇개가 있는가.
a3 = str1.count('a', 10)
print(a3)

# 앞에서 부터 10글짜를 제외하고 순서값 15번째 글자를 제외한 a가 몇개가 있는가
a4 = str1.count('a', 10, 15)
print(a4)
3
7
5
1

startswith, endswith

  • startswith : 문자열이 특정 문자(또는 문자열)로 시작하는지 확인해주는 함수
  • endswith : 문자열이 특정 문자(또는 문자열)로 끝나는지 확인해주는 함수
# startswith, endswith

str1 = 'abcdefg'

# 문자열이 abc로 시작하는가
a1 = str1.startswith('abc')
print(a1)

# 문자열이 zzz로 시작하는가
a2 = str1.startswith('zzz')
print(a2)

# 문자열이 efg로 끝나는가
a3 = str1.endswith('efg')
print(a3)

# 문자열이 zzz로 끝나는가
a4 = str1.endswith('zzz')
print(a4)
True
False
True
False

find, index

  • 문자열 안에서 특정 문자가 어디에 있는지(인덱스)를 알려준다.
# find, index
# cd가 어디에 있는가

str1 = 'abcdefg'

a1 = str1.find('cde')
a2 = str1.index('cde')

print(a1)
print(a2)
2
2
  • find : 문자열에서 **처음 등장하는 위치(인덱스)를 찾아준다. 없다면 -1을 반환한다.
  • index : find와 유사하지만 없으면 에러가 난다
# 없는 문자열 찾기
a3 = str1.find('zzz') # find - 없는 문자열의 경우 -1
print(a3)

a4 = str1.index('zzz') # index - 없는 문자열의 경우 오류 발생
print(a4)
-1



---------------------------------------------------------------------------

ValueError                                Traceback (most recent call last)

Cell In[137], line 5
      2 a3 = str1.find('zzz') # find - 없는 문자열의 경우 -1
      3 print(a3)
----> 5 a4 = str1.index('zzz') # index - 없는 문자열의 경우 오류 발생
      6 print(a4)


ValueError: substring not found

isalnum

  • 문자열이 문자 또는 숫자로만 되어있는지 검사하는 함수이다.
  • 만약 둘 중 하나라도 아닌 문자가 있다면 False를 반환한다.
# isalnum
str1 = 'abcd1234'
a1 = str1.isalnum()
print(a1)

str2 = 'abcd'
a2 = str2.isalnum()
print(a2)

str3 = '1234'
a3 = str3.isalnum()
print(a3)

str4 = 'abcd가나다라1234'
a4 = str4.isalnum()
print(a4)

str5 = 'abcd_1234' # 특수문자 -> False
a5 = str5.isalnum()
print(a5)

str6 = 'abcd 1234' # 공백 - False
a6 = str6.isalnum()
print(a6)
True
True
True
True
False
False

isdigit

  • 문자열이 숫자로만 이루어뎠는지 확인하는 함수이다.
  • 0 ~ 9까지의 숫자만 있다면 True, 그 외 하나라도 있다면 False를 반환한다.
# isdigit
str1 = '123456'
a1 = str1.isdigit()
print(a1)

str2 = 'alpha'
a2 = str2.isdigit()
print(a2)
True
False

isalpha

  • 문자열이 문자로만 이루어졌는지 확인하는 함수이다.
  • 문자만 있다면 True, 그 외 하나라도 있다면 False를 반환한다.
  • 빈 문자열의 경우 False를 반환한다.
# isalpha
str1 = 'abcdef'
a1 = str1.isalpha()
print(a1)

str2 = '' # 문자가 없거나 텅 빈 문자열의 경우 False를 반환
a2 = str2.isalpha()
print(a2)
True
False

islower, isupper

  • islower : 소문자로만 이루어졌는지 확인하는 함수.
    • 모든 알파벳이 소문자일 때만 True 대문자가 포함된다면 False를 반환 (※한글, 특수 문자, 공백 등은 무시한다.)
  • isupper : 문자로만 이루어졌는지 확인하는 함수.
    • 모든 알파벳이 대문자일 때만 True 소문자가 포함된다면 False를 반환 (※한글, 특수 문자, 공백 등은 무시한다.)
  • 알파벳 문자열이 최소 1개 이상 있어야 하며 만약 하나도 없다면 False를 반환한다.
#islower
str1 = 'abcdefg'
a1 = str1.islower()
print(a1)

#isupper
str2 = 'ABCDEFG'
a2 = str2.isupper()
print(a2)

str3 = '' # 텅 빈 문자열은 False를 반환
a3 = str3.isupper()
print(a3)

str4 = '1234' # 문자가 하나도 없다면 False를 반환
a4 = str3.islower()
print(a4)
True
True
False
False

lower, upper

  • 모든 알파벳 문자를 소문자/대문자로 변경하는 함수이다.
  • 숫자나 다른 특수 문자들은 영향을 받지 않는다.
str1 = 'ABcdEF'

# lower
str2 = str1.lower()
print(str2)

# upper
str3 = str1.upper()
print(str3)
abcdef
ABCDEF

replace

  • 지정된 문자열 안에서 특정 부분을 찾아서 다른 문자열로 변경하는 함이다.
  • 문자열.replace(바꿀_문자, 새_문자, 횟수(선택))
  • 원본은 그대로, 대소문자만 구분한다.
# replace

# 지정된 문자열의 일부를 다른 문자열로 변경한다/
str1 = 'abcdefg'
# cde를 zzzz로 변경한다.
str2 = str1.replace('cde', 'zzzz')
print(str2)

str3 = 'abcdefcdekkk'
str4 = str3.replace('cde', 'zzzzz')
print(str4)

str5 = 'abcdefcdekkk'
# 3번째 숫자를 넣어주면 그 개수만큼 변경한다
str6 = str5.replace('cde', 'zzzzz', 5)
print(str6)
abzzzzfg
abzzzzzfzzzzzkkk
abzzzzzfzzzzzkkk
♣ 자료 출처
  • [멋쟁이 사자처럼 부트캠프 데이터 분석5기]

댓글남기기