Python

[Python start] 1-1. 파이썬 이해와 변수, 연산자

코딩도어 2021. 11. 26. 15:54

아주 초창기 컴퓨터 언어부터 지금까지 많은 컴퓨터 언어 세대가 지고 뜨기를 반복했습니다.

모든 언어들을 알면 좋겠지만 저처럼 왕초보시라면 파이썬을 먼저 배워보는 것을 추천합니다.

왜냐면 쉽고 간편하고 범용적이기 때문이에요.

 

그럼 파이썬이 어떻게 만들어졌는지 보도록 해요.

파이썬은 1991년 귀도 반 로섬이 만들었어요. 역시 천재들은 진짜 넘사벽인듯 해요. 어쨌거나 파이썬에 특징이 있는데, 큰 특징으로는 플랫폼에 독립적이며, 인터프리터식, 객체지향적, 대화형 언어, dynammic typing이라는 특징이 있어요.

 

특이하죠? 네 이러한 특이점이 철학적인 메시지가 있다는 것을 알고 있나요?

파이썬의 핵심 철학은?

  • Beautiful is better than ugly
  • Explicit is better than implicit
  • Simple is better than complex
  • Complex is better than complicated
  • Readability counts

어떤 느낌이신가요?

파이썬은 범용적이라는 말이 제일 어울리는 언어입니다. 그래서 코딩테스트도 효율적인 여러가지 방법 보다는 큰 문맥은 비슷하게 수렴되죠. 또한 라이브러리도 많아서 많은 기능을 코드를 짜지 않고 해결할 수 있답니다(왕초보 만세!).

 

라이브러리란? 도서관? 제가 문명 게임을 좋아하는데 알렉산드리아 도서관 생각나네요ㅎㅎ

 

각설하고, 라이브러리는 말그대로 우리가 이미 짜여져 있는 알고리즘을 가져다 사용하는 것인데요.

 예를 들면, 직렬화, CSV파일 처리, 수식화, UI등 많은 기능이 있습니다.

그런데 파이썬은 기본적으로 같이 배포되는 라이브러리가 있어요. 표준 라이브러리라고 하는데요.

행렬을 연산하는 넘파이(Numpy), HTML/XML 라이브러리 뷰티풀 수프(Beautiful soup), 등등 입니다.

 

전체적으로 감이 잡히시나요? 사실 작동원리나 깊은 학문적 내용은 저도 잘몰라요. 다만 우리가 사용하는데 얼마나 편리하냐라는 주제라 생각하시면 됩니다.

 

□문법

 

문법의 아주 특징적인 부분은 들여쓰기입니다. C언어에서는 괄호를 사용하여 블록 구조를 생성합니다. 하지만 파이썬에서는 들여쓰기로 블록 구조를 만들어 제 생각에는 더욱 효율적입니다.

 

이제 이정도면 파이썬이 이런 언어이구나 정도는 생각이 들 것 같아요.

 

실제 어떠한 개념들이 들어있는지 시작해보아야죠.

 

□변수

 

학생일 때, 다들 '=' 수식을 많이 보셨을거에요.

지겹도록 봤다고 볼 수 있죠.

어떤 뜻이였나요?

같다는 뜻이였습니다.

1+3=?

4이죠? 이런식으로 수학적으로는 양변이 같은 값을 가진다는 의미입니다.

 

그런데 파이썬에서는 다릅니다.

파이썬에서는

X+1 = X

어떻게 보이시나요?

네 수학적으로는 해가 존재하지 않습니다.

 

파이썬에서는 '='의 의미는 같다 아닙니다.

 

'='은 외쪽의 변수에 오른쪽의 값을 대입한다는 뜻입니다.

예제로 알아볼게요.

number = 10    #number라는 변수에 10의 값을 대입
number2 = 10.01    #number2라는 변수에 10.01의 값을 대입
Hello_World = "Hello World!"    #Hello_World라는 변수에 문자열 "Hello World!"를 대입

눈 확 보이시나요? 처음에는 수학과 헷갈리실 수도 있습니다. 저 같은 경우 많이 보니까 괜찮아지더라구요.

 

□연산자

 

연산은 덧셈(+), 뺄셈(-), 곱셈(*), 거듭제곱(**)과 나누셈(/, //, %)으로 나눌 수 있어요.

a = 100
b = 300
c = 2		#변수 선언

x = a + b
x1 = a - b
x2 = a * b
x3 = a ** c

이렇게 코딩을 짜고 print(x, x1, x2, x3)를 하면?

print(x,x1,x2,x3)
400 -200 30000 10000

네 이렇게 연산이 가능합니다.

 

나눗셈도 봐야겠죠?

# 변수는 위와 동일

y1 = a / c		# 소수
y2 = a // c		# 정수
y3 = a % c		# 나머지

print(y1,y2,y3)
50.0 50 0