반응형

파이썬 딕셔너리(Dictionary) 자료형

개요

  • 이번 시간에는 파이썬의 딕셔너리(Dictionary) 자료형에 대해 학습하고자 합니다.
  • 딕셔너리의 개념, 기능, 활용 등에 대해 자세히 알아보고, 실제로 코드를 작성해 봅니다.

학습 목표

  • 딕셔너리(Dictionary) 자료형의 개념과 특징을 이해합니다.
  • 딕셔너리를 선언하고 활용할 수 있는 방법을 학습합니다.
  • 딕셔너리의 기능과 메소드를 이해하고, 활용합니다.
  • 딕셔너리를 활용한 다양한 예시를 이해하고, 실습을 통해 자신의 코드에서 활용할 수 있습니다.

학습 내용

1. 딕셔너리(Dictionary)란?

  • 딕셔너리(Dictionary)는 키(Key)와 값(Value)으로 구성된 비정렬(Unordered) 자료형입니다.
  • 키(Key)와 값(Value)은 콜론(:)으로 구분하며, 각 쌍은 쉼표(,)로 구분합니다.
  • 딕셔너리는 중괄호({})를 이용하여 선언합니다.

2. 딕셔너리(Dictionary) 선언하기

  • 딕셔너리는 중괄호({})를 이용하여 선언합니다.
  • 딕셔너리는 키-값 쌍(key-value pair)의 모음으로 이루어져 있습니다.
  • 딕셔너리는 리스트와 마찬가지로 여러 자료형의 요소를 함께 포함할 수 있습니다.

3. 딕셔너리(Dictionary) 활용하기

  • 딕셔너리에서는 키(Key)를 이용하여 값을 찾습니다.
  • 딕셔너리에서는 값(Value)을 갱신하거나 추가할 수 있습니다.
  • 딕셔너리에서는 del 예약어를 이용하여 키-값 쌍을 삭제할 수 있습니다.

4. 딕셔너리(Dictionary) 메소드 활용하기

  • 딕셔너리에서는 다양한 메소드를 이용하여 값을 처리할 수 있습니다.
  • keys() 메소드: 딕셔너리의 모든 키(Key)를 리스트로 반환합니다.
  • values() 메소드: 딕셔너리의 모든 값(Value)을 리스트로 반환합니다.
  • items() 메소드: 딕셔너리의 모든 키-값 쌍(key-value pair)을 리스트로 반환합니다.
  • get() 메소드: 딕셔너리에서 특정 키(Key)에 대한 값을 반환합니다.
  • clear() 메소드: 딕셔너리의 모든 키-값 쌍(key-value pair)을 삭제합니다.
  • copy() 메소드: 딕셔너리를 복사합니다.

5. 딕셔너리(Dictionary) 활용 예시

  • 딕셔너리를 이용하여 전화번호부를 구현해 봅니다.
  • 딕셔너리를 이용하여 단어장을 구현해 봅니다.
  • 딕셔너리를 이용하여 성적 처리를 구현해 봅니다.
  • 딕셔너리를 이용하여 자료의 빈도수를 계산해 봅니다.

참고 자료

반응형

'파이썬 학습' 카테고리의 다른 글

[파이썬] 튜플 자료형  (0) 2023.03.24
[파이썬] 리스트 - 인덱싱 & 슬라이싱  (1) 2023.01.24
[파이썬] 문자열 자료형  (0) 2023.01.16
[파이썬] 숫자형 자료형  (0) 2023.01.16
[파이썬] 변수와 자료형  (0) 2023.01.15
반응형

파이썬 튜플(Tuple) 자료형

개요

  • 파이썬의 자료형 중 하나인 튜플(Tuple)에 대해 학습합니다.
  • 튜플의 개념, 선언 및 활용 방법에 대해 배우고, 실제로 코드를 작성해 봅니다.

학습 목표

  • 튜플(Tuple) 자료형의 개념과 특징을 이해합니다.
  • 튜플을 선언하고 활용할 수 있는 방법을 학습합니다.
  • 튜플을 활용한 다양한 예시를 이해하고, 실습을 통해 자신의 코드에서 활용할 수 있습니다.

학습 내용

1. 튜플(Tuple)이란?

  • 튜플(Tuple)은 변경할 수 없는(Immutable) 순서형(Sequence) 자료형입니다.
  • 리스트와 마찬가지로 여러 개의 데이터를 저장할 수 있습니다.
  • 튜플은 소괄호()를 이용하여 선언합니다.

2. 튜플(Tuple) 선언하기

  • 튜플은 다음과 같이 소괄호()를 이용하여 선언합니다.

# 튜플 선언 예시 my_tuple = (1, 2, 3)

  • 튜플은 리스트와 마찬가지로 여러 자료형의 요소를 함께 포함할 수 있습니다.

# 다양한 자료형을 포함한 튜플 예시

my_tuple = (1, "hello", 3.14, True)

3. 튜플(Tuple) 활용하기

  • 인덱싱과 슬라이싱을 통해 튜플의 요소에 접근할 수 있습니다.

# 튜플 인덱싱 예시

my_tuple = (1, 2, 3) 
print(my_tuple[0]) # 출력 결과: 1 

# 튜플 슬라이싱 예시

my_tuple = (1, 2, 3, 4, 5) 
print(my\_tuple[1:3]) # 출력 결과: (2, 3)
  • 튜플을 사용하여 함수의 여러 값을 반환할 수 있습니다.

# 함수에서 튜플을 반환하는 예시

def return_multiple_values(): 
    return (1, 2, 3)
반응형
반응형

이전 포스트에서 문자열을 다뤄봤습니다.
문자열은 말 그대로 문자(char)와 열(list)였습니다. 즉 문자의 리스트 형태이죠. 문자의 특성은 어느정도 알게된 것 같으니 리스트를 알아봅시다.

리스트란?

리스트는 데이터의 집합을 표현하는 방식 중 하나입니다. 예를 들어봅시다.
1부터 10까지의 데이터를 메모리에 저장하고싶습니다. 어떻게 할 수 있을까요?

a = 1
b = 2
c = 3
d = 4
...
j = 10

저희가 지금까지 배운 지식으로는 무려 10줄이 필요하네요
리스트를 사용해볼까요?

a = [1, 2, 3, 4, ... 10]

리스트를 이용한다면 단 한 줄로 표현이 가능합니다. 이것이 리스트의 능력입니다.

리스트의 형태

리스트는 다양한 형태를 가질 수 있습니다.

a = [1, 2, 3, 4] # 단순 리스트 타입
b = [1, 2, 'a', 'b'] # Mixed 리스트 타입
c = [1, 2, [3, 4]] # 다차원 리스트 타입
d = [] # 빈 리스트

#을 쓴 이유는 # 이후에 쓰는 것들은 주석이라고하여 빌드할 때 전처리 과정에서 제거됩니다. 즉, 온전히 개발자 또는 협업하는 사람이 보기 위한 정보입니다.

위 예시에서 보이듯 리스트에는 숫자, 문자 등 다양한 형태가 들어갈 수 있습니다. 이는 사실 리스트 내부 타입을 특별하게 지정하지 않았기 때문에 가능한 것인데요.

일반적으로 실무 개발을 할 때는 특정 리스트 변수에는 같은 타입만 넣어서 혼란을 배제하도록 합니다. 즉 Mixed 리스트 타입은 지양합니다.

리스트의 기술

리스트는 데이터를 모아놓은 것이기 때문에 이를 잘 활용하려면 리스트 내부의 요소들을 추출하는 기법에 대해 알아야합니다.

인덱싱 & 슬라이싱

리스트는 데이터의 묶음이기 때문에 묶여져있는 데이터를 선택할 수 있어야합니다. 데이터 선택하는 기술은 인덱싱과 슬라이싱이 있는데요. 한 번 봅시다.

a = [1, 2, [3, 4]]

1, 2, [3, 4] 이 담긴 다차원 리스트 a가 있습니다. 먼저, 인덱싱부터 볼까요?

a[0] # 1
a[1] # 2
a[2] # [3, 4]
a[-1] # [3, 4]

파이썬의 인덱스는 1이 아닌 0부터 시작된다는 것을 명심하셔야합니다. 그리고, 다차원 리스트를 다룰 때 단차원 인덱싱으론 하나의 차원만 접근 가능합니다.

무슨 소리일까요...? 좀 어렵게 말했죠? 위 예제의 3, 4번은 리스트 a의 마지막 요소를 추출했습니다. 그러나 그 마지막 요소는 또다시 [3, 4]인 리스트이죠. 이렇게 리스트 안에 리스트가 있으면 차원으로 분리하게됩니다.

리스트 a의 1차원은 0, 1, [3, 4]이고, 3, 4는 2차원 공간에 있기 때문에 인덱싱으로 접근을 하려면 다음과 같이 해야합니다.

a[2][0] # 3
a[2][1] # 4

현실 세계의 차원의 개념을 생각하면 인덱싱 접근이 조금은 쉽게 느껴질 수 있습니다.

차원 현실 프로그래밍 예시
0차원 단일 데이터 int, float 등
1차원 1차원 리스트 [1, 2, 3]
2차원 2차원 리스트 [[1,2,3], [4,5,6]]
3차원 시공간 3차원 리스트 [1,[2,[3],4],5]

4차원부터 현실에서 뭐라 표현 불가능하지만 프로그래밍에서는 3차원에서 1뎁스의 리스트를 추가한다면 4차원이 되는 원리입니다.

슬라이싱을 한 번 봅시다. 슬라이싱은 이름부터가 뭔가 자른다죠? 리스트의 시작점과 끝 점을 선택하고 그 가운데 요소들을 추출하는 기술입니다. 예시를 한 번 보시죠.

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

패턴이 보이시나요?

그렇습니다 이 슬라이싱에서 중요한 것은 :앞의 인덱스는 포함이고 뒤의 인덱스는 불포함입니다.

즉, 슬라이싱은 앞의 인덱스 이상 뒤의 인덱스 미만( pre_index <= x < post_index)의 관계입니다.

반응형

'파이썬 학습' 카테고리의 다른 글

[파이썬] 딕셔너리 자료형  (0) 2023.03.24
[파이썬] 튜플 자료형  (0) 2023.03.24
[파이썬] 문자열 자료형  (0) 2023.01.16
[파이썬] 숫자형 자료형  (0) 2023.01.16
[파이썬] 변수와 자료형  (0) 2023.01.15
반응형

숫자가 있다면 문자도 있습니다. 문자 자료형은 문자문자열이 있습니다.

다만, 파이썬에서는 문자 자료형이 사용되지는 않는다는 점을 알아두세요.

문자(char)

char 형은 파이썬에서 사용되지 않는데 간단한 예를 들어보겠습니다.

a = "a"

이렇게 문자 하나만 있을 때 char 형이라고 칭할 수 있습니다. c언어와 같은 경우 char형을 사용하죠. 그러나 파이썬에서는 위 예제의 a 변수의 자료형은 str 형입니다.

문자열(str)

모든 프로그래밍의 근본을 이제서야 한다는 것이 참 아쉽지만 커리큘럼상 어쩔 수 없었습니다.

따옴표

a = "Hello World"
b = 'Hello World'
c = "'Hello World'"
d = '"Hello World"'

Output

Hello World
Hello World
'Hello World'
"Hello World"

파이썬에서의 문자열은 " 또는 '으로 둘러 쌓여있다면 문자열입니다.

위 예제에서는 간단하게 따옴표를 출력하는 방법까지 보여드렸습니다. 큰 따옴표를 출력하고 싶다면 작은 따옴표로 감싸면 되는 방식입니다.

여러 줄의 문자열

a = """
Hello
World
"""

output

Hello
World

간단하네요. 그러나 이렇게 하면 코드가 길어질 여지가 있습니다. 한 줄로 줄여볼까요?

a = "Hello\nWorld"

Output

Hello
World

\n은 이스케이프 코드라고 합니다. 백슬레시()와 문자를 조합한 코드를 이스케이프 코드라고 말하는데 이는 프로그래밍을 할 때 출력물을 처리하기 위해 선 정의한 코드입니다. 아래는 이스케이프 코드의 예시입니다.

코드 설명
\n 줄 바꿈(개행)
\t 탭(스페이스 4번)
\\ 문자 \를 출력할 때
\' 작은 따옴표(')를 출력할 때
\" 큰 따옴표(")를 출력할 때
\r 캐리지 리턴(줄 바꾼 후 커서를 가장 앞으로 이동)
\f 폼 피드(줄 바꾼 후 커서를 다음 줄로 이동
\a 벨 소리('삑!')
\b 백 스페이스
\000 널 문자

참 많고도 많지만, \n, \t, \\ 정도를 알면 되겠습니다.

문자열은 이름답게 문자(character)열(list)이기 때문에 다음에 배울 리스트의 연산(더하기, 곱하기, 슬라이싱 등)이 가능합니다. 이런 리스트의 특성은 다음 포스트에서 알아봅시다.

문자열 포매팅(Formatting)

문자열 포매팅은 참 쓸 말이 많지만... 정말 간단하게 많이 쓰이는 것만 설명하도록 해봅시다. 먼저 포매팅이 무엇인지 생각해 봅시다.

포매팅은 한 마디로 문자열을 템플릿화 한다고 보시면 될 것 같습니다. 예시를 한 번 볼까요?

"철수의 나이는 20살입니다."
"영희의 나이는 29살입니다."

위 두 문장이 있을 때 템플릿으로 만들 수 있는 영역은 어느곳일까요? 다시 말하자면, 변하는 곳은 어딘가요?

"{철수}의 나이는 {20}살입니다."
"{영희}의 나이는 {29}살입니다."

포매팅을 가장 쉽게하는 법은 format 함수를 사용하는 것입니다. 그리고, 이는 실무에서도 가장 많이 쓰입니다.

저렇게 이름과 숫자가 변형되는 문자열을 산출하는 포매팅은 어떻게 할 수 있을까요?

"{}의 나이는 {}살입니다.".format("철수", 20)
"{0}의 나이는 {1}살입니다.".format("영희", 29)
"{name}의 나이는 {age}살입니다.".format(name="은수", age=30)

이 외는 정렬, 공백 채우기 등의 기법이 소개가 될 것입니다. 추후 업데이트 하도록 하겠습니다.
반응형
반응형

앞서 변수나 자료형을 설명할 때 이미 숫자형 자료형으로 예시를 들었기 때문에 익숙하리라 믿고 있습니다.

그럼에도 불구하고 처음 만난다는 생각으로 숫자형 자료형에 대해 공부를 해봅시다.

숫자형 자료형

숫자(Number)형태로 이루어진 자료형으로 종류로 정수, 실수, 8진수, 16진수, 복소수가 있습니다.

이러한 자료형들은 앞서 말씀드린대로 영어의 단어와 같기 때문에 뜻을 알고, 익히는(암기) 수밖에 없다고 생각합니다.

어떻게 사용하는지 알아봅시다.

정수

a = 123
b = -123
c = 0

정수에는 양의 정수, 음의 정수, 그리고 0이 있죠? 갑자기 수학 공부가 된 것 같습니다만, 아시다시피 컴퓨터라는 것이 수의 계산을 위한 것이고 프로그래밍이란 것은 컴퓨터를 동작시키기 위한 알고리즘 표현이기 때문에 수학에 대한 공부도 같이 하면 좋죠... 하지만 선형 대수학이나 뭐 해석학 이정도의 수준까지 필요한 것은 아닙니다. 물론 이런 수학적 지식이 필요한 프로그래밍 분야는 딥러닝과 같은 분야가 있긴 합니다만 각설하겠습니다.

실수

a = 123.0
b = -123.0
c = 0.0

실수도 정수와 마찬가지입니다. 정수와의 차이점은 소숫점(floating point)이 존재한다는 점입니다. 추가적으로 지수 표현 방식도 있습니다.

d = 2.2e10
e = 2.2E-10

e와 E 모두 같은 의미이며 각각 d = 2.2 * 10 10 , e = 2.2 * -10 10 입니다.

8진수

b = 0o111
print(b)
print(type(b))

output

73
<type 'int'>

8진수는 0o(영어 소문자 o)로 표현 가능합니다. 결괏값은 정수형으로 나오는 것을 확인할 수 있습니다.

16진수

b = 0x111
print(b)
print(type(b))

output

273
<type 'int'>

8진수와 차이는 없습니다. 다만 앞에 입력해야하는 것이 0x인 것이 차이점입니다.

복소수

복소수는 실수와 허수로 이루어진 수입니다. 허수를 어떻게 프로그래밍으로 표현이 가능했을까요?

a = 1 + 2.2j
print(a)
print(type(a))

output

(1+2.2j)
<type 'complex'>

허수의 부분에 j를 붙이는 것으로 허수를 표현할 수 있게 되는데요, j 가 붙여지게 되면 그 변수의 자료형은 complex가 됩니다. complex 자료형(class)은 real과 imag 변수가 들어있고 위 예제의 1은 real, 2.2는 imag에 입력되게 됩니다.

한 번 볼까요?

print(b.real)
print(b.imag)

output

1.0
2.2

이 모든 부분을 제대로 설명하려면 클래스와 함수(메소드) 기반의 설명이 필요한데, 이 부분은 추후 배워보도록 합시다.

이번 포스트에서는 숫자형 자료형에 대해 배워보았는데요. 사실 실제 업무를 할 때 자주 사용되는 숫자 자료형은 int와 float 정도라고 생각하시면 되겠습니다. 그래도 나머지도 알아두면 좋겠죠?

반응형
반응형

프로그래밍 언어는 기본적으로 언어의 특성을 띄고 있고, 영어로 이루어져 있기 때문에 영어 공부법과 크게 다르지 않습니다.

영어를 공부할 때 어떻게 공부하시나요?

각자 사람마다 다르겠지만, 저 같은 경우에는 단어를 암기하고 문법을 이해하는 과정으로 공부를 합니다.

영어 단어를 프로그래밍 언어의 무엇으로 비유해볼 수 있을까요? 저는 자료형이라고 생각합니다.

자료형을 설명하기 이전에 먼저 변수(Variable)에 대해 설명을 해야합니다.

변수

변수는 수학에서도 사용되고 프로그래밍에서도 사용됩니다.

잠시 수학과 프로그래밍의 관계를 이야기 해볼까요?

컴퓨터의 존재 목적이 수를 계산하는 것이고, 이에 대한 논리적인 구조를 프로그래밍 언어로 표현하는 것이기 때문에 프로그래밍이라는 것은 수학이 밑바탕이 되는 것입니다.

그렇다면 수학에서의 변수와 프로그래밍에서의 변수가 같은 의미일까요?

아닙니다.

수학에서의 변수는 수식에 따라서 변하는 값을 뜻합니다.

프로그래밍에서의 변수는 데이터를 저장하기 위한 메모리 저장 공간을 뜻합니다.

간단한 예를 하나 들어보겠습니다.

수학에서의 x = 0은 단순히 x는 0이다 라고 표현할 수 있습니다.

프로그래밍에서의 x = 0은 어떨까요?

나중에 배우겠지만 0이라는 숫자는 int(정수)형 데이터입니다. int 자료형의 기본 크기는 4바이트입니다(변수의 크기에 따라 무제한까지 가능합니다, arbitrary precision)

크기라는 것은 변수의 표현 가능 범위만큼의 공간을 뜻하는 것으로 이는 메모리(RAM) 공간에 할당 됩니다.

메모리 공간에 할당될 때는 주솟값이라는 유니크한 id 값을 갖게됩니다.

즉, 프로그래밍에서의 x = 0이 뜻하는 바는 다음과 같습니다.

0x10(주솟값) 부터 4바이트 공간에 0이라는 데이터를 가진 x이다. 라고 표현할 수 있습니다.

변수를 설명했으니 이제 자료형을 설명해야겠죠?

자료형

자료형(Data Type)이란 변수의 종류, 특성을 의미합니다.

간단한 예를 들어봅시다.

a = 0
b = 0.0
c = "abc"

위와 같은 3가지의 변수는 파이썬 특성(동적 프로그래밍)상 변수를 초기화(생성)할 때 자료형을 명시하지는 않습니다.

이러한 특성은 앞서 설명드렸던 줄 단위 실행에서 장점으로 작용하게됩니다. 변수에 이것도 넣어보고, 저것도 넣어봐도 에러가 안나는 것이죠.

그러나, a, b, c 각각의 변수는 자료형을 암묵적으로 지니고 있습니다. 무엇일까요?

나중에 배우겠지만, a(int. 정수), b(float, 실수), c(string, 문자열)입니다.

주입식 교육은 초중고때 많이 했으니 이제 파이썬에서 명시하지도 안하는 자료형을 알아야하는지 알아야겠죠?

결론부터 말씀드리자면 각각의 자료형에는 특성들이 있고, 그 특성을 이용하여 프로그래밍을 하기위함입니다.

모든 설명에는 이해를 위해 예시가 필요합니다

ex 1)

a = 1
b = 2
c = a + b

ex 2)

a = 1.0
b = 2.0
c = a + b

위 두 예시는 수학적으로 볼 때 동일한 결괏값을 나타냅니다. 다만 프로그래밍 관점으로 볼 때 ex 1)의 결괏값인 3과 ex 2)의 결괏값인 3.0은 극명한 차이를 보이고 있습니다.

먼저 위 두 예제의 변수 a, b 그리고 c의 자료형이 각각 int와 float이라는 점에서 메모리 저장 공간의 차이가 발생하게 됩니다. a = 1을 하게 됨으로 a 변수를 할당하기 위해 메모리에 4바이트를 할당하지만, a = 1.0을 하게 되면 a 변수를 할당하기위해 메모리에 8바이트를 할당하게 됩니다.

이렇듯 ex 1)과 ex 2)는 겉보기에는 비슷한 결과를 보이지만 프로그래밍적으로는 ex 2)가 굉장한 메모리 손실을 보이고 있다고 볼 수 있습니다.

이번 포스트에서는 변수와 자료형에 대해 배워보았습니다.

다음 시간에는 자료형에 어떤 종류들이 있는지 알아봅시다.

반응형
반응형

Python은 객체 지향 언어이자, 인터프리터 언어라고 하였습니다.

이전 포스팅에서 객체 지향에 대해 간략하게 설명을 했습니다.
1. 파이썬은 무엇일까요? - 프로그래밍의 종류

그렇다면 인터프리터가 무엇일까요?

인터프리터는 프로그래밍 언어의 소스 코드를 바로 실행하는 컴퓨터 프로그램 또는 환경을 말합니다.

무슨 말일까요?

컴퓨터는 기계어라는 언어를 사용하고 있습니다. 이는 0과 1로 이루어진 언어이죠. 우리가 만약 컴퓨터와 소통을 하고싶다면 바로 기계어를 이용하여 소통을 하면 됩니다.

그러나... 가능할까요?

이러한 문제점을 해결하기 위해 대단하신 분들이 프로그래밍 언어를 만드셨습니다. 초창기에는 파스칼, 어셈블리어와 같은 저수준의 언어부터 현재는 파이썬, 자바와 같은 인간의 언어 체계와 매우 유사한 언어가 개발되었습니다.

그렇다면, 컴퓨터는 기계어로 소통을 할 수 있는데 저희는 고수준의 프로그래밍 언어를 사용한다면, 저희가 현재 미숙한 영어를 쉽게 읽기위해 사용하는 파파고 또는 구글 번역기와 같은 언어 번역 프로그램이 필요하겠죠?

그러한 언어 번역 프로그램이 컴파일러인터프리터입니다.

갑자기 인터프리터 얘길 하다가 컴파일러?

컴파일러

아래 블로그에 정말 자세하게 컴파일러 동작 원리에 대해 나와있습니다. 그러나 우리는 파이썬에 대해 알면 되므로 컴파일러에 대해 간략하게 알아봅시다.
https://bradbury.tistory.com/226

컴파일러의 특징은 전체 코드를 한 번에 번역하여 처리하는 것입니다. 따라서, 완성된 코드를 빌드하게 되므로 첫번째 빌드에서는 시간이 다소 걸리지만, 이후부터는 이미 번역이 된 상태이므로 실행 속도가 빠르다는 장점이 있습니다.

따라서 실시간 서비스(게임, 자동 매매 시스템 등)은 대체로 컴파일러로 개발이 이루어집니다.

인터프리터

그렇다면 인터프리터는 무엇일까요?

위에서 설명하였듯 소스 코드를 바로 실행하는 프로그램입니다. 컴파일러와의 차이점은 소스코드 한 줄 단위로 바로 번역하여 바로 실행시키는 것입니다.

줄 단위로 번역 후 실행하기 때문에 컴파일러보다 실행속도가 많이 뒤쳐집니다. 속도가 뒤쳐지는 대신 줄단위 코드 변경이 빈번하게 이루어지는 데이터 분석, 딥러닝 분야 등에 자주 사용됩니다.

정리하자면 아래 표와 같습니다.

  컴파일러 인터프리터
번역단위 전체
목적 프로그램 생성 생성하지 않음
실행속도 빠름 느림
번역속도 느림 빠름
언어 C, JAVA Python, BASIC

파이썬의 특장점

파이썬의 특장점을 정리해보자면 고수준의 언어이기 때문에 인간 친화적인 성격을 띄고 있고, 그렇기 때문에 러닝커브가 낮습니다. 이러한 부분에서 비 전공자분들도 스타트 언어로 파이썬을 선택하는 것일 것입니다.

또한, 번역 속도가 빠르므로 줄 단위로 파라미터 및 여러 값들을 변경하면서 프로그래밍 해야하는 작업에 유리합니다.

반응형
반응형

null

컴퓨터 관련 종사자거나 문과계열 종사자 더라도 한 번 쯤은 들어본 프로그래밍 언어인 파이썬.

프로그래밍 언어 인기 지표 통계 사이트인 TIOBE의 통계에 따르면 아래 이미지와 같이 파이썬이 당당하게 1위를 차지하고 있습니다. 그만큼 많은 분들이 사용하려 하시는 프로그래밍 언어입니다.

null

여러분들은 어떠한 이유로 파이썬을 공부하려 하시나요? 각자의 언어들은 특성이 있고 그 특성에 맞는 분야에 적용되어 사용하고 있습니다.

그렇다면 파이썬을 공부하기 전에 파이썬이 무엇이고 어떤 특성을 갖고있는지 알아봐야겠죠?

Python은 무엇일까요?

Python은 객체 지향 언어이자, 인터프리터 언어입니다.

먼저, 프로그래밍 언어는 각자 지향하는 특성이 있습니다.
이는 절차, 객체, 함수를 지향합니다. (정확하게는 함수를 지향하기보다는 함수형 언어입니다.)

절차 지향적 프로그래밍 언어의 예로는 C 언어, 파스칼, 유닉스 쉘과 같은 저(Low)레벨 언어들이 주 예가 될 수 있습니다.

절차 지향

절차 지향이란, 그 말과 같이 순서에 맞게 프로그래밍 되어 있어 다소 융통성이 없다는 단점이 있습니다.

따라서 이러한 단점을 보완하기 위해 객체 지향 프로그램이 개발되었습니다.

ex)

a = 1
b = 2
c = a + b

객체 지향

객체 지향 프로그래밍 언어의 예로 자바, C++, 파이썬 등이 있습니다.

객체를 지향한다는 것은 현실 세계를 모방한다고 볼 수 있습니다.

컵이나 사람 등이 객체이듯, 코드로 객체를 구현하고 그 객체의 데이터와 기능을 핸들링 하는 것이 객체 지향 프로그래밍의 원리입니다.

다른 의미로는 모든 클래스는 암묵적으로 Object class(객체)를 상속 받고 있기 때문에 객체를 지향하고 있다라고 볼 수 있습니다.

객체 지향의 특징에 관해서는 밑의 포스트에서 설명을 해놓았으나, 파이썬에 대해 조금 공부를 하고 보시는 것을 추천드립니다.

https://wp94.tistory.com/129

ex)

class Person:
    def eat(self):
        print('냠냠')
if __name__ == "__main__":
    walter = Person()
    walter.eat()

함수형


파이썬을 어느정도 배운 후 보시는 편이 좋습니다.


함수형 언어는 대표적으로 R이 있고 최신버전의 JAVA, Python 등에도 적용이 되어 있습니다.

순수 함수를 이용하여 상태를 처리하기보단 데이터를 빠르게 처리하는데 초점을 둔 프로그래밍이라고 볼 수 있습니다.

순수함수를 간략하게 설명하자면 어떤 함수에 동일한 인자를 주었을 때 항상 같은 값을 리턴(반환, output)하는 함수입니다.

ex) 순수 함수

def add(a, b):
    return a + b

ex) 비 순수 함수

c = 1
def add(a, b)
    return a + b + c

위 예제를 설명하자면, 순수 함수는 add 함수에 입력된 a, b 인자를 외부 요인 없이 연산하여 리턴하기 때문에 순수함수로 볼 수 있습니다.

비 순수 함수는 전역 변수인 c 변수가 add 함수 내에서 작용하므로 비 순수 함수입니다.

결론적으로 함수형 프로그래밍이란 것은 이러한 순수함수를 이용하여 프로그래밍을 하는 것을 일컫습니다.

더 깊은 이야기가 필요하지만 초반부터 글이 길어지면 흥미가 떨어지므로... 이번 포스팅은 여기까지 하겠습니다.

반응형

+ Recent posts