python backend 개발자를 준비하면서 python 기초 책을 처음부터 끝까지 다 봤다.
나는 Python을 주 언어로 사용하고, Django로 여러가지 프로젝트를 진행하며 코딩테스트를 여러개를 보았음에도 불구하고 헷갈리는 문법이 많았다는 것이 충격...
find() : 찾는 문자나 문자열이 존재하지 않으면 -1 반환
index() : 문자열에 존재하지 않는 문자를 찾으면 오류 발생
join() : 구분자로 연결된 전체 길이의 문자열 1개가 반환
ex)
",".join('abcd')
결과값 : 'a,b,c,d'
lstrip() : 왼쪽공백 지우기
rstrip() : 오른쪽쪽공백 지우기
strip() : 양쪽공백 지우기
python으로 코테를 준비하다보면 input 값을 받을때에
sys.stdin.readline().rstrip() 을 쓰는 경우가 꽤 많다.
이건 코딩테스트 부분에서 다시 다뤄야지
- [ : ] 사용
ex) a = [ 1 , 2 , 3]
b = a[ : ]
-> a의 처음 요소부터 끝 요소까지 슬라이싱
- from copy import copy
ex) from copy import copy
a = [ 1 , 2 , 3]
b = copy(a)
왜 이렇게 할까요?
여기서 동작 원리 설명
값에 의한 호출
함수 호출시 전달되는 변수의 값을 복사하여 함수의 인자로 전달
복사된 인자는 함수안에서 지역적으로 사용되는 local value의 특성을 가짐
즉, 함수안에서 인자의 값이 변경되어도 외부는 변경되지 않는다
레퍼런스 (쉽게 말하면 참조, 주소 값) 에 의한 호출
함수 호출시 인자로 전달되는 변수의 레퍼런스 전달
인자의 값이 변경되면, argument로 전달된 객체 값도 표현
파이썬은 둘다 아니다!
immutable object의 경우
immutable 객체가 함수의 arguments로 전달되면
처음에는 call-by-reference 로 받지만
값이 변경되면 call-by-value 로 동작
mutable object의 경우
mutable 객체가 함수의 arguments로 전달되면
call-by-reference 로 동작
리스트는 Mutable Object 이니까 call-by-reference로 동작하여
위의 예시 처럼 copy해야 한다.
Immutable : 수정 불가능한 객체
ex) int, float, str, tuple
Mutable : 수정 가능한 객체
ex) list, dict
저의 공부 방식의 흐름대로 적어보았습니다..
의식의 흐름식으로 궁금한 점을 찾아가면서 공부했던 그대로 적었습니다.
혹시라도 잘못된 부분이 있다면 의견 공유 부탁드립니다!