서론
대상독자
기존 자바스크립트 기본 문법에 대해서 알지만, 새롭게 파이썬을 학습하려는 개발자
학습목표
자바스크립트와의 문법적 차이를 알며, 실제 파이썬으로 코딩할 수 있다.
본론
변수선언
먼저 자바스크립트와는 다르게, 파이썬에는 var, const, let 과 같은 변수선언문이 없습니다. 따라서 변수에 값을 할당 할 때, 변수 이름만 적고 값을 할당해주면 됩니다. 아래와 같이 말이죠. 또 기본적으로 let과 var처럼 값을 재할당 할 수 있습니다.
name = 'joonfluence'
print(name) // joonfluence
name = 'heyJoon' // heyJoon
기본 자료형
자바스크립트 자료형과의 차이
자바스크립트에는 7가지 자료형이 있습니다. 6가지 기본 자료형(Primitive Type)에 속하는 number, string, boolean, undefined, null, Symbol과 1가지 참조 자료형(Reference Type)인 Object가 있습니다. Object에는 자주 활용하는 Array도 속하죠. 이에 반해, 파이썬은 숫자형, 문자열 자료형, 리스트 자료형, 튜플 자료형, 딕셔너리 자료형, 집합 자료형, 불 자료형. 총 7가지 자료형이 있습니다. 자바스크립트와 차이나는 부분만 설명 드리고 넘어가도록 하겠습니다.
먼저 파이썬의 숫자형은 파이썬의 자료형은 자바스크립트에 비해 조금 더 세분화 되어있습니다. number로만 나타내는 자바스크립트와는 다르게, 정수형(integer), 실수형(float)으로 구분됩니다. 문자열 자료형은 자바스크립트의 String, 리스트 자료형은 Array와, 딕셔너리 자료형은 Object와, 불 자료형은 boolean과, 튜플 자료형은 타입스크립트의 Tuple과 같습니다. 튜플을 처음 듣는 분들을 위해 설명 드리자면, 튜플 자료형은 Array는 Array인데, 추가나 삭제 등 변경에 제약이 있는 형태를 말합니다.
마지막으로 집합 자료형은 저도 처음 들어본 개념이라, 자바스크립트와 겹치는 부분이 있는지 찾아보며 진행했는데요. ES6에 추가된 Set 자료형과 유사합니다. Set 자료형은 주로 교집합, 합집합, 차집합을 구할 때 유용하게 활용되며, 이는 자바스크립트의 Set도 마찬가지입니다. list와 tuple과는 다르게, 중복을 허용하지 않고 순서가 없다(Unordered)는 특성을 갖고 있습니다.
연산자
1) == 연산자(동등 연산자)가 자바스크립트의 ===(equal operator)와 같은 역할을 합니다. != 연산자도 마찬가지입니다.
2) // 연산자 : 나누기 연산 후 소수점 이하의 수를 버리고, 정수 부분의 수만 구합니다. 참고로 / 연산자를 사용하면, 딱 떨어지는 수로 나눈다고 하더라도 다음과 같이 계산됩니다. 2 / 2 = 1.0
.
조건문
조건문에는 거의 차이점이 없습니다. else if를 elif로 쓰고 들여쓰기해서 처리해주는 것 빼곤 일치하거든요. 단 들여쓰기를 잘해줘야 합니다. 만약 if 아래 해당하는 조건인데 들여쓰기를 해주지 않으면, 해당 조건에 걸리지 않게 됩니다.
x = 20
if x == 10:
print('10입니다.')
elif x == 20:
print('20입니다.')
else
print('10도 20도 아닙니다.')
반복문
while
treeHit = 0
while treeHit < 10:
treeHit = treeHit +1
print("나무를 %d번 찍었습니다." % treeHit)
if treeHit == 10:
print("나무 넘어갑니다.")
while은 거의 비슷합니다.
for loop
test_list = ['one', 'two', 'three']
for i in test_list:
print(i)
for 문은 for in 문으로 쓰고 참조하는 자료형에는 위의 예제처럼 리스트만 들어가는 것은 아닙니다. 투플이나 문자열도 순회할 수 있습니다.
add = 0
for i in range(1, 11):
add = add + i
print(add)
또한 범위 제한은 range 함수로 둘 수도 있습니다.
입출력
입력
파이썬의 가장 큰 장점 중 하나라고 생각하는 부분인데요. 아마 저 뿐 아니라, 많은 분들도 공감하실 것 같습니다. 입력값을 받기가 정말 편합니다. nodejs에선 stdin(standard input)을 불러오거나 readline과 같은 모듈을 불러와서 처리해줘야 해서 복잡한 면이 많습니다. 파이썬에선 input 함수만 써주면 됩니다. 참 편리하지 않나요?
a = input()
b = input("숫자를 입력하세요: ")
출력
print(a)
이것도 아주 간편합니다.
함수
def display(name):
print("name : "name)
display("joonfluence"); // name : joonfluence
function 예약어 대신 def를 써주고 :을 마지막에 붙여줍니다. 또한 들여쓰기를 해줍니다.
리스트
Javascript의 array와 같은 역할을 합니다.
- 생성 : append(value), push 메소드와 같다.
- 삭제 : pop().
- 수정 : 인덱스 값 참조 후, 변경.
- 길이 : len 함수.
- 리스트 간 합치기 : + 연산자 사용하면 리스트가 합쳐집니다. 반면, 같은 경우. 자바스크립트에서는 stringify 되어 값이 출력됩니다.
// 생성
a = [1, 2, 3]
a.append(4)
a // [1, 2, 3, 4]
// 삭제
a = [1, 2, 3]
del a[1]
a // [1, 3]
// 수정
a = [1, 2, 3]
a[2] = 4
a // [1, 2, 4]
// 길이
a = [1, 2, 3]
len(a) // 3
// 리스트 간 합치기
a + a // [1, 2, 3, 1, 2, 3]
문자열
나누기 : split, 자바스크립트 내장함수와 기능이 일치합니다.
a = 'abc def ghi';
a.split() // ['abc', 'def', 'ghi']
name = "chris"
print(f'name : {name}')
또한 문자열 앞에 f 문자열(포맷 문자열 리터럴)을 쓰면 자바스크립트 템플릿 리터럴과 같은 기능을 수행할 수 있습니다.
집합자료형
앞서 언급했듯, 집합자료형은 중복을 허용하지 않는 자료형이고 합집합과 교집합 등 다양한 집합 연산을 처리하기에 적합한 자료형입니다.
s1 = set([1,2,3])
s1 // {1, 2, 3, 4}
s2 = set([4,5,6])
s2 // {4, 5, 6, 7}
// 교집합
s1 & s2 // {4}
// 합집합
s1 | s2 // {1, 2, 3, 4, 5, 6, 7}
// 차집합
s1 - s2 // {1, 2, 3}
// 값 추가
s1.add(5)
// 값 삭제
s1.remove(5)
// 값 수정
s1.update(5)
기타
마지막으로 언급하지 못한 부분들을 짧게 이야기하고 넘어가려 합니다.
1) null 대신 None을 사용한다.
2) not 예약어는 느낌표(부정 연산자)의 역할을 해줍니다. 그렇다고 ! 연산자를 사용할 수 없는 것은 아닙니다.
또한 이 외에도 클래스/모듈/패키지/내장함수 등등 파이썬에서 다뤄볼만한 주제가 많지만 오늘은 기본문법만을 다루는 것이기 때문에, 추후에 해당 포스트에 내용을 추가하거나 추가 포스팅을 통해 따로 심도있게 다뤄보도록 하겠습니다. 오늘도 읽어주셔서 감사합니다.
참조 사이트
https://wikidocs.net/book/1
https://medium.com/@hongkevin/js-5-es6-map-set-2a9ebf40f96b
'Language > Python' 카테고리의 다른 글
[Python] Python에서 정렬하는 방법 (sort, sorted, heapq) (0) | 2023.10.11 |
---|---|
[예외처리] Python 에러 종류와 예외처리 (0) | 2022.03.27 |
[Python] 코딩테스트를 위한 입출력 초간단 정리 (0) | 2022.02.23 |
댓글