파이썬 알고리즘 3장

‎육란·2023년 9월 9일

파이썬 알고리즘

목록 보기
1/8

한 학기 동안 '파이썬 알고리즘 인터뷰'라는 책을 통해 파이썬으로 코딩테스트를 공부하려고 한다. IDE로는 '파이참'을 사용한다.

3장에서는 기본적인 파이썬의 문법과 자료형에 대해 다룬다.



파이썬 문법



인덴트

파이썬의 인덴트는 공식 가이드인 PEP 8에 따라 공백 4칸을 원칙으로 한다.

파이참을 이용하면 별도로 신경쓰지 않아도 코딩 가이드를 자동을 맞춰준다.


네이밍 컨벤션

파이썬의 변수명은 각 단어를 밑줄(_)로 구분하여 표기하는 스케이크 케이스를 따른다.

이는 자바의 각 단어를 대소문자로 구분하는 카멜 케이스와는 차이가 있다.

ex)

#카멜 케이스
camelCase

#스네이크 케이스
snake_case



타입 힌트

파이썬은 동적 타이핑 언어이다.

다음과 같은 형태로 타입을 선언할 수 있다.

a: str = "1"
b: int = 1

타입은 지정하지 않아도 한눈에 보일 만큼 명확하기 때문에 굳이 지정하지 않아도 문제는 없다.


리스트 컨프리헨션

파이썬은 map, filter와 같은 함수형 기능을 지원하며 다음과 같은 람다 표현식도 지원한다.

>>>list(map(lamda x: x+10, [1, 2, 3]))
[11, 12, 13]



제너레이터

제너레이터는 루프의 반복 동작을 제어할 수 있는 루틴 형태를 말한다.
이때 yield 구문을 사용하면 제너레이터를 리턴할 수 있다.

>>>def get_natural_number():
...    n = 0
...    while True: 
...        n += 1
...        yield n
...



range

제너레이터 방식을 활용하는 대표적인 함수로 range()가 있다.
range 함수 안의 숫자는 처음 값부터 시작하여 끝값은 포함하지 않는다.

주로 for 문에서 쓰이는 range() 함수의 쓰임은 다음과 같다.

 >>>list(range(5))
 [0, 1, 2, 3, 4]
 
 >>>range(5)
 range(0, 5)
 
 >>>type(range(5))
 <class 'range'>
 
 >>>for i in range(5):
 ...    print(i, end=' ')
 ...
 0 1 2 3 4



enumerate

enumerate()는 '열거하다'는 뜻의 함수로, 여러 가지 자료형을 인덱스를 포함한 enumerate 객체로 리턴한다.

사용 방법은 다음과 같다.

>>>a = [1,2,3,2,45,2,5]
>>>a
[1, 2, 3, 2, 45, 2, 5]

>>>enumerate(a)
<enumerate object ar 0x1010f83f0>

>>>list(enumerate(a))
[(0, 1),(1, 2), (2, 3), (3, 2), (4, 45), (5, 2), (6, 5)]



// 나눗셈 연산자

파이썬엣 기본 나눗셈 연산자는 /를 사용한다.
이는 결과값으로 실수형이 나온다.

// 연산자를 이용하면 정수형을 나눗셈할 때 동일한 정수형을 결과로 리턴하면서
내림 연산자의 역할을 한다.

다시 말해 몫을 구하는 연산자다.

>>> 5 / 3
1.66666666666667
>>>type(5 / 3)
<class 'float'>

>>> 5 // 3
1
>>>type(5 // 3)
<class 'int'>



print

출력 결과를 확인하는 용으로 print를 사용한다.

가장 쉽게 값은 출력하는 방법은 콤마(,)로 구분하는 것이다.
이 경우 한 간 공백이 디폴트로 설정되어 있다.

>>>print('a1', 'b2')
a1 b1

print() 함수는 항상 줄바꿈을 한다.
end 파라미터를 공백으로 처리하여 줄바꿈을 하지 않도록 제한할 수 있다.

print('aa', end=' ')
print('bb')
--------------------
aa bb



pass

파이썬에서 pass는 널 연산으로 아무것도 하지 않는 기능이다.
오류를 막는 역할을 할 수 있다.



locals

locals()는 로컬 심볼 테이블 딕셔너리를 가져오는 메소드로 업데잍 또한 가능하다.

import pprint
pprint.pprint(locals())



변수명과 주석

  • 파이썬에서 간단한 주석을 부여하는 편이 훨씩 가독성있다.
    앞에 #을 사용하면 주서처리가 된다.

    영어로 주석을 읽고 쓰는 데에 아무런 부담이 없을 정도로 익숙해진다면 좋다.
  • 변수명에는 의미 없는 이름보다는 각각의 의미를 부여해 작명하는 것이 더 가독성이 좋다.
profile
프로그래밍 공부 블로그

0개의 댓글