본문 바로가기
👩🏻‍💻 강의 기록용/처음 시작하는 데이터 사이언스

04-① 파이썬의 자료형 : 사칙연산, 문자열, 리스트, 딕셔너리

by b5ingbo2ng 2023. 9. 11.

파이썬 : 주피터노트북을 온라인상에서 협업을 하면서 사용할 수 있는 도구

  • 파이썬은 1990년 암스테르담의 귀도 반 로섬이 개발
  • Monty Python's Flying Circus 라는 코미디 쇼에서 이름을 따옴

Zen of Python 파이썬의 핵심 철학

  • Beautiful is better than ugly : 아름다운 게 추한 것보다 낫다.
  • Explicit is better than implicit : 명시적인 것이 암시적인 것 보다 낫다.
  • Simple is better than complex : 단순함이 복잡함보다 낫다
  • Complex is better than complicated : 복잡함이 난해한 것보다 낫다.
  • Readability counts : 가독성은 중요하다.

 

 

파이썬의 특징

  • 오픈소스로 개발됨 : 누구나 사용할 수 있고, 파이썬이라는 언어에 기여할 수 있음
  • 고수준 언어 : 본래 교육용으로 설계 되었기 때문에 사람이 이해하기 쉬움
  • 비교적 배우기 쉬움 : 효율적인 코드를 간단하게 쓰는 언어
  • 다양한 생태계
    • 웹개발, 게임 개발, 영상, 이미지, 데이터 사이언스 등 분야에서 사용
    • 파이썬으로 작성된 자유,오픈 소스 소프트 웨어 : 아나콘다, 드롭박스, 비트토렌트,파이솔, 뷰CVS 등
  • 커뮤니티 : 새로운 기능, 이슈 제기, 버그 등
  • 별명
    • 건전지가 포함되어있다(Battery Included) 
      : 프로그래머가 바로 사용할 수 있는 라이브러리 통합 환경이 이미 배포판과 함께 제공됨 = 표준 라이브러리가 탄탄하다
      정규 표현식을 비롯해 운영체제의 시스템 호출이나 XML 처리, 직렬화, HTTP, FTP 등의 각종 통신 프로토콜, 전자메일이나 CSV 파일의 처리, 데이터 베이스 접속, 그래픽 사용자 인터페이스, HTML, 파이썬 코드 구문 분석 도구 등을 포함
    • 접착제 언어 : 다른 언어(c, c++)와 호환이 잘됨
  • 블록구조
    • C언어는 괄호를 통해서 블록을 구분하는데, 파이썬은 들여쓰기를 사용하여 블록을 구분 

 

파이썬의 자료형

  • 기본 자료형
    • 정수형 int , 실수 float
    • 부동소수점형
    • 복소수형
    • 문자형
    • 유니코드 문자형
    • 함수형
    • 논리형(boolean)
  • 집합형 자료형
    • 리스트형 : 내부의 값을 나중에 바꿀 수 있음
    • 튜플(tuple)형 : 한 번 값을 정하면 내부의 값을 바꿀 수 없음
    • 사전형 : 내부의 값을 나중에 바꿀 수 있음
    • 집합형 : 중복을 허락하지 않음. 변경가능하게도, 불가능하게도 만들 수 있음

 


1. 사칙 연산 

# 더하기
1 + 2
# 빼기
3 - 2
# 곱하기
2 * 3
# 나누기
3 / 2
# 나누기 후 몫만 반환
3 // 2
# 나누기 후 나머지만 반환
3 % 2

 

 

2. 변수 

  • 변수 명은 숫자로 시작할 수 없음
  • 변수 명에 언더바(_) 제외한 특수문자 사용 불가능
# 변수 응용
width = 20
height = 5

width * height

 

 

3. 문자열

  • 원래 파이썬은 무언가를 구현할 때, 하나의 방법으로 구현할 수 있어야 한다. 라는 철학이 있는데
  • 문자열 정의는 큰 따옴표("), 작은 짜옴표(') 둘 다 가능하다!
    • 그 이유는..!!! 
    • 작은 따옴표(')로만 하면 ' ' 안에 's 이런식으로 들어가면 에러가 나기 때문 👿
    • → 아포스트로피 's를 사용하고 싶을 때는 큰 따옴표(")로 감싸거나 아포스트로피 앞에 역슬래시 (\)를 해서 오류 방지 가능 😉
"파이썬's"
'파이썬\'s'

 

  • 줄바꿈 문자를 표현하고 싶을 때
    • 함수 안에 쓰게 되면 docstring 으로 작성 가능
"""
줄바꿈
문자를
표현합니다.
"""

 

  • 숫자와 문자는 함께 더할 수 없지만, 문자끼리는 더할 수 있음!!! 
  • * 를 통해서 문자를 반복출력할 수도 있음
'1' + '2' = '12' # 문자끼리는 더하면 두 텍스트가 합쳐짐

'1' + 2 # 문자와 숫자는 더할 수 없음
TypeError: unsupported operand type(s) for +: 'int' and 'str'

'-' * 50 # 곱하기하면 텍스트 반복됨
--------------------------------------------------

 

 

3-1. 문자열 인덱싱 📌

 +---+---+---+---+---+---+
 | P | y | t | h | o | n |
 +---+---+---+---+---+---+
 0   1   2   3   4   5   6
-6  -5  -4  -3  -2  -1

 

  • [ ]를 이용해서 몇 번째 특정 문자열을 가져올 수 있음
word = "Python's hobby?"

word[0] # 0번부터 인덱스 시작
'P'

word[1]
'y'

word[-1] # 직접 하나하나 셀 수도 있지만, 마지막 원소는 -1로 찾을 수 있음
'?'

 

 

 

3-2. 문자열 슬라이싱 ✂️

  • 텍스트안에서 자르기 → [시작인덱스 : 끝나는 인덱스+1] 로 문자열의 일부만 출력 가능
word[0:6] # word라는 변수에서 맨앞에서부터 6개 글자만 가져온다. 여기서 0은 생략가능

word[2:6] # 2번 인덱스부터 4개의 글자만 가져온다.

 

 

3-3. 문자열 함수 (파이썬 공식 문서)

word.lower() # 소문자로 변환
"python's hobby?"

word.upper() # 대문자로 변환
"PYTHON'S HOBBY?"

 

 

 

4. 리스트 (파이썬 공식 문서)

  • 5개의 값을 하나의 변수에 담아서 묶어서 쓸 수 있음!
    • 대괄호는 인덱싱, 슬라이싱, 리스트에 쓴다.
squares = [1, 4, 9, 16, 25]
squares
[1, 4, 9, 16, 25]

 

 

4-1. 리스트 인덱싱 & 슬라이싱

squares[0] # 리스트에 있는 첫번째 값만 가져와라
1

squares[-1] # 리스트의 가장 마지막 값만 가져와라
25

squares[-3] # 뒤에서 3번째 값을 가져와라
9

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

squares[:3] # 가장 앞에서부터 3개까지만 가져와
[1, 4, 9]

squares[-3:] # 마지막 값 3개 가져와
[9, 16, 25]

 

 

4-2. 리스트의 함수

  • append 함수 → 마지막에 새로운 값 추가
  • remove 함수 → 값 제거
squares.append(36) # 36이라는 새로운 값 squares 리스트에 추가해
[1, 4, 9, 16, 25, 36]

squares.remove(36) # squares에서 36이라는 값 제거해
[1, 4, 9, 16, 25]

 

 

5. 딕셔너리 (파이썬 공식 문서)

  • 리스트는 대괄호 [ ]로 정의했다면, 딕셔너리는 중괄호 { }로 정의
  • {키:값} 형식
# 재고라는 이름을 갖는 변수에 고구마, 감자, 쪽파의 수량을 표시해보자

재고 = {'고구마': 4139, '감자': 4098, '쪽파': 100}
재고
{'고구마': 4139, '감자': 4098, '쪽파': 100}

 

  • 추가할 때는 변수명 + ['새로운 키'] = '새로운 값' 추가하면 됨!!
  • 제거할 때는 del 사용
# 재고에 대파를 추가하고 싶을 땐 대괄호 사용
재고["대파"] = 345
재고
{'고구마': 4139, '감자': 4098, '쪽파': 100, '대파': 345}

# 키를 통해 "대파"의 값을 가져오자
재고['대파']
345

# del을 통해 값을 제거할 수 있음
del 재고['대파']
{'고구마': 4139, '감자': 4098, '쪽파': 100}

 

  • 딕셔너리의 키 가 뭐가 있는지 보고싶을 땐?
재고.keys() 
dict_keys(['고구마', '감자', '쪽파', '대파'])
 
  • 딕셔너리의 값 이 뭐가 있는지 보고싶을 땐?
재고.values()
dict_values([4139, 4098, 100, 345])
 
  • 딕셔너리를 리스트로 반환하고 싶을 땐?
list(재고)  
['고구마', '감자', '쪽파', '대파']

 

 

콜랩 실습 링크 : 4.1 파이썬 기본 연산과 자료형-input.ipynb의 사본

 

Google Colaboratory Notebook

Run, share, and edit Python notebooks

colab.research.google.com