오늘은 생각난 김에 파이썬 기본 함수들과 코딩 테스트를 볼 때 많이 사용되는 코드에 대해서 정리해볼까 한다.
그리고 자료구조들을 계속해서 추가해볼까 한다.
코딩 테스트에서 input으로 5 25 30
과 같이 공백으로 구분된 경우가 있다. 우리는 이 input을 변수에 저장하는 것 뿐만 아니라 자료형을 정해주기를 원한다. 이런 경우에는 그냥 쉽게 다음과 같이 코드를 작성하면 된다.
numList = list(map(int, input().split())
해당 코드에서는 numList라는 변수에 int형으로 입력값들이 split되어 리스트의 형태로 들어갈 것이다.
혹은 그냥 변수 2개가 들어오고 그거에대해 각각의 변수에 저장하고 싶다면 다음과 같이 코드를 작성하면 된다.
N, M = map(int, input().split())
만약, input으로 "5 23"이 들어왔다면 위의 코드를 통해 N과 M의 변수에는 각각 5와 23이 정수형태로 저장될 것이다.
1 ) 언더바 사용하는 경우
for _ in range(4):
print("배고파")
위의 코드처럼 for문에 언더바 ( _ )가 사용되는 경우가 있다. 변수 언더바는 값 0,1,2,3을 갖고 반복을 수행하게 된다. 언더바는 실제 사용되지 않는 값으로 dummy variable
이라고 한다. 즉, 코드 상에서 사용되지 않는 반복을 원할 떄 언더바를 사용해줄 수 있다. 따라서, 위의 코드 결과 배고파
가 4번 출력될 것이다.
2 ) 내장함수 enumerate( )를 사용하는 경우
for idx, fruit in enumerate(["Apple","Peach","Banana","Strawberry"], start = x):
#인덱스와 원소 unpacking을 진행한 code
#원래는 enumerate로 tuple을 형성
print(idx, fruit)
위의 코드처럼 for문에 enumerate 함수가 사용되는 경우가 있다. 이런 경우는 주로 우리가 인덱스와 그에 해당하는 원소에 접근하고 싶을 때 많이 사용된다. 즉, print 결과 0 Apple
로 출력이 된다.
1 ) 10진수를 2진수, 8진수, 16진수로 변환
>>> bin(13)
'0b1101'
>>> oct(13)
'0o15'
>>> hex(13)
'0xd'
파이썬에 내장된 함수를 이용해 10진수 숫자를 자유롭게 2진수, 8진수, 16진수로 변환할 수 있다. 이때, 각 진법을 구분하기 위해 결과 값 앞에 문자가 붙게 된다.
2진수: 0b
8진수: 0o
16진수: 0x
2 ) 2진수, 8진수, 16진수를 10진수로 변환
>>> int('0b1101', 2)
13
>>> int('0o15', 8)
13
>>> int('0xd', 16)
13