데이터 타입 , 변수 ,연산자
# 데이터 타입
동적 타이핑(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에서는 변수를 선언할 때 특별한 키워드가 필요하지 않으며, 값을 할당할 때 변수 이름을 사용합니다.
변수의 규칙
변수를 선언할 때 다음 규칙을 지켜야 합니다:
- 변수명은 문자(A-Z, a-z), 숫자(0-9), 밑줄(_)만 사용할 수 있습니다.
- 변수명은 숫자로 시작할 수 없습니다.
- 변수명은 대소문자를 구분합니다. 예를 들어 name과 Name은 다른 변수입니다.
- 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("백슬래시: \\ 예시") # \ 예시
'Python' 카테고리의 다른 글
[Python] 05. 리스트(List), 튜플(Tuple), 집합(Set), 딕셔너리(Dictionary) (0) | 2024.09.29 |
---|---|
[Python] 04. 함수 (0) | 2024.09.29 |
[Python] 03. 제어문 ( 조건문, 반복문, 예외 처리 ) (1) | 2024.09.28 |
[Python] 01. 파이썬 개념 , 프로그램 설치 (2) | 2024.09.28 |