운이 정말 좋게도, SSAFY에 합격을 하고 교육을 받을 수 있게 되었다. 두근거리는 마음으로 놀고 있었는데, 사전 교육을 받아야할 내용이 있다는 것을 뒤늦게 알게 되었고 지금 부랴부랴 준비하고 있다!
기존에 자바스크립트 언어만 공부를 했던 터라 비슷한 듯 다른 파이썬을 공부하고 있다.
파이썬은 자바스립트와 마찬가지로 '컴파일러'가 아닌 '인터프리터'방식으로 컴퓨터에 코딩한 내용이 전달된다.
간단하게 이야기하면, '인터프리터'는 한줄 한줄 대화하는 형식으로 코드를 전달하고 컴퓨터가 실행하는 방식! 반면 '컴파일러'는 해당 명세서 등 전체를 작성하고 이를 컴퓨터에 전달하고 한번에 실행하는 방식이라고 생각하면 될 것 같다.
참고자료
https://youtu.be/Dx2tSsd3aFc
1. divmod()
나누기 후 몫과 나머지를 구해준다
divmod(20,3) # (6,2)
2. split()
문자열을 나눠주는 역할로, 자바스크립트와 동일하지만 추가적인 부분만 설명하고 넘어가겠다.
'0 100 200'.split() = ['0','100','200']
# 파이썬은 배열을 리스트라고 부르는 것? 같다
a,b,c = '0 100 200'.split()
# 이렇게 바로 할당도 가능하다
# => a = '0',b = '100', c = '200'
3. 반복문 , 조건문
자바스크립트와 달리 파이썬에서는 소괄호, 중괄호 없이 ':'으로 표현한다.
# while 반복문
i=0
while i<=3:
print(i)
print(f'{i}번째 출력') # 파이썬에서는 자바와 달리 변수를 문자열내 출력할 때 이처럼 작성
i+=1
# for 반복문
for n in range(1,11):
print(f'{n}번째 출력')
# 1 2 3 4 5 6 7 8 9 10
# 조건문
a = 123
b = 1230
if a>b :
print('a가 b보다 크다')
elif a<b :
print('b가 a보다 크다')
else :
print('서로 같다')
4. and, or 연산자
자바스크립트에선 && , || 처럼 표현했지만, 파이썬에서는 and, or 그대로 적으면 된다
5<=a and a<=15
# 이를 한번에 표현도 가능
5 <= a <= 15
# 자바스크립트보다 편한 것 같음..
5. round()
반올림해주는 매서드
round(5.12345,4) # 5.1235
6. match-case 문
반복문 내에서 조건 걸어주는 매서드
for n in range(1,101):
match(n%3,n%5):
case(0,0):
print("FizzBuzz")
case(0,_): # case문에서 _은 아무 값이나 상관없다는 의미
print("Fizz")
case(_,0):
print("Buzz")
case _: # 마찬가지로 그 밖의 모든 경우를 의미
print(n)
7. for-else
반복문과 else를 같이 사용하는 것
for x in [1,2,3,4]:
print(x)
else:
print('리스트의 원소를 모두 출력했어요')
# 1 2 3 4 리스트의 원소를 모두 출력했어요
# break와 같이 사용되는 경우
for x in [1,2,3,4]:
if x % 3 :
print(x) # x가 3의 배수가 아니면 출력
else :
break # x가 3의 배수이면 반복문에서 빠져나감
else:
print("리스트의 원소를 모두 출력했어요")
# 1 2
# break로 반복문이 종료되고, 그럴 때는 else 블록이 실행되지 않음
8. while-else
이 친구도 위 for-else와 마찬가지로 while문이 break될 경우에는 else 블록이 실행되지 않는다.
countdown = 5
while countdown > 0:
print(countdown)
countdown -= 1
if input() =='중단':
break
else:
print('발사!')
# 5 4 3 중단
9. 함수선언
JS와는 많이 다르다. def를 통해 선언한다. return을 통해 반환하는 것 동일!
def i_am_plus_function(a):
return a+a
10. range()
리스트를 만들어주는 함수. js에서 array()와 비슷한 역할?!
range(5)
#[0,1,2,3,4]
11. map()
함수와 리스트를 인자로 받고, 리스트로부터 원소를 하나씩 꺼내서 함수를 적용시킨 후, 결과를 새로운 리스트에 담아준다.
map(함수,리스트)
12. filter()
함수와 리스트를 인자로 받고, 리스트에 들어있는 원소들을 함수에 적용시켜서 결과가 참(true)인 값들로 새로운 리스트를 만들어 준다.
filter(함수,리스트)
13. 람다(lambda)
함수를 딱 한줄만으로 만들게 해줌.
def hap(x,y):
return x+y
hap(10,20)
# 30
# 위 hap()함수를 람다 형식으로 표현
(lambda x,y : x+y)(10,20)
# 30
람다를 이용한 map()
list(map(lambda x:x**2, range(5)))
# [0,1,4,9,16]
람다를 이용한 filter()
list(filter(lambda x:x<5 , range(10)))
# [0,1,2,3,4]
14. 전역변수, 지역변수
: JS와 개념은 동일했다. 함수 내에서만 선언되어 사용되는 것은 지역변수, 함수 밖 전역에서도 사용되는 변수는 전역변수이다.
하지만 파이썬에서는 함수내에서 전역변수로 선언하는 방법이 있는데, 아래와 같다.
def e_is_10():
global e
e = 10
print('e값은 ', e,'입니다.')
e_is_10()
# e값은 10 입니다.
e
# 10
str.strip(" I am boy. ")
# "I am boy."
자바스크립트 이외의 언어를 새로 배우는 것은 처음 겪는 경험이다.
기존에 언어를 배운 경험이 있다보니 이해가 빠르게 되는 부분도 있지만, 또한 조금씩 조금씩 다른 부분에 헷갈리기도 한다.
하지만 앞으로 개발자로 일을 하게 되면 무수히 겪을 일이기에, 빠르게 적응하고 익히는 방법을 공부해야겠다. 힘내자!