소개
Python는 시스템 통합 목적으로 자주 사용되는 프로그래밍 언어입니다. 이 언어는 ‘데이터 타입’이라고 불리는 것을 사용합니다. 이러한 데이터 타입은 주어진 데이터 유형을 분류하거나 정의하는 데 도움이 됩니다. 이는 특정 데이터 타입이 적용할 수 있는 특정 값 및 연산과 관련이 있음을 의미합니다. 각 데이터 타입은 서로 다른 방식으로 프로그래밍되고 편집됩니다. 이는 각 데이터 타입의 성격이 다르기 때문입니다. 예를 들어, 문자열이나 정수를 다룰 수 있습니다.
이 가이드의 목표는 Python의 다양한 데이터 타입에 익숙해지도록 돕는 것입니다. 그뿐만 아니라, 데이터 타입을 서로 변환하는 방법에 대해서도 심도 있게 논의할 것입니다. 이 튜토리얼을 마칠 때쯤이면 숫자, 문자열, 튜플, 리스트와 같은 데이터 타입과 이들을 변환하는 방법을 이해하게 될 것입니다.
숫자 변환
Python에서 숫자를 말할 때는 두 가지 옵션 중 하나를 가리킬 수 있습니다. 우리는 정수 또는 실수를 다루게 됩니다. 때로는 하나를 다른 하나로 변환해야 할 수도 있습니다. 정수를 부동 소수점 수로, 실수를 정수로 쉽게 변환할 수 있습니다.
-
변환: 정수에서 실수로
먼저, 정수를 실수로 변환하는 방법부터 살펴보겠습니다. 이를 위한 방법은 float()라는 명령어를 사용하는 것입니다. 이 함수는 주어진 정수를 소수점이 있는 실수로 변환합니다. 괄호 안에 정수를 넣기만 하면 됩니다. 예를 들어, 정수 57을 실수 데이터 타입으로 변환하고 싶다고 가정해 보겠습니다. 변환하는 방법은 다음과 같습니다:
|
1 |
float(57) |
이 명령을 실행한 결과, 정수 57은(는) 실수 57.0.
로 변경됩니다. 이를 수행하는 또 다른 방법은 변수를 사용하는 것입니다. 변수를 통해 정수를 나타낸 다음 위의 명령어로 실수를 출력할 수 있습니다. 변수 f를 57로 선언한다고 가정해 보겠습니다. 이 경우 변환은 다음과 같이 진행됩니다:
|
1 2 3 |
f = 57 print(float(f)) |
|
1 2 3 |
출력 57.0 |
-
변환: 실수에서 정수로
실수를 정수로 변환하는 것도 가능합니다. 이전 명령어와 유사하게, 이 변환은 int() 함수를 사용하여 수행할 수 있습니다. 지난번과 마찬가지로, 함수 뒤의 괄호 안에 부동 소수점 수를 추가하기만 하면 됩니다.
예제에서는 실수 390을(를) 정수로 변환해 보겠습니다. 변환을 수행하기 위해 다음 명령을 실행합니다:
|
1 |
int(390.8) |
이 함수를 실행한 결과, 390은(는) 정수 형태인 390.8.
으로 변경됩니다. 마찬가지로, 변수의 도움을 받아 변환을 수행할 수 있습니다. 그뿐만 아니라, 동시에 여러 변환을 수행할 수도 있습니다. 변수 b가 125.0 이고, 변수 c가 390.8이라고 가정해 보겠습니다. 이 부동 소수점 값들을 출력하는 방법은 다음과 같습니다:
|
1 2 3 4 5 |
b = 125.0 c = 390.8 print(int(b)) print(int(c)) |
|
1 2 3 4 |
출력 125 390 |
보시다시피, 정수가 실수로 성공적으로 변환되었습니다.
실수에서 정수로 변환할 때 기억해야 할 한 가지 중요한 점은 함수가 값을 반올림하지 않는다는 것입니다. 이는 실수의 소수 부분이 단순히 제거됨을 의미합니다. 이 함수는 390.8과 같은 값을 390으로 올림하지 않고, 단순히 0.8 단위를 제거하여 정수를 제공합니다.
-
변환: 나눗셈을 통해
나눗셈을 통해 정수를 실수로 변환하는 것도 가능합니다. 정수끼리 나누면 부동 소수점 수인 몫을 얻을 수 있습니다. 예를 들어, 5를 2로 나누면 결과는 실수가 되는 2.5가 됩니다. 다음을 확인해 보세요:
|
1 2 |
a = 5 / 2 print(a) |
|
1 2 3 |
출력 2.5 |
이는 Python 3의 특별한 기능입니다. Python 2에서는 이러한 나눗셈을 수행하면 다음과 같이 정수 결과만 얻게 됩니다: 5 / 2 = 2.
문자열 변환
우리가 문자열을 이용한 변환을 수행하는 방법에 대해 이야기하기 전에, 문자열이 실제로 무엇인지 알아야 합니다. 아직 모르신다면, 문자열은 문자들의 시퀀스(나열)입니다. 이는 문자, 숫자, 기호 또는 기타 모든 문자의 문자열이 될 수 있습니다. 컴퓨터 데이터와 관련하여 문자열에 대해 알고 계실 수도 있습니다. 컴퓨터가 작업을 수행하기 위해 이 데이터 타입을 자주 사용하기 때문입니다.
사용자가 생성한 데이터를 다루는 경우 이러한 변환을 자주 수행해야 합니다. 그렇기 때문에 숫자를 문자열로 바꾸고 문자열을 숫자로 변환하는 방법을 알아두면 유용합니다.
-
변환: 숫자를 문자열로
여러분은 str() 함수를 사용하여 숫자를 문자열로 변환할 수 있습니다. 이전과 마찬가지로 변환하려는 값을 괄호 안에 넣습니다. 이 값은 숫자이거나 변수일 수 있습니다. 우선, 다음과 같은 정수를 12 문자열 값으로 변환하는 방법을 살펴보겠습니다.
|
1 |
str(12) |
|
1 2 3 |
출력 '12' |
보시다시피 출력에 문자열 값이 표시됩니다. 문자열 값은 따옴표로 표시됩니다.
반면에 정수 대신 함수 내에 변수를 넣을 수도 있습니다. 이 부분에서 이 함수가 정말 유용해집니다. 예를 들어, 사용자가 특정 기간 동안 작성하는 코드 줄 수를 추적하고 보고하려고 한다고 가정해 보겠습니다. 이 정보를 사용자에게 보여주려면 다음과 같이 문자열과 정수 값을 모두 출력해야 합니다.
|
1 2 3 4 |
user = "Sammy" lines = 50 print("Congratulations, " + user + "! You just wrote " + lines + " lines of code.") |
안타깝게도 위의 코드를 실행하려고 하면 다음과 같은 오류가 발생합니다.

즉, 코드를 실행하려면 lines 변수를 문자열 값으로 변환해야 함을 의미합니다.
|
1 2 3 4 |
user = "Sammy" lines = 50 print("Congratulations, " + user + "! You just wrote " + str(lines) + " lines of code.") |
이제 변환 함수를 배치했으므로 명령을 성공적으로 실행할 수 있습니다. 출력으로 다음과 같은 내용을 보게 될 것입니다:
|
1 2 3 |
출력 Congratulations, Sammy! You just wrote 50 lines of code. |
마찬가지로 문자열에 정수 대신 실수를 추가하려는 경우에도 동일한 작업을 수행해야 합니다. 이전과 마찬가지로 값을 직접 추가하거나 변수를 사용할 수 있습니다. 예를 들면 다음과 같습니다:
|
1 2 3 |
print(str(421.034)) f = 5524.53 print(str(f)) |
|
1 2 3 4 |
출력 421.034 5524.53 |
값이 올바른지 확인하려면 다음과 같이 문자열과 연결할 수 있습니다:
|
1 2 |
f = 5524.53 print("Sammy has " + str(f) + " points.") |
|
1 2 3 |
출력 Sammy has 5524.53 points. |
오류가 발생하지 않았으므로 변환이 성공적으로 이루어졌음을 의미합니다.
-
변환: 문자열을 숫자로
마찬가지로 문자열을 숫자로 변환할 수도 있습니다. 문자열에 소수점이 없는 경우 정수로 변환하는 것이 좋습니다. 다음 함수를 사용하여 정수로 변환할 수 있습니다: int() 함수.
이전의 정수 변환 예제를 계속 사용하겠습니다. Sammy라는 사용자가 매일 자신의 코드 작성 진행 상황을 추적하고 싶어한다고 가정해 보겠습니다. 프로그래머로서 여러분은 이 정보를 사용자에게 창의적인 방식으로 보여주고 싶을 것입니다. 하지만 이 값들은 문자열로 저장되어 있기 때문에 – (뺄셈)과 같은 기본적인 연산자를 적용할 수 없습니다. 다음에서 이를 확인할 수 있습니다:
|
1 2 3 4 5 6 |
lines_yesterday = "50" lines_today = "108" lines_more = lines_today - lines_yesterday print(lines_more) |

보시다시피 연산자가 문자열 값에는 작동하지 않습니다. 대신 오류가 발생합니다. 값을 다루려면 다음 함수를 사용하여 문자열을 정수로 변환해야 합니다: int() 함수:
|
1 2 3 4 5 6 |
lines_yesterday = "50" lines_today = "108" lines_more = int(lines_today) - int(lines_yesterday) print(lines_more) |
|
1 2 3 |
출력 58 |
여기서, lines_more은(는) 변수입니다. 이 변수는 정수이며, 이 예시에서는 결과 값인 58과 같습니다.
반면에, float() 함수를 사용하여 소수점이 있는 문자열을 실수로 변환할 수 있습니다. 이 예시에서는 사용자 Sammy가 작성하는 줄 수 대신 획득하는 포인트를 사용하겠습니다. 포인트는 소수점으로 기록됩니다:
|
1 2 3 4 5 6 |
total_points = "5524.53" new_points = "45.30" new_total_points = total_points + new_points print(new_total_points) |
|
1 2 3 |
출력 5524.5345.30 |
출력에 오류가 표시되지는 않지만, 여전히 올바르지 않습니다. 이 경우 피연산자 + 또는 덧셈이 작동했습니다. 하지만 두 숫자를 더하는 대신, 단순히 두 문자열 값을 나란히 배치했습니다.
그렇기 때문에 먼저 float() 함수를 사용하여 이러한 문자열을 실수 값으로 변환해야 합니다:
|
1 2 3 4 5 6 |
total_points = "5524.53" new_points = "45.30" new_total_points = float(total_points) + float(new_points) print(new_total_points) |
|
1 2 3 |
출력 5569.83 |
위에서 볼 수 있듯이, 두 값이 함께 더해졌습니다. 기억하세요: 소수점이 있는 문자열 값을 정수로 변환하려고 하면 다음과 같은 오류가 발생합니다:
|
1 2 |
f = "54.23" print(int(f)) |

따라서 먼저 문자열 데이터 타입을 숫자로 변환해야 합니다. 그런 다음 다른 연산을 수행하고 숫자 값을 쉽게 변환할 수 있습니다.
튜플 및 리스트로의 변환
리스트와 tuples은 Python 3에서 사용할 수 있는 몇 가지 다른 데이터 타입입니다. 이 두 가지 모두 요소의 시퀀스로 구성됩니다. 둘의 차이점은 리스트는 변경 가능(mutable)한 반면, 튜플은 변경 불가능(immutable)하다는 것입니다. 또한, 리스트의 요소는 대괄호 [ ] 안에 배치되는 반면, 튜플의 요소는 소괄호 ( ).
-
변환: 리스트를 튜플로
우선, 리스트를 튜플로 변환하는 방법을 살펴보겠습니다. 변경 불가능한 데이터 타입이 필요한 경우 이 변환을 수행해야 할 수 있습니다. 이를 위해 다음 함수를 사용해야 합니다: tuple():
|
1 |
print(tuple(['pull request', 'open source', 'repository', 'branch'])) |
|
1 2 3 |
출력 ('pull request', 'open source', 'repository', 'branch') |
보시다시피, 리스트의 항목들이 이제 튜플에 들어 있습니다. 이는 요소를 둘러싸고 있는 소괄호로 표시됩니다.
또한, tuple() 함수를 항목 리스트와 동일한 변수와 함께 사용할 수도 있습니다:
|
1 2 3 |
sea_creatures = ['shark', 'cuttlefish', 'squid', 'mantis shrimp'] print(tuple(sea_creatures)) |
|
1 2 3 |
출력 ('shark', 'cuttlefish', 'squid', 'mantis shrimp') |
편리하게도, 어떤 데이터 타입이든 튜플로 변환할 수 있습니다. 예를 들어, 문자열을 튜플로 변환하는 방법은 다음과 같습니다:
|
1 |
print(tuple('Sammy')) |
|
1 2 3 |
출력 ('S', 'a', 'm', 'm', 'y') |
문자열은 반복 가능(iterable)하기 때문에 튜플로 변환할 수 있습니다. 당연히 반복 불가능한 데이터 타입은 튜플로 변환할 수 없습니다. 정수나 실수를 튜플로 변환하고 싶다고 가정해 보겠습니다. 만약 tuple() 함수를 실행하면 다음과 같은 오류가 발생합니다:
|
1 |
print(tuple(5000)) |
|
1 2 3 |
출력 TypeError: 'int' object is not iterable |
타입 에러는 정수가 반복 가능(iterable)하지 않음을 보여줍니다. 그렇기 때문에 변환이 일어날 수 없습니다. 복잡한 방법은 먼저 정수를 문자열로 변환한 다음 튜플로 변환하는 것입니다. 다음 함수를 사용하여 이 작업을 수행할 수 있습니다: tuple(str(5000)). 하지만 이러한 복잡한 방법은 피하는 것을 권장합니다.
-
변환: 튜플을 리스트로
반대로, 변경 가능한 데이터가 필요한 경우 튜플을 리스트로 변환해야 할 수도 있습니다. 이를 위해 다음과 같이 list() 함수를 사용합니다:
|
1 |
print(list(('blue coral', 'staghorn coral', 'pillar coral'))) |
|
1 2 3 |
출력 ['blue coral', 'staghorn coral', 'pillar coral'] |
대괄호의 존재는 결과 출력이 튜플임을 나타냅니다. list()를 사용하여 튜플을 리스트로 변환하는 코드를 작성할 때, list()의 괄호뿐만 아니라 list() 메서드와 print() 메서드 모두에 괄호를 포함해야 합니다. 하지만 이로 인해 코드의 가독성이 다소 떨어질 수 있습니다. 덜 복잡하게 만들기 위해 변수를 사용하여 괄호 한 쌍을 제거할 수 있습니다:
|
1 2 3 |
coral = ('blue coral', 'staghorn coral', 'pillar coral') list(coral) |
튜플과 마찬가지로 문자열을 리스트로 직접 변환할 수도 있습니다:
|
1 |
print(list('shark')) |
|
1 2 3 |
출력 ['s', 'h', 'a', 'r', 'k'] |
결론
이 가이드는 Python 3에서 데이터 타입을 변환하는 방법을 찾고 있는 경우 도움이 될 것입니다. 우리는 다양한 데이터 타입과 내장 Python 함수를 사용하여 이를 서로 변환하는 방법에 대해 자세히 논의했습니다. 이러한 변환을 알면 프로그래밍 경험이 훨씬 더 쉬워지고 철저해질 것입니다.
Python으로 할 수 있는 작업을 더 자세히 알아보려면 다른 가이드를 참고하세요:
- 확인해 보세요: Ubuntu 16.04에서 Python 3를 설치하고 로컬 프로그래밍 환경을 설정하는 방법.
- 다음을 따라 배우십시오: Python을 사용하여 Twitter 데이터를 추출하는 방법.
- 배우기 Python을 사용하여 NASDAQ 분당 데이터를 검색하는 방법.
- 다음도 확인할 수 있습니다: 당사 플랫폼에서 드라이브 스냅샷을 전체 드라이브로 자동 변환하기 위해 CloudSigma Python 스크립트를 활용하는 방법.
즐거운 컴퓨팅 되세요!
댓글
아직 댓글이 없습니다. 첫 번째로 작성해 보세요.