1. 변수 선언 및 값 대입

1
2
3
4
5
num1 = 3
str1 = '문자열'
num2, num3 = 5, 8
num2, num3 = num3, num2
num4, num5 = [1, 2]

- 파이썬에서는 C의 int, char나 자바스크립트의 var 같은 변수선언 예약어가 따로 없으며, 변수에 값을 대입하는 식을 처음 쓸 때가 곧 그 변수를 선언할 때와 같다. (자바스크립트의 var 같이 선언하지도 않은 변수를 사용할 수는 없다.)

- 파이썬에는 쉼표(,)를 이용해 동시에 여러 변수를 선언하며 각 변수에 각각 다른 값을 대입할 수 있다. 이 특성을 이용하여, 두 변수의 값을 한 줄의 대입식으로 서로 교환하게 할 수 있다.

- 쉼표로 동시에 여러 변수에 값을 대입할 때에는, 우변에 변수들뿐 아니라 iterable 객체를 두는 것도 가능하다. 이때 우변에 오는 객체의 크기는 좌변에 적은 변수 개수와 동일해야 한다.

- 파이썬의 객체는 ‘변경가능’ 여부에 따라 mutable과 immutable 객체로 나눌 수 있다. immutable 객체는 값을 재정의하면 그 객체를 담고 있던 변수명이 지정하는 주소값이 달라지며, int, str, tuple 등의 객체가 이에 해당한다. 한편 mutable 객체는 이를 구성하는 원소의 값을 변경하더라도 그 변수명이 지정하는 주소값이 변하지 않으며 list, dict 등이 이에 해당한다.

  • 보통 iterable 객체가 immutable한 경향이 있지만 모든 iterable 객체가 immutable한 것은 아니다. 대표적으로 str, tuple은 iterable하지만 mutable하다.

  • 한편, iterable 객체 중 정수형 인덱스를 통해 각 원소에 접근할 수 있는 객체를 sequence 객체라 한다.

2. 개행

1
2
3
num1 = 3
num2 = 5
print( num1 + num2 )

- 파이썬에서는 원칙적으로 구문과 구문을 구분하는 특수문자(C 유사 언어들의 세미콜론 등)를 사용하지 않으며 한 줄에 하나의 구문만 작성할 수 있다. 다만 괄호를 사용하는 경우에는 그 안에서의 개행이 자유롭게 허용되며, 그 밖에도 개행이 허용되는 여러 사례가 있다.

3. 파이썬에만 있는 연산자

1) 거듭제곱 연산자

1
num1 = 2 ** 10

- 파이썬에서는 거듭제곱 연산을 ** 연산자를 통해 할 수 있다. 예를 들어 위 코드의 num1 변수에는 (2 ^ 10) = 1024가 저장된다.

- 제곱근 연산을 하고자 할 경우에는 ** 연산자 뒤에 0.5를 넣으면 된다.

2) 몫을 구하는 연산자

1
num1 = 16 // 5

- 파이썬에서는 정수 나눗셈 연산 시 소수점을 버리고 몫만 취하는 연산을 // 연산자를 통해 할 수 있다. 예를 들어 위 코드의 num1 변수에는 3이 저장된다.

3) 논리연산자들

- 비트연산자(&, |, ^, <<, »)의 경우 파이썬과 C가 동일하지만, 논리연산자의 경우 차이가 있다. 파이썬의 논리연산자는 &&, ||, ! 대신 and, or, not을 쓴다.

4. 들여쓰기

- 파이썬에서는 조건문, 반복문, 함수 같은 구문들의 내부 내용을 작성할 땐 최소 한 칸 이상 들여쓰기를 해야 하며 들여쓰기를 하지 않으면 그 내용이 그 구문의 내부 내용으로 작성된 것으로 인정되지 않는다.

- 한 구문의 내부 내용끼리는 모두 들여쓰기 칸수가 동일해야 한다. (1)바로 윗줄에 자신만의 내부 내용을 갖는 구문이 있는 것도 아닌데 이유 없이 다른 구문들보다 더 들여쓰기가 되어 있다면 에러가 발생한다. (2)다른 구문들보다 들여쓰기를 덜했다면 구문의 내부 내용이 아니라 그 바깥 내용으로 간주된다.

- 서로 다른 내부내용끼리는 들여쓰기 칸수가 달라도 무방하다. 예를 들어, 다음 코드는 에러가 발생하지 않는다.

1
2
3
4
if True:
       print("Good!")
else:
 print("Bad..")

5. 조건문

1
2
3
4
5
6
a=3
if a % 3 == 0 : 
    print("0")
elif a%3==1: 
    print("1")
else: print("2")

- if, 조건식, 콜론(:)으로 구성된다. 조건에 부합하는 경우 실행되는 내부 내용은 콜론 바로 뒤에 올 수도 있고, 그 다음줄에 올 수도 있다. (단, 콜론 바로 뒤에 구문을 썼다면 들여쓰기를 했다 해도 바로 다음줄에 또 다른 구문을 쓸 수는 없다.)

6. 3항 연산자

1
2
a=3
print("It's even.") if a%2==0 else print("It's odd.")

- 조건식을 if와 else 사이에 쓰고 if와 else의 양 옆으로 조건식이 참일 때 실행할 내용과 거짓일 때 실행할 내용을 적는다. 이들 모두 한 줄에 적을 때에만 3항 연산자를 쓴 것으로 인정된다.

- 3항 연산자를 쓸 땐 if와 else 예약어를 모두 빠짐없이 사용해야 하며, 어느 하나를 생략하는 경우 에러가 발생한다.

7. 클래스 선언

1
2
3
4
5
6
7
8
9
10
11
class CLASS1:
    def __init__(self, num):
        self.num = num

    def plus(self, num):
        return self.num + num

c1 = CLASS1(10)
print(c1.plus(5))

- class 예악어 + 클래스명 + 콜론으로 구성되며, 멤버함수명으로 __init__을 쓸 경우 그 멤버함수가 생성자로 지정된다.

- 클래스의 모든 멤버함수의 첫 번째 인자는 반드시 self를 써야 하며, 이는 그 클래스형 객체 자기 자신을 뜻한다.

- 사용자가 직접 선언하여 사용하는 클래스 변수는 mutable하다.