서론
오늘은 코딩테스트 문제 풀이를 위해서 빼놓을 수 없는 기본 문법에 대해 알아보도록 하겠습니다.
본론
입출력
입력함수 : input()
input 함수를 통해 입력 값을 받아올 수 있습니다.
a = input()
>>> "안녕하세요 반갑습니다"
print(a) // 안녕하세요 반갑습니다
공백을 기준으로 나누기 : split()
input()의 리턴값은 문자열
입니다. 따라서 이번엔 문자열 내장함수인 split을 통해, 주어진 문자열을 공백을 기준으로 나눌 수 있습니다. 반환값은 리스트 형태입니다.
b = input().split()
>>>> "3 5 6 7"
print(b) // ['3', '5', '6', '7']
문자열을 정수형으로 바꾸기 : map (변환 함수, iterable)
이번엔 map 함수를 통해, 문자열 리스트를 정수형 자료형으로 변경해보겠습니다. map 함수는 두번째 인자(순회 가능한 데이터)로 주어진 값을 첫번째 인자(변환함수)를 통해 원하는 형태로 반환할 수 있습니다. ['3', '5', '6', '7']
가 두번째 인자로 주어졌을 때, int 함수를 써주면 다음과 같습니다.
sample_list = ['3', '5, '6', '7']
for num in sample_list:
print(int(num))
즉, 두번째 인자를 순회하면서 변환함수를 실행해주죠. 다만, 반환형태는 새로운 map 객체입니다.
c = map(int, input().split())
>>>> "3 5 6 7"
print(c) // <map object at 0x100e519f0>
list(c) // [3, 5, 6, 7]
n, m, d, k = map(int, input().split())
// n = 3
// m = 5
// d = 6
// k = 7
따라서 맨 아랫줄에 적어놨듯, list 형변환이 필요합니다. 그럼 원하는 결과가 도출된 것을 알 수 있습니다..!! 또한 맵 객체는 이터레이터라서 변수 여러 개에 저장하는 언패킹(unpacking) 해줄 수도 있습니다.
출력함수 : print()
print를 사용하면 쉽게 출력됩니다.
조건문
파이썬에선 들여쓰기가 중요합니다. 만약 if 아래 해당하는 조건인데 들여쓰기를 해주지 않으면, 해당 조건에 걸리지 않게 됩니다.
else if는 elif로 씁니다.
x = 20
if x == 10:
print('10입니다.')
elif x == 20:
print('20입니다.')
else:
print('10도 20도 아닙니다.')
반복분
for-in 을 기본으로 사용하고, 정확한 숫자를 나타내려면 range를 사용합니다. 반대로 호출하려면 -1을 넣어줍니다.
test_list = ['one', 'two', 'three']
for i in test_list:
print(i)
# Example with range
for i in range(10, 0, -1): # Start at 10, end at 1 (exclusive), step -1
print(i) # Output: 10, 9, 8, ..., 1
함수
def display(name):
print("name : "name)
display("joonfluence"); // name : joonfluence
문자열
- 나누기 : split, 자바스크립트 내장함수와 기능이 일치합니다.
a = 'abc def ghi';
a.split() // ['abc', 'def', 'ghi']
name = "chris"
print(f'name : {name}')
또한 문자열 앞에 f 문자열(포맷 문자열 리터럴)을 쓰면 자바스크립트 템플릿 리터럴과 같은 기능을 수행할 수 있습니다.
내장함수
수학
자세한 내용들은 별도 포스트에서 다루겠습니다. 해당 링크 입니다.
자료형
리스트 : []
Javascript의 array와 같은 역할을 합니다.
- 생성 : append(value), push 메소드와 같다.
- 삭제 : pop().
- 수정 : 인덱스 값 참조 후, 변경.
- 길이 : len 함수.
- 리스트 간 합치기 : + 연산자 사용하면 리스트가 합쳐집니다. 반면, 같은 경우. 자바스크립트에서는 stringify 되어 값이 출력됩니다.
// 생성
a = [1, 2, 3]
a.append(4)
a // [1, 2, 3, 4]
// 삭제
a = [1, 2, 3]
del a[1]
a // [1, 3]
// 수정
a = [1, 2, 3]
a[2] = 4
a // [1, 2, 4]
// 길이
a = [1, 2, 3]
len(a) // 3
// 리스트 간 합치기
a + a // [1, 2, 3, 1, 2, 3]
집합자료형 : Set
앞서 언급했듯, 집합자료형은 중복을 허용하지 않는 자료형이고 합집합과 교집합 등 다양한 집합 연산을 처리하기에 적합한 자료형입니다.
s1 = set([1,2,3])
s1 // {1, 2, 3, 4}
s2 = set([4,5,6])
s2 // {4, 5, 6, 7}
// 교집합
s1 & s2 // {4}
// 합집합
s1 | s2 // {1, 2, 3, 4, 5, 6, 7}
// 차집합
s1 - s2 // {1, 2, 3}
// 값 추가
s1.add(5)
// 값 삭제
s1.remove(5)
// 값 수정
s1.update(5)
deque
heap
deafult dict
기타
마지막으로 언급하지 못한 부분들을 짧게 이야기하고 넘어가려 합니다.
1) null 대신 None을 사용한다.
2) not 예약어는 느낌표(부정 연산자)의 역할을 해줍니다. 그렇다고 ! 연산자를 사용할 수 없는 것은 아닙니다.
또한 이 외에도 클래스/모듈/패키지/내장함수 등등 파이썬에서 다뤄볼만한 주제가 많지만 오늘은 기본문법만을 다루는 것이기 때문에, 추후에 해당 포스트에 내용을 추가하거나 추가 포스팅을 통해 따로 심도있게 다뤄보도록 하겠습니다. 오늘도 읽어주셔서 감사합니다.
'Language > Python' 카테고리의 다른 글
[Python] Python에서 정렬하는 방법 (sort, sorted, heapq) (0) | 2023.10.11 |
---|---|
[예외처리] Python 에러 종류와 예외처리 (0) | 2022.03.27 |
[Python] 기본 문법 정리하기 (자바스크립트와의 차이점) (0) | 2022.02.13 |
댓글