파이썬 개념을 배웠다. 이미 알고 있는 내용이 주를 이뤘지만 평소 헷갈려 하거나 이해를 뒤로 미뤘던 내용이 있어 정리하고자 한다.
place = '서울'
def change_place():
place = '부산'
change_place()
print(place) #서울
입력값이 여러 개일 때 각 값마다 기본값을 지정해 줄 수 있다. 단, 이 경우 기본값이 있는 인자가 기본값이 없는 인자들의 뒤에 와야 한다.
def set_place_default(place1, place2 = '서울'):
print(place1+','+place2+'입니다.')
위와 같이 디폴트 값을 설정해줄 경우 그렇지 않은 인자 뒤에 와야 한다.
def set_place_default(place1='부산', place2):
print(place1+','+place2+'입니다.')
위와 같은 경우 다음과 같은 에러가 나타난다.
SyntaxError: non-default argument follows default argument
이러한 에러가 나는 이유는 파이썬 함수를 정의할 때 인자의 순서가 이미 정해져 있기 때문이다. 다음 링크를 참고하면 좋다.
1 + 1.0의 값은 2.0이다. 즉, 정수와 소수를 더해도 결과값은 소수 자료형으로 표현된다.
딕셔너리_이름.pop('key_이름')
Nontype에 대해 배우며 C와의 차이점을 알 수 있었다.
컴파일 방식 vs 인터프리트 방식
컴파일 방식은 입력된 모든 원시어를 한 번에 기계어로 번역 후(=빌드 과정), 기계에 넣고 기계를 실행하는 방식이다. 소스코드를 기계어로 변환하는 과정에서는 인터프리트 방식보다 오래 걸리지만, 런타임에서는 짧은 시간을 소요한다.
인터프리트 방식은 소스코드를 기계어로 변환하는 과정없이 매 줄을 해석하여 실행하는 방식이다. 따라서 빌드 과정이 없다. 런타임에서는 한 줄씩 해석해 실행하기 때문에 컴파일 언어에 비해 속도가 느리다.
논리연산자 | 비교연산자 |
---|---|
and | & |
or | ㅣ |
not | ~ |
조건식에서 사용하는 것은 논리연산자이다.
비교연산자로는 비트 연산을 한다. 연산 방식은 다음과 같다.
print(8&10)
#8
#=> 8은 이진수로 1000, 10은 이진수로 1010.
# 각 자리를 비교했을 때 겹치는 부분만 연산한다.
# 여기서 겹치는 부분은 제일 앞에 있는 1이다.
# 따라서 결과값은 이진법으로 1000이 된다.
# 이는 십진법으로 환산하면 8이되니 결과는 8이 출력된다.
if not'':
print(True)
else:
print(False)
# True
not ''에서 ''는 False 이다. 이 앞에 not 이 붙기 때문에 True가 된다. 따라서 출력되는 값은 True이다.
LMS로 하는 공부를 처음 시작했는데, 첫 날부터 재귀함수에 대한 내용이 나와서 코딩을 처음 접하는 분들은 내용 숙지가 어렵지 않을까 생각했다.
그 외에는 기본적인 내용이라 크게 어려운 부분은 없었다. 다만 이전까지 공부하면서 이해를 미루고 미뤄놨던 부분이 있어서 (컴파일 언어, 인터프리터 언어 같은 개념) 그 부분을 신경써서 정리했다. 그리고 개념을 정교하게 다듬는 것이 좋을 것이라고 생각해 부족하다고 생각하는 부분을 정리했다.
남은 과정에 있어 오늘이 가장 쉬운 날이기 때문에, 앞으로 어떻게 공부를 할 지 걱정되지만 오늘처럼 잘 모르고 있구나 싶은 부분을 정리하면서 공부하면 되지 않나 싶다. 앞으로는 오늘보다 정리 시간도 길게 걸릴텐데 어쨌든 힘내보자..