Chapter 1 식별자와 키워드
1) 식별자의 정의 특징 규칙
식별자 : 프로그램에서 구별이 필요한 것에 붙이는 이름
프로그램에서 어떤 대상
에 이름을 붙여 식별
할 수 있을까?
프로그램을 사용하는 이유
반복되는 계산이나 사람이 직접하기 힘든 모든 작업을 편리하게 사용하기 위함
프로그램 실행시 원하는 값을 얻으려면 값을 전달해야하는데 이대 식별자가 필요
즉, 계산하기 위한 값을 저장하는 곳에 이름이 필요할 때 사용
- 프로그램에서 식별자를 사용할 수 있는 대상
값을 저장할 수 있는 곳
-
이름을 부여한 경우 이름으로 값을 전달받아 저장됨(Name space)
- 식별자
- 프로그래밍 언어에서 변수, 함수, 모듈, 배열 객체, 레이블 등 식별하기 위해 붙여진 이름
- 파이썬 프로그램에서는 이름이 필요한 곳에 사용됨
식별자의 특징
- 어떤 대상을 유일하게 식별 및 구별할 수 있는 이름
- 파이썬의 식별자는 유니코드 형식을 취함
- 유니코드 : 전세계의 모든 모든 문자를 컴퓨터에서 일관되게 표현하고, 다룰 수 있도록 설계된 산업 표준
- 코드에 존재하는 변수, 자료형, 서브루틴 등을 가리키는 토큰
- 서브루틴 : 하나 이상의 장소에서 필요할 때마다 되풀이돼서 사용될 수 있는 부분적인 프로그램
- 프로그램 내에 정보를 처리하기 위해서 그 정보를 가리킬 방법으로 사용됨
식별자의 규칙
- 영문자(대소문자), 언더스코어(_)로 시작함
- @, $, %등 문장부호(Punctuation)는 사용하지 않음
- 대소문자를 구분함
EX) Apple, APPLE, apple, AppLE
- 단일 언더스코어(_) 시작하는 식별자 : Private
EX) _apple
- 더블 언더스코어(__) 시작하는 식별자 : Strong Private
EX) __my.__value
- 더블 언더스코어(__)로 끝나는 식별자 : 언어에 의해 정의된 특별한 이름
'__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__'등
2) 파이썬의 키워드
키워드
- 예약어(주요 단어)
- 파이썬에서 미리 사용하기 위해 예약해둔 단어들
- 버전별로 추가되거나 삭제가 되기도 함
- 명령 프롬프트를 통해 키워드 확인
PS D:\GIT\GithubBlog> python Python 3.10.11 (tags/v3.10.11:7d4cc5a, Apr 5 2023, 00:38:17) [MSC v.1929 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> import keyword >>> keyword.kwlist ['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
키워드를 알아야 사용하고 있는 키워드를 제외하고 나머지 식별할 수 있는 이름을 지을 수 있음
키워드 목록 리턴받기
키워드 목록 리턴받는 방법
help함수
를 사용하기- help함수
- 메이커 측에서 제공해 주는 자동호출 할 수 있는 함수 중 하나
- 명령어들을 도움말을 통해서 보고 싶을 때 사용하는 함수
- help함수 호출
>>> help() Welcome to Python 3.10's help utility! If this is your first time using Python, you should definitely check out the tutorial on the internet at https://docs.python.org/3.10/tutorial/. Enter the name of any module, keyword, or topic to get help on writing Python programs and using Python modules. To quit this help utility and return to the interpreter, just type "quit". To get a list of available modules, keywords, symbols, or topics, type "modules", "keywords", "symbols", or "topics". Each module also comes with a one-line summary of what it does; to list the modules whose nameor summary contain a given string such as "spam", type "modules spam".
- keywords 키워드 입력하여 목록 리턴 확인
help> keywords Here is a list of the Python keywords. Enter any keyword to get more help. False class from or None continue global pass True def if raise and del import return as elif in try assert else is while async except lambda with await finally nonlocal yield break for not
- help함수
모듈
사용하기모듈
: 파이썬의 기본 단위,파일명.py
파일 자체를 의미>>> import keyword >>> print(dir(keyword)) ['__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'iskeyword', 'issoftkeyword', 'kwlist', 'softkwlist'] >>> print(keyword.kwlist) ['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
Chapter 2 변수와 자료형
1) 변수의 정의와 특징
변수
- 변하는 수
- 값을 저장할 수 있는 메모리상에 공간을 의미
변수의 특징
- 숫자 값, 문자열 값 또는 클래스의 객체를 나타냄
- 리터럴 상수는 변경 가능하지만 변수 이름은 그대로 유지됨
리터럴 상수란
- 모든 값
- 정수, 실수(소수점) 문자(Single Quote), 문자열 등
- 특정 데이터 형식과 레이블을 사용하여 선언됨
- 데이터 형식은 프로그램이 실행될 때 값을 저장하기 위해 할당해야 하는 정확한 메모리 양을 지정함
- 10을 입력할 경우 정수로 인식, int메모리방 생성 > 입력되는 값 관리
- 변수의 명명은 키워드의 규칙을 따름
2) 변수의 값 대입
변수와 리터럴 값 대입은 어떻게 이루어질까
변수와 상수가 mapping이 되어 시스템에 메모리 생성
변수 = 값
- 하나의 값을 여러변수에 값 대입하기
>>> a=b=c=100 >>> a, b, c (100, 100, 100)
- 콤마(,)로 나열하여 값 대입하기
>>> a,b,c = 5,2,'abc' >>> a, b, c (5, 2, 'abc')
주의사항
콤마로 나열한 변수를 한꺼번에 선언하고 이퀄연산자 오른쪽에 상수를 줄 경우 1:1로 값을 리턴해야함
- 변수는 2개인데 값이 3개인 경우 대입 불가
> a,b=1,2,3 Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: too many values to unpack (expected 2)
- 변수는 2개인데 값이 3개인 경우 대입 불가
3) 자료형의 정의
자료형
- 자료가 가지는 형
- 데이터의 구조와 자료형이 가질 수 있는 값, 자료형에 적용할 수 있는 연산 등을 결정
- 파이썬의 모든 값은
데이터 유형
을 가지며, 모두 객체 타입으로 연동함데이터 유형 : 실제 클래스 단위가 됨 > 변수가 클래스의 instance이자 type()을 통해 리턴 가능
Python Data Types
📂 Python Data Types
│
├── 🔹 Primitive Types (기본 타입)
│ ├── 🔢 Numeric Types (숫자형)
│ │ ├── 🔸 int (정수)
│ │ ├── 🔸 float (실수)
│ │ ├── 🔸 complex (복소수)
│ │ └── 🔸 bool (불리언, True/False)
│ ├── 🔤 Text Type (문자열)
│ │ └── 🔸 str (문자열)
│ └── 🔠 None Type (널 값)
│ └── 🔸 None (값이 없음)
│
├── 🔹 Collection Types (컬렉션 타입)
│ ├── 📜 Sequence Types (순서가 있는 자료형)
│ │ ├── 🔸 list (리스트) - 변경 가능
│ │ ├── 🔸 tuple (튜플) - 변경 불가능
│ │ └── 🔸 range (범위)
│ ├── 🔑 Mapping Type (매핑 타입)
│ │ └── 🔸 dict (딕셔너리) - 키-값 쌍 저장
│ └── 🔘 Set Types (집합 타입)
│ ├── 🔸 set (세트) - 중복 없음, 변경 가능
│ └── 🔸 frozenset (변경 불가능한 세트)
│
└── 🔹 Special Types (특수 타입)
├── 🎛️ Bytes & Bytearray
│ ├── 🔸 bytes (바이트) - 변경 불가능
│ └── 🔸 bytearray (바이트 배열) - 변경 가능
├── 🧵 Memory & Buffer
│ ├── 🔸 memoryview (메모리 뷰)
│ └── 🔸 buffer (버퍼, 일부 라이브러리에서 사용)
└── 🏗️ Custom & User-defined Types
├── 🔸 class (사용자 정의 클래스)
├── 🔸 module (모듈)
├── 🔸 function (함수)
└── 🔸 lambda (람다 함수)
4) 파이썬의 Numbers
Numbers | 수치를 관리하는 자료형
- int(signed integers)
- 소수점 없는 정수 관리
- 양수와 음수 처리
- float(floating point real values)
- 정수를 제외한 실수와 지수형 자리
- comples(complex numbers)
- 복소수 처리
- 복소수의 모양 그대로 실수부와 허수부 입력 > complex형 처리
>>> a=100
>>> b=97.9
>>> c=3+4j
>>> print(a, type(a))
100 <class 'int'>
>>> print(b, type(b))
97.9 <class 'float'>
>>> print(c, type(c))
(3+4j) <class 'complex'>
int, float, complex는 class(데이터 타입)로 리턴
클래스 = 속성(값) + 메소드(기능 구현 단위)
- complex, int, float의 속성과 메소드 확인 방법
# class = 속성 + 메소드 >>> print(dir(complex)) ['__abs__', '__add__', '__bool__', '__class__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__mul__', '__ne__', '__neg__', '__new__', '__pos__', '__pow__', '__radd__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__rpow__', '__rsub__', '__rtruediv__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__truediv__', 'conjugate', 'imag', 'real'] >>> print(c.real, c.imag) 3.0 4.0
-
접두어 이용한 값 대입 > 2진수, 8진수, 16진수로 인식 > 10진수로 리턴
Number System Prefix Binary ‘0b’ or ‘0B’ Octal ‘0o’ or ‘0O’ Hexadecimal ‘0X’ or ‘0X’
5) 파이썬의 Strings
문자열
- 문자를 나열해서 관리하는 것
- 문자들의 집합
- '’또는 ““으로 감싸서 선언
문자열을 선언하는 특징
- 단일 인용 부호(‘’)
- 모든 공백 문자(띄어쓰기, 탭 등) 유지 기능
- 이중 인용 부호(“”)
- 이중 부호 안에 들어 있는 단일 인용 부호 > 문자열을 나타내기 위한 기호
-
이중 부호를 출력하고 싶을 경우 > 단일 인용 부호를 감싸서 선언
- 예시코드
# 3. 문자열 str = '파이썬을 함께 공부하자' str02 = "오늘은 '토요일' 입니다." str03 = '오늘은 "토요일" 입니다.' print(str , type(str)) print(str02 , type(str02)) print(str03 , type(str03))
- 실행
>>> str = '파이썬을 함께 공부하자' >>> str02 = "오늘은 '토요일' 입니다." >>> str03 = '오늘은 "토요일" 입니다.' >>> print(str , type(str)) 파이썬을 함께 공부하자 <class 'str'> >>> print(str02 , type(str02)) 오늘은 '토요일' 입니다. <class 'str'> >>> print(str03 , type(str03)) 오늘은 "토요일" 입니다. <class 'str'>
- 역슬래시()
- 단일 인용부호나 다중 인용 부호를 문자열에 포함시킬 수 있는 방법으로 사용
- 역슬래시가 단일 인용 부호나 더블 인용 부호 앞 삽입될 경우 > 문장 자체를 의미
- \와 ‘가 문자열 내에 삽입이 될 경우 > ‘문자 표현
-
\와 “가 문자열 내에 삽입이 될 경우 > “문자 하나를 의미함
-
예시코드
# '\'(역슬래시)를 사용 : print("c:\\test\\a.png") # 파일위치 print("\\30.000") # 원화 표시 print("\"30.000") # '문자 표현 print('\"30.000') # "문자 표현 print('"it\'s" always means "it is" or "it has.\"') # 인용부호(')
-
실행
>>> print("c:\\test\\a.png") c:\test\a.png >>> print("\\30.000") \30.000 >>> print("\"30.000") "30.000 >>> print('\"30.000') "30.000 >>> print('"it\'s" always means "it is" or "it has.\"') "it's" always means "it is" or "it has."
- 다중 인용 부호(“””)
- 3개를 연속으로 해서 한 줄 이상의 문자열을 사용할 경우
- 멀티라인으로 인지
- 이스케이프 코드
- 한 줄 이상의 문자열 또는 출력문을 보기 좋게 정렬
-
그외 특별한 용도로 사용하기 위해 문자열과 함께 사용
이스케이프 코드 설명 \\
백슬래시( \
) 자체를 출력\'
작은따옴표( '
) 출력\"
큰따옴표( "
) 출력\n
개행(newline) \r
캐리지 리턴(Carriage Return) \t
탭(Tab) \b
백스페이스(Backspace) \f
폼 피드(Form Feed) \v
수직 탭(Vertical Tab) \a
벨 소리(Alert, Beep) \0
Null 문자 (ASCII NUL, \x00
)\ooo
8진수(octal) ASCII 문자 ( \101
→A
)\xhh
16진수(hex) ASCII 문자 ( \x41
→A
)\N{name}
유니코드 문자 이름 ( \N{GREEK CAPITAL LETTER DELTA}
→Δ
)\uXXXX
유니코드 16비트 문자 ( \u03A9
→Ω
)\UXXXXXXXX
유니코드 32비트 문자 ( \U0001F600
→ 😀) - 예시 코드
# 멀티라인 multiline = ''' 11111111 22222222 33333333 ''' multiline = """ 11111111 22222222 33333333 """
- 실행
>>> multiline = ''' ... 11111111 ... 22222222 ... 33333333 ... ''' >>> print(multiline) 11111111 22222222 33333333 >>> multiline = """ ... 11111111 ... 22222222 ... 33333333 ... """ >>> print(multiline) 11111111 22222222 33333333
- 문자열과 escape sequence
- python3 내에 모든 문자열 : Unicode 문자열(string)
모든 랭귀지에서 사용 가능한 대부분 문자 포함 가능
- 8진수 또는 16진수 확장 문자열 사용 > ASCII문자 포함 가능
- 8진수 확장 문자 : \와 세 자리 수 8진수 숫자 사용
8진수 확장 문자에 해당하는 ASCII문자 출력
-
16진수 확장 문자 : 8진수와 비슷하지만 “\x”로 시작됨
- 예시코드
# 문자열과 escape sequence print('A', '\101', '\x41') # 문자 A : ASCII문자표 10진수값 65, 8진수 변환: 101, 16진수 변환: 41
- 실행
>>> print('A', '\101', '\x41') A A A
- python3 내에 모든 문자열 : Unicode 문자열(string)
- byte
- Python3에서는 바이트로 취급하고 싶은 문자열 “….”또는 ‘…‘앞에 소문자b 또는 b를 작성함
# byte bytes = b'0123456789abcde' print(bytes, type(bytes))
>>> bytes = b'0123456789abcde' >>> print(bytes, type(bytes)) b'0123456789abcde' <class 'bytes'>
- Python3에서는 바이트로 취급하고 싶은 문자열 “….”또는 ‘…‘앞에 소문자b 또는 b를 작성함
- 자료형 변환(Data Type Casting)
- 대입하는 값에 의해 타입이 지정되어 연산됨
- 객체 간 수치를 이용한 타입 변환은 특정 내장함수를 통해 이뤄짐
함수 설명 int(x, [base])
x
를 정수(int
)로 변환 (기본적으로 10진수,base
를 지정하면 해당 진법의 숫자를 변환)hex(x)
정수 x
를 16진수 문자열로 변환 (0x
접두사 포함)oct(x)
정수 x
를 8진수 문자열로 변환 (0o
접두사 포함)bin(x)
정수 x
를 2진수 문자열로 변환 (0b
접두사 포함)float(x)
x
를 실수(float
)로 변환 (문자열도 변환 가능) - 예제코드
# int(x, base) 사용 예제 print(int("10")) # 10 (기본 10진수) print(int("1010", 2)) # 10 (2진수 -> 10진수 변환) print(int("A", 16)) # 10 (16진수 -> 10진수 변환) # hex(x) 사용 예제 print(hex(255)) # '0xff' # oct(x) 사용 예제 print(oct(255)) # '0o377' # bin(x) 사용 예제 print(bin(255)) # '0b11111111' # float(x) 사용 예제 print(float("3.14")) # 3.14 print(float(10)) # 10.0
- 대입하는 값에 의해 타입이 지정되어 연산됨
Chater 3 연산자
1) 연산자의 정의
연산자(Operater)
- 대상을 두고 계산을 할 때 사용되는 문자
- 계산이 이루어지는 대상 : 피연산자
- 연산자와 피연산자
주어진 식을 계산해서 결과를 나타내는 연산 구성 요소
- 파이썬의 연산자
- 산술연산
- 비교연산
- 논리
- 비트
- 시프트
- 대입
2) 연산자의 구성
산술연산자
산술연산자 | 표현식 | 연산자의 의미 | 예제 | 결과 |
---|---|---|---|---|
= |
A = B | B의 값을 A에 대입한다 | A = 10 |
10 |
+ |
C = A + B | A와 B를 더한 값을 C에 대입한다 | A = 10 + 2 |
12 |
- |
C = A - B | A에 있는 값에서 B에 있는 값을 뺀 다음 C에 대입한다 | A = 10 - 2 |
8 |
* |
C = A * B | A와 B를 곱한 값을 C에 대입한다 | A = 10 * 2 |
20 |
/ |
C = A / B | A에 있는 값에서 B에 있는 값을 곱한 다음 C에 대입한다 | A = 10 / 2 |
5.0 |
% |
C = A % B | A에 있는 값에서 B에 있는 값을 나눈 다음 나머지를 C에 대입한다 | A = 10 % 2 |
0 |
** |
C = A ** B | A를 B만큼 거듭제곱한 후 C에 대입한다 | A = 10 ** 2 |
100 |
// |
C = A // B | Floor Division(나눗셈 후 몫, 소수점 이하 버림) | A = 10 // 3 |
3 |
-
예제코드
A = 10 B = 2 # 덧셈 C = A + B print(C) # 12 # 뺄셈 C = A - B print(C) # 8 # 곱셈 C = A * B print(C) # 20 # 나눗셈 C = A / B print(C) # 5.0 # 나머지 연산 C = A % B print(C) # 0 # 거듭제곱 C = A ** B print(C) # 100 # 몫 연산 (소수점 이하 버림) C = A // 3 print(C) # 3
관계연산자
- 비교연산자
- 두 개의 값을 비교하여 결과를 리턴하는 연산자
- 관계연산자의 특징
- 주로 두 수를 비교하여 수의 크고, 작고, 같은지, 다른지 판단
- 연산자의 결과값이 ‘True’, ‘False’결과값 리턴 > 논리 상수, 부울 상수라 함
- 부울 상수는 논리 연산자에서도 사용됨
산술연산자 | 표현식 | 연산자의 의미 | 예제 | 결과 |
---|---|---|---|---|
< |
A < B | A는 B보다 작으면 True 아니면 False | 5 < 7 | True |
> |
A > B | A는 B보다 크면 True 아니면 False | 5 > 7 | False |
<= |
A <= B | A는 B보다 작거나 같으면 True 아니면 False | 3 <= 5 | True |
>= |
A >= B | A는 B보다 크면 True 아니면 False | 3 >= 5 | False |
== |
A == B | A는 B와 같으면 True 아니면 False | 3 == 5 | False |
!= |
A != B | A는 B와 같지 않으면 True 아니면 False | 3 != 5 | True |
논리연산자
- AND, OR, NOT을 이용하여 각 논리값들 사이에 사용되는 연산자
- 결과값을 True, False로 받을 수 있는 연산자
연산자 | 표현식 | 의미 | 예제 | 결과 |
---|---|---|---|---|
and |
A and B | A와 B 모두 True 이면 True |
True and False |
False |
or |
A or B | A 또는 B 중 하나라도 True 이면 True |
True or False |
True |
not |
not A | A가 True 이면 False , 반대는 True |
not True |
False |
비트연산자
- 피연산자의 각 비트들을 이용해서 연산
연산자 | 표현식 | 의미 | 예제 | 결과 | |
---|---|---|---|---|---|
& |
A & B | A와 B의 비트 단위 AND 연산 | 5 & 3 |
1 |
|
| |
A | B | A와 B의 비트 단위 OR 연산 | 5 | 3 |
7 |
^ |
A ^ B | A와 B의 비트 단위 XOR 연산 | 5 ^ 3 |
6 |
|
~ |
~A | A의 비트를 반전 (1의 보수) | ~5 |
-6 |
|
<< |
A « B | A의 비트를 B만큼 왼쪽으로 이동 (곱셈 효과) | 5 << 1 |
10 |
|
>> |
A » B | A의 비트를 B만큼 오른쪽으로 이동 (나눗셈 효과) | 5 >> 1 |
2 |
대입연산자
- 변수의 값을 저장하기 위한 용도
- 오른쪽 수식을 계산한 값을 왼쪽에 있는 변수에 대입하는 연산자
연산자 | 설명 | 예시 | |
---|---|---|---|
= |
값 할당 연산자 | a = 10 |
|
+= |
왼쪽 변수에 오른쪽 값을 더하고 할당 | a += 5 (a = a + 5) |
|
-= |
왼쪽 변수에서 오른쪽 값을 빼고 할당 | a -= 3 (a = a - 3) |
|
*= |
왼쪽 변수에 오른쪽 값을 곱하고 할당 | a *= 2 (a = a * 2) |
|
/= |
왼쪽 변수에 오른쪽 값을 나누고 할당 | a /= 2 (a = a / 2) |
|
//= |
왼쪽 변수에 오른쪽 값을 나눈 후 몫을 할당 | a //= 2 (a = a // 2) |
|
%= |
왼쪽 변수에 오른쪽 값으로 나눈 나머지를 할당 | a %= 3 (a = a % 3) |
|
**= |
왼쪽 변수에 오른쪽 값만큼 거듭제곱하여 할당 | a **= 2 (a = a ** 2) |
|
&= |
비트 AND 연산 후 할당 | a &= 5 (a = a & 5) |
|
|= |
비트 OR 연산 후 할당 | a |= 3 (a = a |
3) |
^= |
비트 XOR 연산 후 할당 | a ^= 1 (a = a ^ 1) |
|
<<= |
비트 왼쪽 시프트 후 할당 | a <<= 2 (a = a « 2) |
|
>>= |
비트 오른쪽 시프트 후 할당 | a >>= 2 (a = a » 2) |
기타연산자
- is, is not, in, not in 연산자
- Dictionary, 문자열, 리스트, 튜플 등 시퀀스에서 값 확인에 대한 유무 테스트 시 사용
연산자 | 설명 | 예시 |
---|---|---|
is |
두 객체가 동일한 객체를 참조하는지 확인 | a is b (a와 b가 동일한 객체인지 확인) |
is not |
두 객체가 동일한 객체를 참조하지 않는지 확인 | a is not b (a와 b가 동일한 객체가 아닌지 확인) |
in |
왼쪽 값이 오른쪽 시퀀스에 포함되는지 확인 | 'a' in ['a', 'b', 'c'] (문자열 ‘a’가 리스트에 있는지 확인) |
not in |
왼쪽 값이 오른쪽 시퀀스에 포함되지 않는지 확인 | 'd' not in ['a', 'b', 'c'] (문자열 ‘d’가 리스트에 없는지 확인) |
3) 연산자의 우선순위
우선순위 | 연산자 | 설명 |
---|---|---|
1 | () |
괄호 (우선순위 가장 높음) |
2 | ** |
거듭제곱 (우선순위 두 번째) |
3 | +x , -x , ~x |
단항 연산자 (양수, 음수, 비트 NOT) |
4 | * , / , // , % |
곱셈, 나눗셈, 몫, 나머지 연산자 |
5 | + , - |
덧셈, 뺄셈 연산자 |
6 | << , >> |
비트 시프트 연산자 |
7 | & |
비트 AND 연산자 |
8 | ^ |
비트 XOR 연산자 |
9 | | |
비트 OR 연산자 |
10 | == , != , > , < , >= , <= , is , is not , in , not in |
비교 연산자, 멤버십 연산자, 동일성 검사 연산자 |
11 | and |
논리 AND 연산자 |
12 | or |
논리 OR 연산자 |
13 | not |
논리 NOT 연산자 |
14 | = , += , -= , *= , /= , //= , %= , **= , &= , |= , ^= , <<= , >>= |
할당 연산자 |
15 | lambda |
람다 함수 (가장 낮은 우선순위) |
>>> help()
Welcome to Python 3.10's help utility!
If this is your first time using Python, you should definitely check out
the tutorial on the internet at https://docs.python.org/3.10/tutorial/.
Enter the name of any module, keyword, or topic to get help on writing
Python programs and using Python modules. To quit this help utility and
return to the interpreter, just type "quit".
To get a list of available modules, keywords, symbols, or topics, type
"modules", "keywords", "symbols", or "topics". Each module also comes
with a one-line summary of what it does; to list the modules whose name
or summary contain a given string such as "spam", type "modules spam".
help> symbols
Here is a list of the punctuation symbols which Python assigns special meaning
to. Enter any symbol to get more help.
!= + <= __
" += <> `
""" , == b"
% - > b'
%= -= >= f"
& . >> f'
&= ... >>= j
' / @ r"
''' // J r'
( //= [ u"
) /= \ u'
* : ] |
** < ^ |=
**= << ^= ~
*= <<= _
Python 연산자 정리
1. 산술 연산자 (Arithmetic Operators)
연산자 | 표현식 | 의미 | 예제 | 결과 |
---|---|---|---|---|
= |
A = B | B의 값을 A에 대입한다 | A = 10 |
10 |
+ |
C = A + B | A와 B를 더한 값을 C에 대입한다 | 10 + 2 |
12 |
- |
C = A - B | A에서 B를 뺀 값을 C에 대입한다 | 10 - 2 |
8 |
* |
C = A * B | A와 B를 곱한 값을 C에 대입한다 | 10 * 2 |
20 |
/ |
C = A / B | A를 B로 나눈 값을 C에 대입한다 (소수점 포함) | 10 / 3 |
3.3333 |
// |
C = A // B | A를 B로 나눈 몫 (소수점 이하 버림) | 10 // 3 |
3 |
% |
C = A % B | A를 B로 나눈 나머지를 C에 대입한다 | 10 % 3 |
1 |
** |
C = A ** B | A의 B제곱 값을 C에 대입한다 | 2 ** 3 |
8 |
2. 비교 연산자 (Comparison Operators)
연산자 | 표현식 | 의미 | 예제 | 결과 |
---|---|---|---|---|
== |
A == B | A와 B가 같으면 True , 다르면 False |
10 == 10 |
True |
!= |
A != B | A와 B가 다르면 True , 같으면 False |
10 != 5 |
True |
> |
A > B | A가 B보다 크면 True , 작거나 같으면 False |
10 > 5 |
True |
< |
A < B | A가 B보다 작으면 True , 크거나 같으면 False |
10 < 5 |
False |
>= |
A >= B | A가 B보다 크거나 같으면 True |
10 >= 10 |
True |
<= |
A <= B | A가 B보다 작거나 같으면 True |
10 <= 5 |
False |
3. 논리 연산자 (Logical Operators)
연산자 | 표현식 | 의미 | 예제 | 결과 |
---|---|---|---|---|
and |
A and B | A와 B 모두 True 이면 True |
True and False |
False |
or |
A or B | A 또는 B 중 하나라도 True 이면 True |
True or False |
True |
not |
not A | A가 True 이면 False , 반대는 True |
not True |
False |
4. 비트 연산자 (Bitwise Operators)
연산자 | 표현식 | 의미 | 예제 | 결과 | |
---|---|---|---|---|---|
& |
A & B | A와 B의 비트 단위 AND 연산 | 5 & 3 |
1 |
|
| |
A | B | A와 B의 비트 단위 OR 연산 | 5 | 3 |
7 |
^ |
A ^ B | A와 B의 비트 단위 XOR 연산 | 5 ^ 3 |
6 |
|
~ |
~A | A의 비트를 반전 (1의 보수) | ~5 |
-6 |
|
<< |
A « B | A의 비트를 B만큼 왼쪽으로 이동 (곱셈 효과) | 5 << 1 |
10 |
|
>> |
A » B | A의 비트를 B만큼 오른쪽으로 이동 (나눗셈 효과) | 5 >> 1 |
2 |
5. 할당 연산자 (Assignment Operators)
연산자 | 표현식 | 의미 | 예제 | 결과 | ||
---|---|---|---|---|---|---|
= |
A = B | B의 값을 A에 대입한다 | A = 5 |
5 |
||
+= |
A += B | A = A + B 와 동일 | A += 3 |
8 |
||
-= |
A -= B | A = A - B 와 동일 | A -= 2 |
6 |
||
*= |
A *= B | A = A * B 와 동일 | A *= 2 |
12 |
||
/= |
A /= B | A = A / B 와 동일 | A /= 2 |
6.0 |
||
//= |
A //= B | A = A // B 와 동일 | A //= 2 |
3 |
||
%= |
A %= B | A = A % B 와 동일 | A %= 3 |
0 |
||
**= |
A **= B | A = A ** B 와 동일 | A **= 2 |
9 |
||
&= |
A &= B | A = A & B 와 동일 (비트 AND 연산) | A &= 3 |
1 |
||
|= |
A | = B | A = A | B 와 동일 (비트 OR 연산) | A |= 2 |
3 |
^= |
A ^= B | A = A ^ B 와 동일 (비트 XOR 연산) | A ^= 3 |
2 |
||
<<= |
A «= B | A = A « B 와 동일 (비트 왼쪽 이동) | A <<= 1 |
10 |
||
>>= |
A »= B | A = A » B 와 동일 (비트 오른쪽 이동) | A >>= 1 |
2 |
6. 멤버 연산자 (Membership Operators)
연산자 | 표현식 | 의미 | 예제 | 결과 |
---|---|---|---|---|
in |
A in B | A가 B에 포함되어 있으면 True |
'a' in 'apple' |
True |
not in |
A not in B | A가 B에 포함되어 있지 않으면 True |
'x' not in 'apple' |
True |
7. 식별 연산자 (Identity Operators)
연산자 | 표현식 | 의미 | 예제 | 결과 |
---|---|---|---|---|
is |
A is B | A와 B가 같은 객체이면 True |
A is B |
True/False |
is not |
A is not B | A와 B가 같은 객체가 아니면 True |
A is not B |
True/False |