Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 파이썬 #python #os #os.path #glob
- 파이썬 #python #예외처리 #exception
- 사용자정의예외
- PostgreSQL
- 민감 정보 관리
- jsonb
- 파이썬 #python #class #클래스 #상속
- 파이썬 #python #모듈 #module #import #random #time #calendar #sys
- 파이썬 #python #지역함수
- 파이썬 #python #함수 #function
- 파이썬 #python #filter #map #reduce
- 파이썬 #python #file #i/o #input #output
- spring boot
- 파이썬 #python #enumerate
- docker
- Git
- 프로그래머스
- 파이썬 #python #Comprehension
- 파이썬 #python #docstring
- aw3
- aws
- 약수 수하기
- 파이썬 #python #가변매개변수 #키워드가변매개변수 #args #kwargs
- EC2
- 연산자메서드
- 파이썬 #python #전역변수 #지역변수 #eval
- 파이썬 #python #lambda #람다
- 파이썬기본문법 #파이썬 #python
- 배포
- redis
Archives
- Today
- Total
Yeonnnnny
[python] 표준 모듈 본문
■ import
- 모듈은 파이썬 코드를 작성해 놓은 스크립트 파일임
- 스크립트 파일 안에는 함수, 변수, 클래스 등이 정의되어 있음
- 외부의 모듈을 가져와 사용할 때는 import 명령을 사용
- 모듈에 포함된 함수를 호출할 때는 함수명 앞에 모듈명을 붙임
- 특정 함수나 클래스만 임포트하고자 할 때는 다음 구문을 사용함
from 모듈 import 함수명, 클래스명
- 모듈의 모든 함수를 불러올 때는 함수명 자리에 * 문자를 사용
- 모듈의 이름이 길고 복잡할 때는 as 다음에 별칭을 지정할 수 있음
from math as m
■ math 모듈
: 수학 연산에 필요한 상수와 연산함수 제공
sqrt(x) | x의 제곱근 |
pow(x,y) | x의 y승 |
ceil(x) | 올림 값 |
floor(x) | 내림값 |
fabs(x) | x의 절대값 |
trunc(x) | x의 소수점 이하 버림 |
import math
print(math.sqrt(2)) #1.4142135623730951
■ time 모듈
: 날짜와시간 관련 기능 제공
import time
t=time.time()
print(t) #1698226156.482041
print(time.ctime()) #Wed Oct 25 18:29:16 2023
import time
start = time.time()
sum=0
for i in range(1,100000001):
sum+=i
end = time.time()
print('1부터1억까지 합게 계산 총 소요 시간 : %.2f초' %(end-start)) #1부터 1억까지 합계 계산 총 소요 시간 : 8.43초
import time
print(time.localtime()) # 시간에 대한 여러 정보들
# 결과
#time.struct_time(tm_year=2023, tm_mon=10, tm_mday=25, tm_hour=18, tm_min=35,
#tm_sec=17, tm_wday=2, tm_yday=298, tm_isdst=0)
now = time.localtime()
hour = '오후' if now.tm_hour>12 else '오전'
print(f'{now.tm_year}년 {now.tm_mon}월 {now.tm_mday}일 {hour}{now.tm_hour%12}시 {now.tm_min}분 {now.tm_sec}초')
# 결과 : 2023년 10월 25일 오후 6시 35분 17초
import time
print('이 문장은')
time.sleep(2) # 매개변수로 전달된 초만큼 프로그램의 실행을 잠시 중단
print('2초 단위로')
time.sleep(2)
print('출력됩니다.')
■ calendar 모듈
- calendar 함수는 인수로 받는 년도의 달력 객체를 반환
- month 함수는 년도와 달을 인수로 받은 해당 월의 달력 객체를 반환
import calendar
print(calendar.calendar(2021))
print(calendar.month(2023,10))
■ random 모듈
: 난수를 생성하는 기능 제공
random() | 0 에서 1 미만의 실수 하나를 생성 |
randint(begin, end) | begin~end 사이의 정수 난수 하나를 생성 (end포함!) |
randrange(begin,end) | begin~end 사이의 정수 난수 하나를 생성 (end제외) |
uniform (begin, end) | begin~end 사이의 실수 난수 하나를 생성 |
choice( list 객체 ) | 리스트에서 임의의 요소를 하나 골라 리턴 |
shuffle(list 객체) | 리스트의 요소를 무작위로 섞음 |
sample(list 객체, n) | 리스트 항목 중 n개를 무작위로 뽑아 새로운 리스트를 만듦 |
import random
#컴퓨터의 난수는 컴퓨터의 시스템 시간을 기준(seed value)으로 발생
#따라서 기준값을 고정해 놓으면 항상 동일한 난수 값이 발생
random.seed(0) # 씨드 값 고정 -> 한 번 난수값이 발생하면 재실행해도 계속 동일값 유지
for i in range(5):
print(random.randint(1,10), end=' ') # 7 7 1 5 9
import random
food = ['짜장면','짬뽕','군만두','탕수육']
random.shuffle(food)
print(food) # ['탕수육', '짬뽕', '군만두', '짜장면'] : 출력값 계속 바뀜
import random
food = ['짜장면','짬뽕','군만두','탕수육']
print(random.choice(food)) # 짬뽕
[문제] 로또 번호 생성기
- 1~45 사이의 숫자 6개 뽑기
- 단, 순자를 뽑을 때 중복된 숫자는 사용할 수 없음
- 결과는 오름차순으로 정렬해서 출력함
# 방법1)
import random
lotto = random.sample(range(1,46),6)
print('로또 번호 : ',sorted(lotto))
#로또 번호 : [9, 17, 29, 37, 40, 41]
# 방법2) list사용
import random
lotto=[]
while True:
data = random.randint(1,45)
if data not in lotto :
lotto.append(data)
if len(lotto)==6:
break
print('로또 번호 : ',sorted(lotto))
# 로또 번호 : [4, 8, 29, 33, 41, 42]
# 방법3) set 사용
import random
lotto =set()
while True:
lotto.add(random.randint(1,45))
if len(lotto) == 6:
break
print('로또 번호 : ', sorted(list(lotto)))
#로또 번호 : [4, 19, 20, 26, 28, 37]
[문제] 숫자 맞추기 게임
- 1~100 사이의 난수를 맞추는 게임
- 입력값과 생성 값을 비교해서 어떤 값이 더 큰지 힌트를 알려줌
- 정답을 맞추면 시도 횟수 출력과 함께 게임을 종료
import random
print('[숫자 맞추기 게임]')
print('='*30)
target = random.randint(1,100)
cnt=0
while True :
input_data = int(input('숫자 입력 : '))
cnt+=1
if target == input_data:
print('%d번 끝에 정답을 맞추셨습니다. 축하합니다' %cnt)
break
elif target>input_data:
print('up')
else:
print('down')
■ sys 모듈
- 파이썬 해석기가 실행되는 환경과 해석기의 여러 가지 기능을 조회하고 관리하는 모듈
- sys.exit(0) : 프로그램 강제 종료
■ 명령행 인수
- argv[0]에 실행파일 전체 경로가 들어가고 이 후 인수는 argv[1], argv[2]로 전달됨
import sys
print(sys.argv)
#['C:\\Users\\user\\anaconda3\\Lib\\site-packages\\ipykernel_launcher.py', #실행파일 전체경로
#'-f', #인수1
#'C:\\Users\\user\\AppData\\Roaming\\jupyter\\runtime\\kernel-7eb4d729-1f19-49b1-8df2-7f90104e68e9.json'] #인수2
Reference : https://sesoc.tistory.com/237?category=1002032
'Python' 카테고리의 다른 글
[python] 입출력 (I/O) (1) | 2023.10.29 |
---|---|
[python] 예외 처리 (1) | 2023.10.26 |
[python] docstring (0) | 2023.10.25 |
[python] 값으로서의 함수 (0) | 2023.10.25 |
[Python] lambda 함수 (0) | 2023.10.25 |