Python

[Python] 02. 데이터 타입, 변수 , 연산자

변쌤(이젠강남) 2024. 9. 28. 12:05
반응형

데이터 타입 ,  변수 ,연산자

 

# 데이터 타입

동적 타이핑(dynamic typing) 언어로, 변수의 데이터 타입을 명시적으로 선언하지 않아도 됩니다. 하지만, 각 값은 특정 타입을 가지며, Python에서는 다양한 기본 타입들이 있습니다.

 

자료형 형식 설명
정수형 int 소수점이 없는 수 1,2 
소수 float 소수점이 있는 수 (부동 소수점 ) -3.8 , 2.4
문자열 str 문자들로 이루어진 문장 'abc', 'hi'
진위 bool True/False를 나타내는 자료형 True, False
복소수 complex 복소수를 나타냄 5+3j
바이트 bytes 0 ~ 255 사이의 코드 모임 b'Python'
리스트 list 순서가 있는 자료 집합 ['강호동','유재석']
사전 dict 순서가 없는 자료 집합 {'a1':100, 'a2':200}
튜플 tuple 순서가 있는 자료 집합 내용 변경이 안됨 ('hihihi','good')
집합 set 집합을 표현하는 자료형  {1,2,3,5}

 

 

 

 

1. int: 정수형. 음수, 양수 또는 0을 나타냅니다

x = 10  # 정수(int)

 

2. float: 부동 소수점 숫자. 소수점이 있는 숫자를 표현합니다

y = 3.14  # 실수(float)

 

3. complex: 복소수형. 실수부와 허수부로 이루어진 숫자를 나타냅니다.

z = 2 + 3j  # 복소수(complex)

 

4. str: 문자열을 나타내는 타입으로, 작은 따옴표(' ')나 큰 따옴표(" ")로 묶어서 표현합니다

s = "Hello, World!"  # 문자열(str)

 

5. bool: 참(True) 또는 거짓(False)을 나타내는 논리값입니다

b = True  # 불리언(bool)

 

 

6. list: 순서가 있는 가변(mutable) 시퀀스로, 서로 다른 타입의 값을 저장할 수 있습니다

my_list = [1, 2, 3, "a", "b", "c"]  # 리스트(list)

 

7. tuple: 순서가 있는 불변(immutable) 시퀀스로, 값을 수정할 수 없습니다

my_tuple = (1, 2, 3)  # 튜플(tuple)

 

8. range: 범위 객체를 생성합니다. 주로 반복문에서 사용됩니다

r = range(0, 10)  # range 타입

 

9. dict: 키-값(key-value) 쌍으로 구성된 데이터 구조로, 각 키는 고유해야 합니다

my_dict = {"name": "John", "age": 25}  # 딕셔너리(dict)

 

10. set: 중복되지 않는 요소들로 이루어진 집합으로, 순서가 없습니다.

my_set = {1, 2, 3, 4}  # 집합(set)​

 

11. frozenset: 불변(immutable) 집합으로, 수정이 불가능한 집합입니다

my_frozenset = frozenset([1, 2, 3])  # 불변 집합(frozenset)

 

 

# 변수란?

변수는 데이터를 저장하는 이름 붙은 공간입니다. 프로그래밍에서 변수를 사용하면 데이터를 메모리에 저장하고, 나중에 그 값을 참조하거나 조작할 수 있습니다. Python에서 변수는 값을 할당할 때 자동으로 생성되며, 데이터 타입을 명시적으로 선언할 필요가 없습니다. 또한, Python에서는 변수의 타입이 실행 중에 변경될 수 있습니다.

변수의 선언과 할당

Python에서는 변수를 선언할 때 특별한 키워드가 필요하지 않으며, 값을 할당할 때 변수 이름을 사용합니다.

 

변수의 규칙

변수를 선언할 때 다음 규칙을 지켜야 합니다:

  1. 변수명은 문자(A-Z, a-z), 숫자(0-9), 밑줄(_)만 사용할 수 있습니다.
  2. 변수명은 숫자로 시작할 수 없습니다.
  3. 변수명은 대소문자를 구분합니다. 예를 들어 name과 Name은 다른 변수입니다.
  4. Python의 예약어(예: if, for, while 등)는 변수명으로 사용할 수 없습니다.

 

예약어 확인

help('keywords')

x = 10  # 정수형 변수
y = 3.14  # 실수형 변수
name = "Alice"  # 문자열형 변수

 

age = 25  # 정수형 변수
height = 175.5  # 실수형 변수
is_student = True  # 불리언형 변수
first_name = "John"  # 문자열형 변수

 

 

변수 값의 변경

Python에서는 변수가 참조하는 값을 언제든지 변경할 수 있습니다. 예를 들어, 처음에 변수에 정수를 할당했다가 나중에 문자열을 할당할 수도 있습니다.

 

x = 10
print(x)  # 출력: 10
x = "Hello"
print(x)  # 출력: Hello

 

동적 타이핑

Python은 동적 타이핑 언어이므로, 변수에 할당된 값에 따라 그 변수의 타입이 자동으로 결정됩니다. 즉, 변수에 할당된 값에 따라 변수의 타입이 변경될 수 있습니다.

x = 5  # x는 int 타입
x = "Python"  # x는 str 타입

 

변수의 메모리 주소 확인

Python에서 변수는 실제 값을 저장하는 것이 아니라, 값이 저장된 메모리 위치를 참조합니다. id() 함수를 사용하여 변수의 메모리 주소를 확인할 수 있습니다.

x = 100
print(id(x))  # 변수 x가 참조하는 메모리 주소를 출력

 

다중 할당

Python에서는 여러 변수를 한 줄에 동시에 할당할 수 있습니다.

a, b, c = 10, 20, 30
print(a, b, c)  # 출력: 10 20 30

 

같은 값을 여러 변수에 동시에 할당할 수도 있습니다.

x = y = z = 100
print(x, y, z)  # 출력: 100 100 100

 

변수 삭제

변수를 삭제하려면 del 키워드를 사용합니다.

x = 10
del x  # 변수 x가 삭제됨

 

 

연산자는 변수나 값에 대한 연산을 수행하는 데 사용됩니다. 다양한 종류의 연산자가 있으며, 각각의 연산자는 특정한 동작을 수행합니다. 여기서는 Python에서 사용되는 주요 연산자들을 설명하겠습니다.

 

 


# 주석

코드 내에서 실행되지 않는 부분으로, 코드에 대한 설명이나 메모를 작성할 때 사용됩니다. 주석은 다른 개발자(또는 미래의 자신)가 코드를 이해하기 쉽게 하며, 복잡한 로직이나 특정한 이유로 코드를 작성한 의도를 기록하는 데 유용합니다.

 

한 줄 주석 (Single-line Comment)

Python에서 한 줄 주석은 # 기호로 시작하며, 해당 줄의 끝까지 주석으로 처리됩니다. 주석은 코드의 앞이나 뒤에 추가할 수 있습니다.

# 이것은 한 줄 주석입니다.
x = 5  # x에 5를 할당

 

여러 줄 주석 (Multi-line Comment)

Python에는 여러 줄 주석을 위한 특별한 문법은 없지만, 여러 줄 주석을 작성할 때 주로 연속된 한 줄 주석을 사용하거나, 문자열 리터럴을 사용합니다.

 

연속된 한 줄 주석

여러 줄에 걸쳐 주석을 작성할 때는 각 줄마다 #을 사용합니다.

# 이 코드는 두 수를 더하는 코드입니다.
# a와 b에 값을 할당한 후, 이를 더하여 출력합니다.
a = 10
b = 20
result = a + b
print(result)

 

문자열 리터럴을 이용한 주석

여러 줄 주석을 남기고 싶을 때, 큰 따옴표(""") 또는 작은 따옴표(''')를 사용하여 여러 줄 주석처럼 처리할 수 있습니다. 이 방법은 주로 **문서화 문자열(Docstring)**로 사용되며, 실제로 코드에서는 실행되지 않습니다.

 

"""
이 부분은 주석처럼 사용할 수 있지만,
주로 함수나 클래스에 대한 설명을 작성할 때 사용됩니다.
"""
print("Hello, World!")

 

Docstring (문서화 문자열)

Docstring은 함수, 클래스, 모듈에 대한 설명을 담기 위해 주로 사용되는 여러 줄 문자열입니다. Docstring은 Python의 내장 함수 help()를 통해 호출할 때 표시됩니다.

def add(a, b):
    """
    두 수를 더하는 함수입니다.

    매개변수:
    a (int): 첫 번째 숫자
    b (int): 두 번째 숫자

    반환값:
    두 수의 합 (int)
    """
    return a + b

print(add(10, 20))
print(help(add))  # Docstring을 출력

 

 

  • 명확하고 간결하게 작성: 주석은 명확하게 작성해야 하며, 너무 길게 설명하기보다는 코드의 의도를 짧게 요약하는 것이 좋습니다.
  • 불필요한 주석은 피하기: 코드 자체로 이해할 수 있는 내용은 굳이 주석으로 설명할 필요가 없습니다.
  • 주석의 일관성 유지: 주석 스타일을 일관되게 유지하는 것이 중요합니다. 한 프로젝트 내에서는 동일한 주석 규칙을 따르는 것이 좋습니다.

 

 


 

 

 

#  연산자 (Operators)

 

1. 산술 연산자 (Arithmetic Operators)

산술 연산자는 기본적인 수학 연산을 수행하는 데 사용됩니다.

연산자설명예시결과

연산자 설명 예시 결과
+ 더하기 5 + 3 8
- 빼기 5 - 3 2
* 곱하기 5 * 3 15
/ 나누기 5 / 2 2.5
// 몫 (정수 나누기) 5 // 2 2
% 나머지 5 % 2 1
** 거듭제곱 5 ** 2 25

 

2. 할당 연산자 (Assignment Operators)

할당 연산자는 변수에 값을 할당하는 데 사용됩니다. =를 사용하여 값을 할당하며, 다른 연산자와 결합하여 값을 업데이트할 수 있습니다.

연산자설명예시결과

연산자 설명 예시 결과
= 값 할당 x = 5 x는 5
+= 더한 후 할당 x += 3 x = x + 3
-= 뺀 후 할당 x -= 3 x = x - 3
*= 곱한 후 할당 x *= 3 x = x * 3
/= 나눈 후 할당 x /= 3 x = x / 3
//= 몫을 계산한 후 할당 x //= 3 x = x // 3
%= 나머지를 계산한 후 할당 x %= 3 x = x % 3
**= 거듭제곱 계산 후 할당 x **= 3 x = x ** 3

 

3. 비교 연산자 (Comparison Operators)

비교 연산자는 두 값을 비교하고 그 결과로 True 또는 False 값을 반환합니다.

연산자설명예시결과

연산자 설명 예시 결과
== 같음 5 == 3 False
!= 같지 않음 5 != 3 True
> 크다 5 > 3 True
< 작다 5 < 3 False
>= 크거나 같다 5 >= 3 True
<= 작거나 같다 5 <= 3 False

4. 논리 연산자 (Logical Operators)

논리 연산자는 여러 조건을 결합하거나 반전하는 데 사용되며, 그 결과는 True 또는 False입니다.

연산자설명예시결과

연산자 설명 예시 결과
and 두 조건이 모두 참일 때 True (5 > 3) and (3 > 1) True
or 하나의 조건이라도 참이면 True (5 > 3) or (3 < 1) True
not 조건의 결과를 반전 not(5 > 3) False

5. 비트 연산자 (Bitwise Operators)

비트 연산자는 정수 값을 이진수 비트 단위로 연산합니다.

연산자설명예시결과

연산자 설명 예시 결과
& 비트 AND 5 & 3 1
` ` 비트 OR `5
^ 비트 XOR 5 ^ 3 6
~ 비트 NOT ~5 -6
<< 왼쪽 시프트 5 << 1 10
>> 오른쪽 시프트 5 >> 1 2

 

6. 멤버십 연산자 (Membership Operators)

멤버십 연산자는 값이 시퀀스(리스트, 튜플, 문자열 등)에 포함되어 있는지 확인합니다.

연산자설명예시결과

연산자 설명 예시 결과
in 시퀀스에 포함되면 True 'a' in 'apple' True
not in 시퀀스에 포함되지 않으면 True 'b' not in 'apple' True

7. 식별 연산자 (Identity Operators)

식별 연산자는 두 객체가 동일한 메모리 위치를 참조하는지 확인합니다.

연산자설명예시결과

연산자 설명 예시 결과
is 같은 객체를 참조하면 True x is y True 또는 False
is not 다른 객체를 참조하면 True x is not y True 또는 False

 

8. 연산자 우선순위

Python에서는 연산자가 실행되는 순서가 있으며, 이를 연산자 우선순위라고 합니다. 우선순위가 높은 연산자가 먼저 수행됩니다. 예를 들어, * 연산자는 + 연산자보다 우선순위가 높습니다.

 

x = 5 + 3 * 2  # 결과는 11 (3 * 2가 먼저 계산됨)

 

괄호를 사용하여 우선순위를 변경할 수 있습니다.

x = (5 + 3) * 2  # 결과는 16 (5 + 3가 먼저 계산됨)

 

 

 

#  이스케이프 문자(escape characters)

문자열 내에서 특수한 의미를 가지는 문자들을 표현할 때 사용됩니다. 보통 역슬래시(\)를 사용하여 이스케이프 시퀀스를 만들며, Python에서는 다양한 이스케이프 시퀀스를 제공합니다.

 

이스케이프 시퀀스 설명 예시
\\ 백슬래시(\) 문자 "C:\\path\\file"
\' 작은 따옴표(') 'It\'s sunny'
\" 큰 따옴표(") "He said, \"Hi\""
\n 줄 바꿈 (새로운 줄) "Hello\nWorld"
\t 탭 (수평 탭) "Name:\tAlice"
\r 캐리지 리턴 (줄 시작으로 이동) "Hello\rWorld"
\b 백스페이스 "Hello\bWorld"
\f 폼 피드 (새로운 페이지) "Hello\fWorld"
\a 경고음 (벨 소리) print("\a")
\v 수직 탭 "Hello\vWorld"
\0 널 문자 (null character) "Hello\0World"
\ooo 8진수 값 표현 \101 (A에 해당)
\xhh 16진수 값 표현 \x41 (A에 해당)

 

 

1. 백슬래시(\\): 문자열에서 실제 백슬래시(\)를 사용하고자 할 때 사용됩니다.

 

path = "C:\\Program Files\\Python"
print(path)  # 출력: C:\Program Files\Python

 

2. 작은 따옴표(\')와 큰 따옴표(\"): 문자열 내에서 작은 따옴표나 큰 따옴표를 포함하고 싶을 때 사용합니다.

quote = 'He said, "Hello"'
print(quote)  # 출력: He said, "Hello"

 

3. 줄 바꿈(\n): 새로운 줄로 이동하는 데 사용됩니다.

quote = 'He said, "Hello"'
print(quote)  # 출력: He said, "Hello"

 

4. 탭(\t): 일정한 간격만큼 띄어쓰기를 하는 데 사용됩니다.

info = "Name:\tAlice"
print(info)  # 출력: Name:    Alice

 

 

5. 캐리지 리턴(\r): 커서를 현재 줄의 맨 앞으로 이동시킵니다. 보통 \n과 같이 사용되지 않으면 그다지 자주 사용되지 않습니다.

text = "Hello\rWorld"
print(text)  # 출력: World (Hello는 덮어써짐)

 

6. 백스페이스(\b): 이전 문자를 삭제하는 기능을 합니다.

text = "Hello\bWorld"
print(text)  # 출력: HellWorld (o가 삭제됨)

 

7. 널 문자(\0): 문자열의 끝을 나타내기 위해 사용됩니다. Python에서는 실제로 문자열 끝을 나타내지는 않으며, 문자열 중간에 나타내더라도 무시됩니다.

text = "Hello\0World"
print(text)  # 출력: HelloWorld (null은 무시됨)

 

8. 16진수 값 표현(\xhh): 16진수 값을 사용하여 ASCII 문자 또는 유니코드 문자를 나타낼 수 있습니다.

text = "\x48\x65\x6c\x6c\x6f"  # "Hello"에 해당
print(text)  # 출력: Hello

 

9. 8진수 값 표현(\ooo): 8진수 값을 사용하여 문자를 나타냅니다.

text = "\101\102\103"  # "ABC"에 해당
print(text)  # 출력: ABC

 

 

Raw 문자열

문자열에서 이스케이프 문자를 무시하고 그대로 출력하고 싶을 때는 r 또는 R을 문자열 앞에 붙여서 raw 문자열로 처리할 수 있습니다.

raw_string = r"C:\Users\Name\Documents"
print(raw_string)  # 출력: C:\Users\Name\Documents

 

print("탭:\t탭 예시")     # 탭 예시
print("줄 바꿈:\n줄 예시")  # 줄 예시
print("백슬래시: \\ 예시")  # \ 예시

 

 

 

반응형