우리가 데이터 유형에 대해서 알아보기 전에 왜 이것을 알아야하는지 알 필요가 있을 것 같습니다. 무작정 암기, 숙지하기 보다는 이래서 이렇게 사용하는구나를 하는 것이 훨씬 좋다는 생각이 듭니다. 하지만 '이것을 무조건 알고 있어라'하는 것은 아니고 '그런게 있구나~'하고 넘어가 주시면 될 것 같습니다.
다음은 데이터 유형이 중요한 이유를 조금 가져와 봤습니다.
값 이해 데이터 유형은 코드에서 작업하는 값의 특성을 이해하는 데 도움이 됩니다. 예를 들어 변수가 정수 또는 문자열이라는 것을 알면 해당 값을 조작하거나 사용할 수 있는 방법을 예상하는 데 도움이 됩니다.
유형별 작업 다양한 데이터 유형이 나타내는 데이터의 특성에 맞게 조정된 다양한 작업을 지원합니다. 예를 들어 정수와 실수에 대해 산술 연산을 수행할 수 있으며 문자열에서 하위 문자열을 연결하거나 검색할 수 있습니다. 변수의 데이터 유형을 알면 해당 유형에 올바른 작업을 사용할 수 있습니다.
메모리 관리 데이터 유형은 값에 대한 메모리 할당을 관리하는 효율적인 방법을 제공합니다. 각 데이터 유형에는 특정 메모리 사용 공간이 있으므로 Python은 다양한 유형의 데이터에 대한 메모리 사용을 최적화할 수 있습니다.
오류 방지 올바른 데이터 유형을 사용하면 코드의 오류를 방지할 수 있습니다. 예를 들어 데이터 유형에서 지원하지 않는 작업을 수행하려고 하면 Python에서 TypeError를 발생시켜 문제를 경고합니다. 적절한 데이터 유형을 사용하면 이러한 오류의 가능성을 최소화할 수 있습니다.
가독성 및 유지 관리 가능성 적절한 데이터 유형을 사용하면 코드를 더 읽기 쉽고 유지 관리할 수 있습니다. 누군가 코드를 읽을 때 데이터 유형을 기반으로 각 변수의 목적을 빠르게 이해할 수 있습니다. 이렇게 하면 전체 프로그램 논리를 더 쉽게 이해하고 장기적으로 코드를 유지 관리할 수 있습니다.
유형 검사 및 유형 힌트 Python은 동적으로 유형이 지정되는 언어입니다. 즉, 변수의 데이터 유형은 런타임에 결정됩니다. 그러나 유형 힌트를 사용하여 변수 또는 함수 인수에 대해 예상되는 데이터 유형을 표시하여 코드를 더 명확하고 이해하기 쉽게 만들 수 있습니다. 그런 다음 Mypy와 같은 유형 검사 도구를 사용하여 코드에서 유형 관련 문제를 확인할 수 있습니다.
데이터 유형 종류
다음으로 파이썬에는 프로그램에서 다양한 종류의 데이터를 저장하고 조작하는 데 사용되는 몇 가지 기본 제공 데이터 유형을 정리해 보았습니다. 다음은 가장 일반적인 Python 데이터 유형 중 일부입니다.
1. 정수(Integers, int): 정수는 양수와 음수의 정수입니다. 그것들은 int 데이터 유형으로 표현됩니다.
x = 42 y = -7
2. Floats(float): Float는 소수점이 포함된 실수입니다. 이들은 float 데이터 유형으로 표시됩니다.
x = 3.14 y = -0.5
3. 문자열(Strings, str): 문자열은 문자, 숫자, 기호 및 공백을 포함할 수 있는 일련의 문자입니다. 이들은 str 데이터 유형으로 표시되며 작은따옴표 또는 큰따옴표로 묶을 수 있습니다.
name = "Alice" greeting = 'Hello, World!'
4. 부울(Booleans, bool): 부울은 'True' 및 'False'의 진리 값을 나타냅니다. 논리적 표현과 비교에 사용됩니다. 그것들은 bool 데이터 유형으로 표현됩니다.
is_valid = True is_active = False
5. 목록(Lists, list): 목록은 다양한 데이터 유형일 수 있는 순서가 지정된 항목 모음입니다. 변경 가능합니다. 즉, 생성 후 내용을 변경할 수 있습니다. 그것들은 list 데이터 유형으로 표현됩니다.
print() 함수는 지정된 메시지를 화면이나 다른 표준 출력 장치에 표시하는 데 사용되는 내장 함수입니다. 메시지는 문자열이나 다른 개체일 수 있습니다. print() 함수는 객체를 표시하기 전에 객체를 문자열 표현으로 변환합니다. 먼저 해당 포스팅은 VScode를 이용했으며, 파이썬 파일을 실행할 때에는 아래 사진처럼 재생 버튼을 눌러주면 작성한 파이썬이 작동됩니다.
다음은 예시와 함께 print() 함수에 대한 자세한 설명입니다.
단일 인수
print() 함수를 사용하는 가장 간단한 방법은 출력으로 표시될 단일 인수를 제공하는 것입니다.
print("Hello, World!")
출력: Hello, World!
여러 인수
print() 함수에 여러 인수를 쉼표로 구분하여 전달할 수 있습니다. 기본적으로 인수는 출력에서 공백으로 구분됩니다.
print("Hello,", "World!")
출력: Hello, World!
print("Hello",",","my","Python")
출력: Hello , my Python
사용자 지정 구분 기호
sep 매개변수를 사용하여 인수 사이에 사용자 지정 구분 기호를 지정합니다.
print("Hello", "World!", sep="-")
출력: Hello-World!
줄 끝
기본적으로 print() 함수는 출력 끝에 개행 문자(\n)를 추가합니다. end 매개변수를 사용하여 사용자 지정 문자열을 지정하여 이 동작을 변경할 수 있습니다.
print("Hello, World!", end=" Goodbye!")
출력: Hello, World! Goodbye!
print("Hello, World!\nGoodbye!")
출력 > Hello, World! Goodbye!
문자열이 아닌 객체 출력
print() 함수는 문자열이 아닌 객체도 출력할 수 있습니다. 객체를 문자열 표현으로 자동 변환합니다.
number = 42 print("The answer is:", number)
출력: The answer is: 42
줄 바꾸기
print()에 아무 객체를 넣지 않으면 그 줄은 공백으로 넘어가게 됩니다.
이번 포스팅에서는 파이썬에서 자주 쓰이는 print에 대해 간단하게 알아보았습니다. 앞으로 다른 내용들을 다룰 때에도 많이 사용될 것입니다.
사칙연산에 쓰이는 덧셈, 뺄셈 등과 같은 기호는 '연산자'로 혼자쓰이면 의미가 없기 때문에 표현식이라고 할 수는 없습니다.
키워드(keyword)
키워드는 특별한 의미가 부여된 단어로 파이썬이 만들어질 때 이미 사용하겠다고 예약해 놓은 것입니다. 사용자가 키워드인지 아닌지를 구분해야 하는 이유는 프로그래밍 언어에서 사용자가 이름을 정할 때 키워드를 사용하면 안되기 때문입니다.
파이썬 3.10 기준으로 파이썬에서 사용되는 키워드입니다. 다음과 같이 VScode에 명령어를 입력하면 파이썬 키워드가 출력됩니다.
False, True: 부울(bool) 값의 표현을 위한 키워드입니다.
None: 아무 값도 없음을 나타내는 키워드입니다.
and, or, not: 논리 연산자를 나타내는 키워드입니다.
if, else, elif: 조건문을 나타내는 키워드입니다.
while, for, in: 반복문을 나타내는 키워드입니다.
try, except, finally: 예외 처리를 나타내는 키워드입니다.
def, return: 함수를 정의하거나 반환 값을 지정하는 키워드입니다.
lambda: 람다 함수를 생성하는 키워드입니다.
class, is, global, nonlocal, del, pass, assert, yield, import, from, as, with, raise, continue, break > 각각 클래스 정의, 객체 항등성 확인, 전역 변수 사용, 지역 변수 사용, 객체 삭제, 아무 것도 하지 않음, 조건 검사, 제너레이터 함수 반환, 모듈 가져오기, 모듈에서 가져오기, 이름 변경, 파일 조작, 예외 발생, 반복문 계속 실행, 반복문 중단을 나타내는 키워드입니다.
이 때 유의할 점은 파이썬은 대소문자를 구분하기 때문에 True는 키워드이지만 true는 키워드가 아님을 명확히 해야합니다. 이것을 갑자기 암기하려고 하면 막막하고 하기가 싫어질 것입니다. 때문에 굳이 다 외우기 보다 타이핑하며 연습하고 자주 사용하는 것들을 먼저 몸으로 익히면 편합니다. 또한 사진에서 볼 수 있는 것처럼 특정 키워드나 값들은 색이 달라져 구분하기 쉬우니 걱정은 한시름 놓아도 될 것 같습니다.
식별자(identifier)
식별자는 변수, 함수, 클래스, 모듈 등의 이름을 지정하는 데 사용되는 이름입니다. 주로 변수나 함수에 이름 등으로 사용됩니다.
식별자의 규칙은 다음과 같습니다.
식별자는 문자, 숫자, 밑줄(_)로 구성됩니다.
식별자는 숫자로 시작할 수 없습니다.
식별자는 공백을 포함할 수 없습니다.
키워드(keyword)는 식별자로 사용할 수 없습니다.
식별자의 작명 규칙은 다음과 같습니다.
식별자는 의미 있는 이름으로 지정해야 합니다.
식별자는 짧지만 설명적이어야 합니다.
식별자는 단어의 첫 글자는 소문자로, 단어의 구분은 밑줄(_)로 합니다.
잘못된 예시
1hellow 숫자로 시작 he llow 공백 포함 True 키워드가 들어감
a 지정해도 괜찮지만 file 과 같이 의미있는 단어가 권장됩니다.
스네이크 케이스와 캐멀 케이스
스네이크 케이스 단어에 언더바 기호를 붙여 식별자를 만듭니다. 마치 글자들이 뱀처럼 연결되는 것 같아서 붙은 이름입니다. (예시: login_status)
캐멀 케이스 단어의 첫 글자를 대문자로 만들어 식별자로 만듭니다. 마치 글자가 낙타의 혹처럼 울룩불룩하다 하여 붙은 이름입니다. (예시:LoginStatus)
대부분의 프로그래밍 언어는 둘 중 하나만 사용하는 경우가 많다고 합니다. 하지만 파이썬은 둘 다 사용이 가능합니다. 때문에 개발자들이 인수인계를 받을 때 각자의 방식을 사용해 혼란이 올 수 있습니다. 때문에 좋은 방법중 하나는 파이썬 파일 맨 위에 어떤 방식을 사용했는지 명시해 놓는 것입니다.
# 이_파일은_스네이크_케이스로_제작되었습니다. # This_file_made_by_snake_case. (이렇게 하라는 것이 아니고 방법 중 하나를 예시로 한 것입니다. 각자 편한 방법으로 하시면 되고 필수는 아니기 때문에 안하셔도 상관은 없습니다.)
식별자 구분하기 캐멀 케이스는 첫 번째 글자를 대문자로 적는 방식과 소문자로 적는 방식이 있습니다. 하지만 파이썬에서는 첫 번째 글자를 소문자로 적는 방식은 사용하지 않습니다. 주로 쿠버네티스나 앤서블같은 YAML을 작성할 때 자주 볼 수 있는 방식입니다. 때문에 만약 첫 알파벳이 소문자라면 스네이크 케이스, 대문자라면 캐멀 케이스라고 확인할 수 있습니다.
print() 함수 Print() 클래스 print 변수
*첫번 째를 제외하고 이런건 존재하지 않습니다. (만들려면 만들 순 있겠지만) 그저 구분하기 쉽게 예시를 들었을 뿐입니다.
주석(comment)
주석(comment)은 코드에서 실행되지 않는 메모나 설명으로, 주로 코드를 이해하고 관리하는 데 도움이 됩니다. Python에서는 한 줄 주석과 여러 줄 주석 두 가지 유형의 주석을 사용할 수 있습니다.
1. 한 줄 주석(single-line comment)은 한 줄에 하나의 주석을 작성합니다. 주석은 해시 기호(#)로 시작합니다. VScode에서 주석할 부분을 체크하고 단축키 Ctrl + / 키를 입력하면 주석이 추가 됩니다.
# This is a single-line comment
2. 멀티 주석(Multi-line comment)은 여러 줄에 걸쳐 주석을 작성할 때 사용합니다. 여러 줄 주석은 세 개의 연속된 따옴표 또는 작은 따옴표로 시작하고 끝납니다.
""" This is a multi-line comment """
주석은 코드의 특정 부분에 대한 메모나 설명을 추가할 때 유용합니다. 코드를 이해하고 수정하는 데 도움이 되며, 다른 사람이 코드를 이해하도록 도와줍니다.
연산자(operator)
연산자는 스스로 값이 되는 것은 아니지만 값과 값 사이에서 무언가 기능을 적용할 때 사용합니다. 예를 들면 1 + 1에서 '+'는 혼자서 기능이 없지만 앞 뒤에 값이 추가되어 자신의 역할을 하게 됩니다. 이러한 파이썬에서는 다양한 종류의 연산자가 있습니다.
산술 연산자
+ : 덧셈
- : 뺄셈
* : 곱셈
/ : 나눗셈
// : 정수 나눗셈
% : 나머지
** : 거듭제곱
비교 연산자
== : 같다
!= : 같지 않다
< : 작다
> : 크다
<= : 작거나 같다
>= : 크거나 같다
논리 연산자
and : 논리 곱
or : 논리 합
not : 논리 부정
비트 연산자
& : 비트 단위 논리 곱
| : 비트 단위 논리 합
~ : 비트 단위 논리 부정
^ : 비트 단위 배타적 논리합
<< : 비트 왼쪽 시프트
>> : 비트 오른쪽 시프트
할당 연산자
= : 변수에 값을 할당합니다.
+=, -=, *=, /=, //= : 산술 연산 후 할당합니다.
%=, **=, &=, |=, ^= : 비트 연산 후 할당합니다.
기타 연산자
() : 함수 호출 또는 튜플
[] : 리스트, 배열, 딕셔너리
{} : 딕셔너리
: : 슬라이싱, 함수 정의, 딕셔너리 키-값 쌍
, : 튜플, 리스트, 딕셔너리 키-값 쌍
. : 객체 속성 접근
in : 멤버십 테스트
is : 객체 식별
lambda : 람다 함수 정의
이 연산자들은 우선순위 규칙에 따라 연산자가 처리됩니다. 이 규칙에 따라 산술 연산자가 비교 연산자보다 먼저 처리되고, 비트 연산자가 논리 연산자보다 먼저 처리됩니다. 괄호를 사용하여 연산자의 우선순위를 변경할 수 있습니다.
리터럴(Literal)
파이썬에서 리터럴(literal)은 소스 코드에서 직접 작성된 데이터 값 그 자체를 의미합니다. 즉, 리터럴은 변수에 대입되거나, 함수의 인자로 전달되거나, 다른 연산에 사용됩니다.
파이썬에서는 다양한 종류의 리터럴을 지원합니다.
정수형 리터럴 정수형 리터럴은 정수 값을 나타냅니다. 예를 들어, 123, -456, 0 등이 정수형 리터럴입니다.
부동 소수점 리터럴 부동 소수점 리터럴은 실수 값을 나타냅니다. 예를 들어, 3.14, -0.123, 4.0 등이 부동 소수점 리터럴입니다.
문자열 리터럴 문자열 리터럴은 문자열 값을 나타냅니다. 따옴표(' 또는 ")로 감싸서 표기합니다. 예를 들어, "Hello, World!", 'Python' 등이 문자열 리터럴입니다.
불리언 리터럴 불리언 리터럴은 True 또는 False 값을 나타냅니다.
None 리터럴 None 리터럴은 NoneType 객체를 나타냅니다. None은 아무 값도 없음을 나타내는 상수입니다.
리스트 리터럴 리스트 리터럴은 대괄호([])로 감싸진 값의 목록을 의미합니다. 예를 들어, [1, 2, 3], ['apple', 'banana', 'orange'] 등이 리스트 리터럴입니다.
튜플 리터럴 튜플 리터럴은 괄호로 감싸진 값의 목록을 의미합니다. 예를 들어, (1, 2, 3), ('apple', 'banana', 'orange') 등이 튜플 리터럴입니다.
집합 리터럴 집합 리터럴은 중괄호({})로 감싸진 값의 목록을 의미합니다. 예를 들어, {1, 2, 3}, {'apple', 'banana', 'orange'} 등이 집합 리터럴입니다.
딕셔너리 리터럴 딕셔너리 리터럴은 중괄호({})로 감싸진 key-value 쌍의 목록을 의미합니다. 예를 들어, {'apple': 1, 'banana': 2, 'orange': 3} 등이 딕셔너리 리터럴입니다.
더 자세한 내용은 나중에 다뤄보도록 하겠습니다. 오늘은 간단히 소개하는 포스팅이니까요. ^^