| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | |||||
| 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| 17 | 18 | 19 | 20 | 21 | 22 | 23 |
| 24 | 25 | 26 | 27 | 28 | 29 | 30 |
| 31 |
- 코테 파이썬
- Laravel
- DP
- 백준
- 항해99
- 코딩테스트 준비
- 티스토리챌린지
- 코딩테스트
- 파이썬
- 개발자 취업
- 라라벨
- C++
- react
- flutter getx
- vue
- 99클럽
- 개발자취업
- Python
- 코딩테스트준비
- 안드로이드
- 파이썬 코테
- 오블완
- til
- 플러터
- c++ 코테
- ML
- 뷰
- 알고리즘
- Flutter
- 코테
- Today
- Total
잡다로그
[Python] 기초 문법 - 기본 입출력, 조건문/반복문, 함수/람다표현식, 유용한 표준 라이브러리 본문
입출력
* 입력
input() : 한 줄의 문자열을 입력 받는 함수
map() : 리스트의 모든 원소에 각각 특정한 함수를 적용할 때 사용
list(map(int, input().split())) #공백 기준으로 구분된 데이터 입력
a, b, c = map(int, input().split)) #입력할 데이터 갯수 적고, 갯수 정해져있을 때 단순하게
sys.stdin.readline() : 빠르게 입력을 받아야 하는 경우. 즉 여러 줄(엔터로 구분되는 입력)의 입력을 받는 경우 필수! sys 라이브러리의 메소드 사용. 단, 입력 완료 후 Enter가 줄바꿈 기호로 입력되므로 rstrip() (줄 바꿈 기호 제거) 와 함께 사용.
import sys
data = sys.stdin.readline().rstrip()
* 출력
print(): 자동으로 줄바꿈이 된다.
print(7, end =" ") # 줄바꿈 안하기
answer = 7
print("정답은 "+str(answer)+"입니다.")
f-string: 문자열 앞에 접두사 f를 붙여서 다양한 자료형의 여러 변수들을 간단하게 출력할 수 있다.
answer = 7
print(f"정답은 {answer}입니다.")
조건문
- 파이썬에서는 코드의 블록(실행 단위)을 들여쓰기(Indent)로 지정한다. 공백문자 4개를 표준으로 한다.
- 조건문의 기본 형태는 if ~ elif ~ else이다. 한 줄로 조건문을 작성할 수 있다.
- 한 줄로 조건부 표현식을 사용할 수 있다. result = "참일 때" if score >= 80 else "거짓일 때"
- 비교 연산자, 논리 연산자(and, or, not - 다른 언어들과 다르게 문자로 사용), 기타 연산을 사용할 수 있다.
- in 연산자: 포함 여부 검사에 사용 - 리스트, 튜플, 문자열 등에 사용 ex) not in 리스트
- pass 키워드: 아무것도 실행하지 않고 넘어가고 싶을 때
- 다른 언어와 다르게 수학의 부등식을 그대로 사용할 수 있다. 조건 연산자를 순차적으로 해결 (X). ex) 0 < x < 20
반복문
- while문 보다 for문을 사용하는 것이 더 간결하다.
- for문을 사용해 단순히 1회씩 순회하길 원한다면, rangr()를 주로 사용한다. ex) range(시작 값, 끝 값+1)
result = 0
for i in rang(1, 10):
result += i
- continue 키워드: 특정 조건(if문)은 건너뛰고 다음 반복을 진행하고 싶을 때
- break 구문: 반복문을 즉시 탈출하고자 할 때 사용
함수
- 반복되는 작업을 함수로 구현하여 불필요한 반복을 줄인다.
def 함수명(매개변수):
실행 할 소스코드
return 반환 값
- global 키워드: 함수의 바깥에 정의되어 있는 변수를 참조하려면, global키워드를 사용해야 한다.
a = 10
def func():
global a
a +=1
그러나 리스트의 내부 원소에 접근하는 것은 가능 (?)
array = [1,2,3,4,5]
def funx():
array.append(6)
- 파이썬 함수는 여러 개의 반환 값을 가질 수 있다.
def operator(a, b):
add_var = a + b
subtract_var = a - b
multiply_var = a * b
divide_var = a / b
return add_var, subtract_var, multiply_var, divide_var # packing
a, b, c, d = operator(7, 3) # unpacking
print(a, b, c, d)
람다 표현식
- 함수를 한 줄에 작성할 수 있다.
print((lambda a, b: a+b)(3, 7)) # 람다 표현식으로 구현한 add() 메서드
함수 자체를 입력으로 받는 함수 일 때, 기능이 매우 간단하거나 1회용일 때 유용하다. (ex. 정렬)
array = [('홍길동', 50), ('이순신', 32), ('아무개', 74)]
def my_key(x):
return x[1]
print(sorted(array, key = my_key ))
print(sorted(array, key=lambda x:x[1]))
list1 = [1,2,3,4,5]
list2 = [6,7,8,9,10]
result = map(lambda a,b: a+b, list1, list2)
print(list(result)) # 출력: [7, 9, 11, 13, 15]
유용한 표준 라이브러리
- 내장함수: 별도 import 없이 사용 가능하다.
result = eval("(3+5)*7") # 56
result = sorted([9, 1, 8, 5, 4], reverse = True) # [9,8,5,4,1]
- itertools: 반복되는 형태의 데이터 처리 시 유용. 특히 순열과 조합 라이브러리 ( 완전 탐색 문제!)
from itertools import permutations # 순열
from itertools import combinations # 조합
from itertools import product # 중복 순열
from itertools import combinations_with_replacement # 중복 조합
data = ['A', 'B', 'C']
result = list(permutations(data, 3)
- heapd: 힙 자료구조 제공. 우선순위 큐 구현 위해 (다익스트라-최단 경로 알고리즘)
- bisect: 이진 탐색 기능 제공
- collections: 덱(deque), 카운터(counter)등의 유용한 자료구조 포함
- counter: 반복 가능한 객체가 주어졌을 때 내부 원소의 등장 횟수 카운트
from collections import Counter
counter = Counter(['red', 'blue', 'red', 'green', 'blue', 'blue'])
print(counter['blue'])
- math: 팩토리얼(!), 제곱근, 최대공약수(GCD), 삼각함수, 파이(pt) 등등 포함
import math
# 최소 공배수(LCM) 함수
def lcm(a, b):
return a*b // math.gcd(a, b)
print(math.gcd(21, 14) # 최대 공약수 (gcd) 계산
print(lcm(21, 14)) # 최소 공배수 계산
본 포스팅은 하단의 책과 유튜브 강의를 참고하여 정리한 포스팅입니다.
이것이 취업을 위한 코딩 테스트다 with 파이썬 - YES24
나동빈 저자의 유튜브 라이브 방송 https://www.youtube.com/c/dongbinnaIT 취준생이라면 누구나 입사하고 싶은 카카오 · 삼성전자 · 네이버 · 라인!취업의 성공 열쇠는 알고리즘 인터뷰에 있다!IT 취준생
www.yes24.com
'Algorithm' 카테고리의 다른 글
| [Python/코테] DFS/BFS (1) - 개념, 스택, 재귀함수 (0) | 2023.04.21 |
|---|---|
| [Python/코테] 구현 알고리즘 (0) | 2023.04.16 |
| [Pyhton/코테] 그리디(Greedy) 알고리즘 (0) | 2023.04.08 |
| [Python] 코테 기초 문법 - 자료형 (0) | 2023.03.24 |
| [알고리즘] 복잡도, 코테 기초 (0) | 2023.03.24 |