cat-1cat-2cat-3cat-4cat-5cat-6

Python3

Python 기초 문법 정리 1편

11:31

thumbnail01

안녕하세요. 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편에서 계속 설명합니다.

Next.js 13 Server Components가 무엇일까? 2편다음 포스트

Next.js 13 Server Components가 무엇일까? 2편

Next.js 13 Server Components에 관한 이야기 2번째 입니다.
강릉 여행 -  1일차 (05/21) 리포스트이전 포스트

강릉 여행 - 1일차 (05/21) 리포스트

강릉 여행 - 1일차 (05/21) 리포스트 합니다.