Python3
Python 기초 문법 정리 1편
안녕하세요. NekoNyangYee입니다!! 오늘은 제가 첫 파이썬 입문 기념으로 가장 기초적인 문법 몇가지를 적어보려 합니다.
파이썬이라는 언어를 입문하게 된 계기가 다름이 아닌 코딩테스트 때문인데요ㅋㅋㅋㅋ 솔직히 파이썬은 안하려고 했다가 백준 때문에 반강제로 입문하게되었습니다.
지금부터 설명 할 기초 문법들은 기존에 프로그래밍 언어를 배워보셨던 분들이라면 파이썬 문법 구조만 잘 안다면 쉽게 이해하실 수 있습니다.
0. 출력
print('Hello world!')
#output: Hello world!
네, 이건 사실 별거 없습니다. print()
라는 내장 함수안에 원하는 Hello world! 넣고 Run 해보면 터미널에 Hello world!라고 출력되는 것을 볼 수 있습니다. 그 이외에도 변수, 숫자 등등 여러가지 넣어서 출력이 가능합니다.
1. 변수 할당
변수(Variable) 는 어떠한 데이터를 저장하기 위한 메모리 공간입니다. 보통 다른 프로그래밍 언어들이면 변수명 앞에 데이터 타입을 명시해야합니다.(자바스크립트는 let, const으로 선언)
하지만 파이썬은 선언하지 않고 동적 타입 언어이기에 굳이 선언을 안하고 씁니다.
msg = "파이썬 뉴비"
print(msg)
#output: 파이썬 뉴비
2. 연산
2-1 기본 연산
-
+
: 더하기 연산입니다. -
-
: 빼기 연산입니다. -
/
: 나누기 연산입니다. -
*
: 곱하기 연산입니다. -
//
: 정수 나누기 연산입니다. -
%
: 모듈러 연산, 나눗셈의 나머지만 가져옵니다. -
**
: 거듭제곱 연산입니다.
위의 연산들에 = 을 붙이면 바로 할당이 됩니다.
a = 3
a += 3
print(a)
#output: 6
a %= 5
print(a)
#output: 1
2-2 논리연산
and
# 첫 요소가 거짓인 경우
## 파이썬은 첫 번째 요소의 참 거짓 유무(거짓)를 판단한 후 거짓이므로 and operator의 성질에 따라 첫 번째 요소(거짓)를 반환한다.
0 and 8 #output: 0
False and 8 #output: False
None and 8 #output: None
# 두 요소 모두 참인 경우
## 두 번째 요소까지 보고 참이므로 두 번째 요소(참)를 반환한다.
1 and 3 #output: 3
# 마지막 요소가 거짓인 경우
## 두 번째 요소까지 보고 거짓이므로 두 번째 요소(거짓)을 반환한다.
3 and 0 #output: 0
3 and False #output: False
print(3 and None) #output: None
# 두 요소 모두 거짓인 경우
## 두 번째 까지는 볼 것도 없이 첫 번째 거짓인 요소를 반환한다.
False and 0 #output: False
>>> 0 and False #output: 0
or
# 첫 요소만 거짓인 경우
## 첫 요소가 거짓이어도 두 번째 요소까지 검사한 후 참인 두 번째 요소를 반환한다.
0 or "TRUE" #output: 0
# 두 요소 모두 참인 경우 또는 첫 요소만 참인 경우
## 첫 요소만 봐도 or 연산의 결과를 알 수 있으니 참인 첫 요소를 반환한다.
33 or False #output: 33
33 or 44 #output: 33
# 두 요소 모두 거짓인 경우
## 두 번째 요소까지 검사하고 거짓이므로 거짓인 두 번째 요소를 반환한다.
False or 0 #output: 0
0 or False #output: False
not
: 뒤에 오는 값의 참 거짓 여부를 판단해서 반대로 반환합니다.
2-3 포함 연산
해당 값이 두번 째 인수에 포함이 되느냐 안되느냐의 여부를 따집니다. 반환 결과는 bool
타입 입니다.
-
in
-
not in
2-4 비교 연산
두 인자가 같은 값을 가지는지의 여부를 반환합니다. 비교 연산의 결과는 bool
타입이다.
-
<
-
>
-
>=
-
<=
-
==
-
!=
이 외에도 객체 비교 연산이 있습니다. 두 인자가 같은 객체를 가리키는지 여부를 판단합니다.
-
is
-
is not
a = ["neko"]
b = ["neko"]
print(a == b)
True
print(a is b)
False
print(id(a), id(b))
140483155808128 140483155807616
어라? 뭔가 이상하지 않나요? 분명 두 변수에 담긴 리스트의 값은 같은데 is
연산자를 쓰니 False
가 나왔습니다. 그 이유는 파이썬에서 가변객체는 같은 값이라도 독립성을 보장하기에 각각 다른 객체를 참조합니다. 즉 모든 가변 객체는 identity 가 부여됩니다.
is
와==
의 차이? is는 비교하는 대상이 같은 객체일 경우에True
를 반환, ==는 비교하는 대상의 값이 같은 경우에True
를 반환 ,즉is
가 더 좁은 비교입니다.
2-5 비트 연산자
대상의 바이너리 값들을 비트 별로 논리연산 합니다. 이 부분은 나중에 따로 다뤄보겠습니다. 기초 부분이니 아 이런게 있다만 알아두시면 좋을거 같습니다.
-
&
: 비트 별 AND -
|
: 비트 별 OR -
^
: 비트 별 XOR -
~
: 비트 별 NOT -
<<
: left shift -
>>
: right shift
참고: 위 비트 연산도 =을 붙여 바로 할당 가능합니다.
>>> 9 & 10
8
>>> print(bin(9)[2:]) # [2:] 메서드는 나중에 설명
1001
>>> print(bin(10)[2:])
1010
>>> print(bin(9 & 10)[2:])
1000
>>> 0b1000
8
# 2칸 right shift
>>> a = 10
>>> a >>= 2
>>> a
2
>>> bin(10)
'0b1010'
>>> bin(2)
'0b10'
# 2칸 left shift
>>> a = 10
>>> a <<= 2
>>> a
40
>>> bin(40)
'0b101000'
다음 조건문 부터는 2편에서 계속 설명합니다.