Python 기술 면접 대비 1

HyeongSeok Lee·2022년 8월 22일
0

python

목록 보기
1/1
post-thumbnail

헷갈리는 Python 기초 문법들

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() 을 쓰는 경우가 꽤 많다.
이건 코딩테스트 부분에서 다시 다뤄야지

리스트 복사

  1. [ : ] 사용
    ex) a = [ 1 , 2 , 3]
    b = a[ : ]
    -> a의 처음 요소부터 끝 요소까지 슬라이싱
  1. from copy import copy
    ex) from copy import copy
    a = [ 1 , 2 , 3]
    b = copy(a)

왜 이렇게 할까요?
여기서 동작 원리 설명

call-by-value

값에 의한 호출
함수 호출시 전달되는 변수의 값을 복사하여 함수의 인자로 전달
복사된 인자는 함수안에서 지역적으로 사용되는 local value의 특성을 가짐

즉, 함수안에서 인자의 값이 변경되어도 외부는 변경되지 않는다

call-by-reference

레퍼런스 (쉽게 말하면 참조, 주소 값) 에 의한 호출
함수 호출시 인자로 전달되는 변수의 레퍼런스 전달
인자의 값이 변경되면, argument로 전달된 객체 값도 표현

파이썬은 어디에 해당되는가??

파이썬은 둘다 아니다!

call-by-assignment

  1. immutable object의 경우
    immutable 객체가 함수의 arguments로 전달되면
    처음에는 call-by-reference 로 받지만
    값이 변경되면 call-by-value 로 동작

  2. mutable object의 경우
    mutable 객체가 함수의 arguments로 전달되면
    call-by-reference 로 동작

따라서, python은 call-by-assignment 이므로

리스트는 Mutable Object 이니까 call-by-reference로 동작하여
위의 예시 처럼 copy해야 한다.

그렇다면 Immutable 과 mutable의 차이는??

Immutable : 수정 불가능한 객체
ex) int, float, str, tuple

Mutable : 수정 가능한 객체
ex) list, dict

저의 공부 방식의 흐름대로 적어보았습니다..
의식의 흐름식으로 궁금한 점을 찾아가면서 공부했던 그대로 적었습니다.
혹시라도 잘못된 부분이 있다면 의견 공유 부탁드립니다!

profile
Backend/Server developer #Python #Django

0개의 댓글