[Home] Python으로 돌아가기

용어 - 구문, 주석, 변수, 모듈, 패키지, 연산자. 괄호

[참조]

📖 목차

(1) 키워드(keyword)

(2) 식별자(identifier): 변수명 만들기

(3) 구문(statement)의 들여쓰기(indentation)

(4) 주석(comment)

(5) 변수(variable)

(6) 데이터 타입(data type)

(7) 입출력(input/output)

(8) 모듈(module)

(9) 패키지(package), import

(10) 연산자(operator)

(11) 여러 줄 → 한줄(;); 한 줄 → 여러 줄(\) 연속; 줄바꾸기

(12) 괄호: 소괄호, 중괄호, 대괄호

 


(1) 키워드(keyword)

(2) 식별자(identifier) - 변수명 만들기

(3) 구문(statement) - 들여쓰기(indentation)

(4) 주석(comment)

(5) 변수(variable)

(6) 데이터 타입(data type)

(7) 입출력(input/output)

(8) 모듈(module), import

(9) 패키지(package)

(10) 연산자(operator)

1) 산술 연산자 (Arithmetic Operators): +, -, *, /, %, //, **

//는 나눈 후, 나온 값보다 같거나 작은 최대 정수를 반환한다. MATLAB의 floor(/) 함수에 해당한다.

기능 MATLAB(1) PYTHON C++ F77, F90/95(2)
덧셈 + + + +
뺄셈 - - - -
곱셈 * 및 .* * * *
나눗셈 / 및 ./ / / /
지수 ^ 및 .^ pow(x, y) 또는 ** pow(x, y) **
나머지 % %
증가분 i += 1 i++
감소분 i -= 1 i--
그룹 구분 ( ) ( ) ( ) ( )

(1) MATLAB에서는 연산자 앞의 ‘.’는 요소별(또는 스칼라) 연산이 필요할 경우 사용한다.
(2) F90/95에서는 필요한 경우 새로운 연산자를 정의하여 사용할 수 있다.
(3) xy는 함수로 표현되며, pow(x, y)로 나타낸다.

[Note] 파이썬에서의 + 연산자

가. 숫자형 자료


# 덧셈 연산
a = 5
b = 3
result = a + b  # result는 8이 된다.

나. 문자열


# 문자열 연결(concatenation)
string1 = "Hello, "
string2 = "world!"
result = string1 + string2  # result는 "Hello, world!"가 된다.

다. 시퀀스 자료형: 리스트, 튜플 등


# 두 시퀀스를 이어붙인 새로운 객체 생성
list1 = [1, 2, 3]
list2 = [4, 5, 6]
result = list1 + list2  # result는 [1, 2, 3, 4, 5, 6]이 된다.

라. 집합 자료형


# '+' 연산자는 집합에 대해 지원되지 않음
# 집합의 병합에는 union() 메서드 또는 | 연산자를 사용할 것
set1 = {1, 2, 3}
set2 = {3, 4, 5}
result = set1 + set2  # 오류 발생

마. 주의 사항

+ 연산자는 동일한 자료형 간에만 사용할 수 있으며, 서로 다른 자료형 간에는 지원되지 않는다. 예를 들어, 정수형과 문자열을 +로 연결하려 할 경우에는 TypeError가 발생한다. 이러한 경우에는 자료형을 명시적으로 변환한 후 연산을 수행해야 한다.

2) 비교 연산자 (Comparison Operators)

비교 연산자는 두 피연산자의 관계를 비교하여 논리값 True 또는 False를 반환한다. 조건문이나 반복문 등에서 자주 활용되며, 연산의 결과는 항상 불리언(boolean) 값이다.


a = 10
b = 5

print(a > b)   # True: a가 b보다 크다
print(a < b)   # False: a가 b보다 작다
print(a == b)  # False: a와 b가 같다
print(a != b)  # True: a와 b가 같지 않다
print(a >= b)  # True: a가 b보다 크거나 같다
print(a <= b)  # False: a가 b보다 작거나 같다

3) 논리 연산자 (Logical Operators)

논리 연산자는 불리언 연산을 수행하며, 조건을 결합하거나 부정하는 데 사용된다. and, or, not 세 가지 연산자가 존재하며, 복합 조건을 평가할 때 널리 사용된다.


x = True
y = False

print(x and y)  # False: 둘 다 True일 때만 True
print(x or y)   # True: 둘 중 하나라도 True이면 True
print(not x)    # False: x가 True이면 not x는 False

논리 연산자는 조건문과 결합하여 복잡한 판단을 수행할 수 있도록 하며, 다른 비교 연산자와 함께 자주 활용된다.

[Note] 비교 및 논리 연산자 비교표 (언어별)

기능 MATLAB PYTHON C++ F90/95 F77
Equal to (같음) == == == == .EQ.
Not equal to (같지 않음) ~= != != /= .NE.
Less than (보다 작음) < < < < .LT.
Less than or equal to (작거나 같음) <= <= <= <= .LE.
Greater than (보다 큼) > > > > .GT.
Greater than or equal to (크거나 같음) >= >= >= >= .GE.
Logical NOT (부정) ~ not ! .NOT. .NOT.
Logical AND (논리곱) && and && .AND. .AND.
Logical inclusive OR (논리합) || or || .OR. .OR.
Logical exclusive OR (배타적 논리합) xor ^ .XOR. .XOR.
Logical equivalent (논리적 동치) == == == .EQV. .EQV.
Logical not equivalent (논리적 비동치) ~= != != .NEQV. .NEQV.

(1) Bit logical AND, exclusive OR, OR, NOT에 대해서는 &, ^, |, ~ 연산자를 사용한다.

4) 비트 연산자 (Bitwise Operators)

비트 연산자는 정수의 이진 표현을 기준으로 각 비트 단위 연산을 수행한다. 다음과 같은 연산자가 존재한다:

5) 할당 연산자 (Assignment Operators)

할당 연산자는 변수에 값을 대입하거나 기존 변수의 값을 연산하여 갱신하는 데 사용된다. 기본적인 할당 연산자인 = 외에도, 다양한 축약형 연산자가 존재한다.

연산자
= a = b
+= a += ba = a + b를 의미함
-= a -= ba = a - b를 의미함
*= a *= ba = a * b를 의미함
/= a /= ba = a / b를 의미함
%= a %= ba = a % b를 의미함
//= a //= ba = a // b를 의미함
**= a **= ba = a ** b를 의미함

6) 콜론 연산자 (Colon Operator: :)

콜론 연산자 :는 배열이나 시퀀스 자료형에서 범위를 지정하거나, 슬라이싱(slicing) 구문을 표현하는 데 사용된다. Fortran(F90/95), MATLAB, Python 등 다양한 언어에서 활용되며, 언어에 따라 사용 범위와 문법이 다소 상이하다.

구문 F90/95 MATLAB/PYTHON 용법 F90/95 MATLAB/PYTHON
기본 형식 B:E:I(1) B:I:E 1. 배열 요소 위치 사용 가능 사용 가능
≥ B B: B: 2. 문자열에서 문자 위치 사용 가능 사용 가능
≤ E :E :E 3. 반복문 제어 사용 불가 사용 가능
전체 영역 : : 또는 ... (생략기호)(3) 4. 배열 요소 생성 사용 불가 사용 가능
마지막 인덱스 - -1(2) 사용 불가 사용 가능

(1) B = 시작값(beginning), E = 끝값(ending), I = 증분값(increment)
(2) 배열의 마지막 인덱스: Python에서는 -1을 사용할 수 있다.
예시:


c = array([[1, 2, 3], [4, 5, 6]])
c[-1, :]   # 결과: array([4, 5, 6])
c[:, -1]   # 결과: array([3, 6])
(3) 생략기호(Ellipsis): 배열의 전체를 나타낼 때 Python에서는 ...을 사용할 수 있다.
예시:

c = array([[1, 2, 3], [4, 5, 6]])
c[...]     # 결과: array([[1, 2, 3], [4, 5, 6]])

7) 특수 연산자 (Special Operators)

파이썬에서는 다음과 같은 특수 연산자를 제공한다. 이들은 객체 간의 관계나 포함 여부 등을 판단하는 데 사용된다.

8) 행렬 곱 연산자 (Matrix Multiplication Operator: @)

파이썬의 @ 연산자는 2차원 배열(Numpy 배열 등) 간의 행렬 곱을 수행하는 데 사용된다. 이 연산자는 파이썬 3.5부터 도입되었으며, numpy.dot() 또는 matmul() 함수와 같은 기능을 수행한다.


# 예시: 행렬 곱
>>> c = array([[1, 2, 3],
               [4, 5, 6]])
>>> b = c
>>> c @ b.T
Out[19]: 
array([[14, 32],
       [32, 77]])

(11) 여러 줄 → 한 줄; 한 줄 → 여러 줄(\) 연속; 줄바꾸기

1) 한 줄을 여러 줄로 나누어 작성할 경우 (역슬래시 \ 사용)


# 역슬래시를 사용하여 여러 줄로 분리
a = 1 + 2 + 3 + \
    4 + 5 + 6 + \
    7 + 8 + 9

2) 괄호를 사용하는 경우에는 자동으로 줄바꿈이 허용됨


# 소괄호 사용
a = (1 + 2 + 3 +
     4 + 5 + 6 +
     7 + 8 + 9)

# 리스트를 여러 줄로 작성
my_list = [
    1, 2, 3,
    4, 5, 6
]

# 딕셔너리를 여러 줄로 작성
my_dict = {
    "name": "Alice",
    "age": 30
}

3) 여러 줄을 한 줄로 작성할 경우 (세미콜론 ; 사용)


# 세미콜론을 사용하여 여러 구문을 한 줄에 작성
a = 1; b = 2; c = a + b

(12) 괄호: 소괄호 (), 중괄호 {}, 대괄호 []

1) 소괄호 ( )


# 함수 호출
print("Hello")

# 수식 우선순위를 명확히 하기
result = (2 + 3) * 4

# 튜플 생성
my_tuple = (1, 2, 3)

# 여러 줄 표현 시 사용
total = (
    1 + 2 + 3 +
    4 + 5 + 6
)

2) 중괄호 { }


# 딕셔너리 생성
person = {"name": "Alice", "age": 30}

# 집합 생성
unique_numbers = {1, 2, 3, 2}

# f-string 표현식에 변수 삽입
name = "Bob"
greeting = f"Hello, {name}!"

3) 대괄호 [ ]


# 리스트 생성
fruits = ["apple", "banana", "cherry"]

# 리스트 인덱싱 
first_fruit = fruits[0]

# 리스트 슬라이싱
some_fruits = fruits[0:2]

# 리스트 컴프리헨션
squares = [x**2 for x in range(5)]