청소년IT경시대회 프로그래밍 언어(파이썬) 대비
1. struct
C/C++ 구조를 파이썬에서 사용할 수 있도록 데이터 변환할 때 사용하는 모듈.
1) pack : 원하는 값들을 특정 포맷으로 하나의 객체로 합쳐줌
2) unpack : 합쳐진 객체를 특정 포맷으로 여러 객체로 분리해줌
2. datetime
날짜와 시간을 다루는 모듈.
1) datetime 클래스 : 년, 월, 일, 시간, 분, 초, 마이크로초 등을 포함한 객체 생성
import datetime
now = datetime.datetime.now()
print(now)
# 출력 결과
# 2024-09-14 01:55:57.531073
2) strptime : 문자열을 datetime 객체로 변환
import datetime
s = "2024-09-14 11:20:45"
date = datetime.datetime.strptime(s, "%Y-%m-%d %H:%M:%S")
print(date)
# 출력 결과
# 2024-09-14 11:20:45
3) strftime : datetime 객체를 지정한 포맷에 맞게 문자열로 변환
import datetime
now = datetime.datetime.now()
date1 = now.strftime("%Y년 %m월 %d일 %H:%M:%S")
print(date1)
# 출력 결과
# 2024년 09월 14일 02:08:51
date2 = now.strftime("%m월 %d일 !! ")
print(date2)
# 출력 결과
# 09월 14일 !!
date3 = now.strftime("%Y.%m.%d. %H시 %M분 %S초")
print(date3)
# 출력 결과
# 2024.09.14. 02시 10분 29초
4) 포맷
포맷코드 | 설명 | 예 |
---|---|---|
%a | 요일 줄임말 | Sun, Mon, ..., Sat |
%A | 요일 | Sunday, Monday, ..., Saturday |
%w | 요일을 숫자로 표시 (일요일:0, 월요일:1, ..., 토요일:6) | 0, 1, ..., 6 |
%d | 일 | 01, 02, ..., 31 |
%b | 월 줄임말 | Jan, Feb, ..., Dec |
%B | 월 | January, February, ..., December |
%m | 숫자 월 | 01, 02, ..., 12 |
%y | 두 자릿수 연도 | 01, 02, ..., 99 |
%Y | 네 자릿수 연도 | 0001, 0002, ..., 2023, 2024, ..., 9999 |
%H | 시간(24시간) | 00, 01, ..., 23 |
%I | 시간(12시간) | 01, 02, ..., 12 |
%p | AM, PM | AM, PM |
%M | 분 | 00, 01, ..., 59 |
%S | 초 | 00, 01, ..., 59 |
%Z | 시간대 | 대학민국 표준시 (비어 있음), UTC, EST, CST |
%j | 1월 1일부터 경과한 일수 | 001, 002, ..., 366 |
%U | 1년중 주차, 일요일이 한 주의 시작으로 | 00, 01, ..., 53 |
%W | 1년중 주차, 월요일중 주차, 월요일 | 00, 01, ..., 53 |
%c | 날짜, 요일, 시간을 출력, 현재 시간대 기준 | Sat Sep 14 02:19:16 2024 |
%x | 날짜를 출력, 현재 시간대 기준 | 09/14/24 |
%X | 시간을 출력, 현재 시간대 기준 | 02:20:13 |
3. calendar
1) calendar : 입력한 년도의 달력을 출력
import calendar
print(calendar.calendar(2024))
[출력 결과]
2) month : 입력한 년도의 원하는 월 출력
import calendar
print(calendar.month(2024, 10))
[출력 결과]
4. math
1) round : 지정한 소수점 자릿수에 맞춰 반올림하는 함수
import math
a=7.147
print(round(a))
print(round(a,-1))
print(round(a,1))
print(round(a,2))
print(round(a,3))
print(round(a,4))
# 출력 결과
# 7
# 10.0
# 7.1
# 7.15
# 7.147
# 7.147
2) ceil : 실수를 올림하여 정수로 반환
import math
a=7.147
print(math.ceil(a))
b=3.7
print(math.ceil(b))
# 출력 결과
# 8
# 4
3) floor : 실수를 내림하여 정수로 반환
import math
a=7.147
print(math.floor(a))
b=3.7
print(math.floor(b))
# 출력 결과
# 7
# 3
4) factorial : 1~N까지 곱한 값 반환 (N! : 팩토리얼)
import math
a=5
print(math.factorial(a))
b=3
print(math.factorial(b))
# 출력 결과
# 120
# 6
5) gnd(a, b) : a와 b의 최대공약수 반환
import math
a = 20
b = 24
print(math.gcd(a,b))
# 출력 결과
# 4
6) sqrt : 제곱근 반환
import math
a = 4
b = 121
c = 25
print(math.sqrt(a))
print(math.sqrt(b))
print(math.sqrt(c))
# 출력 결과
# 2.0
# 11.0
# 5.0
7) pow(a, b) : a의 b제곱 값 반환
import math
print(math.pow(2,3))
print(math.pow(2,5))
print(math.pow(3,2))
# 출력 결과
# 8.0
# 32.0
# 9.0
5. random
1) random : 0 이상 1 미만의 무작위 값 반환
import random
print(random.random())
print(random.random())
print(random.random())
print(random.random())
print(random.random())
# 출력 결과
# 0.789151304563551
# 0.377096725708465
# 0.4463789421422576
# 0.03214667403259963
# 0.704154756663026
2) randint(a, b) : a 이상 b 이하의 정수 중 무작위 값 반환
import random
print(random.randint(1,5))
print(random.randint(1,5))
print(random.randint(1,5))
print(random.randint(1,5))
print(random.randint(1,5))
# 출력 결과
# 1
# 3
# 5
# 3
# 5
3) choice : 무작위 원소를 뽑아 반환
import random
arr = [10, 2, 56, 3, 99]
print(random.choice(arr))
print(random.choice(arr))
print(random.choice(arr))
# 출력 결과
# 3
# 10
# 99
4) shuffle : 요소를 무작위로 섞어 반환
import random
arr = [10, 2, 56, 3, 99]
random.shuffle(arr)
print(arr)
random.shuffle(arr)
print(arr)
# 출력 결과
# [99, 10, 3, 56, 2]
# [10, 56, 99, 3, 2]
5) sample : 지정한 개수만큼 임의로 요소를 선택하여 반환
import random
arr = [10, 2, 56, 3, 99]
print(random.sample(arr, 2))
print(random.sample(arr, 3))
# 출력 결과
# [10, 56]
# [56, 99, 2]
6. pickle
파이썬에서 사용하는 다양한 자료를 객체 그대로 파일로 저장하고 이를 불러올 때 사용하는 모듈.
7. os
1) mkdir : 새로운 디렉토리 생성
2) getpid : 현재 프로세스 ID를 반환
3) setregid : 현재 프로세스의 그룹 ID를 설정
4) read : 파일 읽기
5) chdir : 디렉토리의 위치 변경
6) getcwd : 현재 작업 중인 파일의 경로 반환
7) listdir : 해당 경로에 위치하는 파일과 디렉토리 반환
8) removedirs : 해당 경로의 디렉토리 삭제
9) rename : 파일 이름 변경
8. traceback
1) format : 오류가 발생한 위치의 추석 결과를 반환
9. re
정규표현식을 사용할 수 있는 모듈
정규표현식 | 설명 | 예제 |
---|---|---|
. | 임의의 문자 하나 | a.c : a와 c 사이 임의의 문자가 있음. (abc, adc ..) |
? | 해당 패턴의 앞에 문자가 하나 있거나 없는 경우 | |
^ | 이 패턴으로 시작해야함 | ^coders : coders로 시작해야 함(coders!, coders123 .. ) |
+ | 앞 패턴이 하나 이상 | \d+coders : coders 앞에 숫자가 하나 이상 |
* | 앞 패턴이 0개 이상 | \d*coders : coders 앞에 숫자가 0개 이상 |
[문자열] | [문자열]에 있는 문자가 포함된 문자여야함. | ["CcOoders"] : Coders, COd |
[^문자열] | [문자열]과 반대로 피해야할 문자열의 집합. [^문자열]에 있는 문자열을 제외한 문자여야함. | ["^ABC"] : coders, Python |
| | 두 패턴 중 하나여야함 | a | b : a 또는 b 이어야 함 |
{n} | 앞 패턴을 n번 반복 | \d{5} : 숫자가 5개 있어야함 |
{n,m} | 앞 패턴이 n 이상 m 이하로 반복 | \d{1,3} : 숫자가 1개 이상 3개 이하로 있어야함 |
$ | 이 패턴으로 종료되야함. | coders$ : coders로 종료되어야함 (abc!coders, 2024coders) |
\d | 숫자 0~9 | \d : 0~9 숫자 |
\w | 숫자나 알파벳(문자를 의미) | \w : 문자 1개 (a, b, 1 .. ) |
\n | 줄 바꿈 | 엔터 |
1) compile : 정규표현식 패턴을 정하는 함수
2) match : 문자열의 처음이 정규표현식과 매치되는지 확인
3) fullmatch : 문자열 전체가 해당 패턴인지 확인
import re
pattern = re.compile('o[gh]')
print(pattern.match('oh'))
print(pattern.fullmatch('oh'))
# 출력 결과
# <re.Match object; span=(0, 2), match='oh'>
# <re.Match object; span=(0, 2), match='oh'>
print(pattern.match('oha'))
print(pattern.fullmatch('oha'))
# 출력 결과
# <re.Match object; span=(0, 2), match='oh'>
# None
import re
pattern = re.compile('...[abc]*')
print(pattern.match('321ca'))
print(pattern.fullmatch('321ca'))
# 출력 결과
# <re.Match object; span=(0, 5), match='321ca'>
# <re.Match object; span=(0, 5), match='321ca'>
print(pattern.match('321coders'))
print(pattern.fullmatch('321coders'))
# 출력 결과
# <re.Match object; span=(0, 4), match='321c'>
# None