TIL | 파이썬 기초 # 9

vel.Ash·2022년 3월 23일
0
post-thumbnail

파이썬 모듈 맛보기

모듈화

  • 모듈 : 기능들을 정리해둔 파이썬 프로그램
    같은 폴더에 있는 파일을 불러와서 사용 할 수 있다.

<연결 방법 1>

import 모듈이름
모듈이름.함수이름()

# 1의 예시
import calculator

print(calculator.add(2, 5))
print(calculator.multiply(3, 4))

<연결방법 2>

import 모듈이름 as 모듈약칭  #  매번 긴 모듈이름을 쓰는 것이 번거로워 약칭 
모듈이름.함수이름()

# 2의 예시
import calculator as calc  

print(calc.add(2, 5))
print(calc.multiply(3, 4))

<연결방법 3>

from 모듈이름 import add, multiply   #'모듈이름' 모듈에서 add, multiply 함수만 불러온다는 뜻 
함수이름()

# 3의 예시
print(add(2, 5))
print(multiply(3, 4)

standard library

: 다양한 모듈들이 있다. 새로 정의해주는 게 아니라 기본적으로 있는 기능

<math 모듈>

import math 

print(math.log10(100))
print(math.cos(0))
print(math.pi)   # 원주율 같은 변수도 가져올 수 있음 

<random 모듈>

: 랜덤한 값을 만들고 싶을 때 사용

import random

print(random.random())  # 0.0 과 1.0 사이에 랜덤한 수가 리턴됨
print(random.randint(a, b)) # a ≤ N ≤ b를 만족하는 어떤 랜덤한 정수 N을 리턴
print(random.uniform(a, b)) # a ≤ N ≤ b를 만족하는 어떤 랜덤한 소수 N을 리턴
0.552226707656501  # 실행할 때마다 다른 결과가 나온다

<os 모듈>

: 파이썬으로 운영체제 조작하기 위함

import os 

print(os.getlogin())  # 현재 컴퓨터에 어떤 계정으로 로그인 되어있는지 확인
print(os.getcwd))  # 현재 이 파일이 있는 폴더의 경로를 확인

<detetime 모듈>

: 날짜와 시간을 다루기 위한 다양한 클래스를 갖추고 있음

1.날짜 지정하기

# detetime 값 생성
pi_day = datetime.datetime(2020, 3, 14)
print(pi_day)
print(type(pi_day))
2020-03-14 00:00:00
<class 'datetime.datetime'>

2.시간 지정하기

pi_day = datetime.datetime(2020, 3, 14, 13, 6, 15)
print(pi_day)
print(type(pi_day))
2020-03-14 13:06:15
<class 'datetime.datetime'>

3.오늘 날짜 불러오기

today = datetime.datetime.now()
print(today)
print(type(today))
2020-04-05 17:49:12.360266
<class 'datetime.datetime'>

4.날짜 간의 차이 계산하기

today = datetime.datetime.now()
pi_day = datetime.datetime(2020, 3, 14, 13, 6, 15)
print(today - pi_day)
print(type(today - pi_day))  # 날짜간의 차이 구하기

today = datetime.datetime.now()
#날짜간의 차이 기간 지정해주기 
my_timedelta = datetime.timedelta(days=5, hours=3, minutes=10, seconds=50)

print(today)
print(today + my_timedelta)  # 더하기도 가능 
22 days, 4:42:57.360266
<class 'datetime.timedelta'>   # timedelta는 날짜간의 차이를 나타내는 타입

2020-04-05 17:54:24.221660
2020-04-10 21:05:14.221660

5.날짜, 시간 중 일부 값 추출하는 방법

today = datetime.datetime.now()

print(today)
print(today.year)  # 연도
print(today.month)  # 월
print(today.day)  # 일
print(today.hour)  # 시
print(today.minute)  # 분
print(today.second)  # 초
print(today.microsecond)  # 마이크로초
2020-04-05 17:59:21.709817
2020
4
5
17
59
21
709817

6.datetime 포맷팅 (strftime 사용)

today = datetime.datetime.now()

print(today)
print(today.strftime("%A, %B %dth %Y"))
2020-04-05 18:09:55.233501
Sunday, April 05th 2020
  • ***%A, %B, %d, %Y** 는 ‘포맷 코드’ 로 알맞은 거 찾아서 쓰기

사용자 입력 받기

input

<사용 예시>

name = input("이름을 입력하세요: ")
print(name)
이름을 입력하세요:    # 사용자가 입력을 하면 
이름  # 사용자가 입력한 이름 출력된다. 

-주의사항 : input은 문자열로만 값을 받는다. 따라서 다른 형식인 경우 type변환 필요함
<예시>

x = int(input("숫자를 입력하세요: "))
print(x + 5)
숫자를 입력하세요: 7
12

숫자 맞히기 게임

<나의 답안>

import random

answer = random.randint(1, 20) #  1-20 사이의 정수로 정답값 변수 지정

chance = 4 
guess = int(input("기회가 {}번 남았습니다. 1-20 사이에 숫자를 맞혀 보세요: ".format(chance)))

while chance < 0:
    print(guess)
    if guess == answer:
        print("축하합니다. {}번만에 숫자를 맞히셨습니다.".format{chance})
        break
    elif guess < anwer:
        print("Up")
    elif guess > anwer:
        print("Down")
    elif chance == 0:
        print("아쉽습니다. 정답은 {}였습니다.".formmat(anwer))
    chance -= 1

<모범 답안>

import random

# 상수 정의
ANSWER = random.randint(1, 20)
NUM_TRIES = 4

# 변수 정의
guess = -1
tries = 0

while guess != ANSWER and tries < NUM_TRIES:
    guess = int(input("기회가 {}번 남았습니다. 1-20 사이의 숫자를 맞혀보세요: ".format(NUM_TRIES - tries)))
    tries += 1    
    
    if ANSWER > guess:
        print("Up")
    elif ANSWER < guess:
        print("Down")

if guess == ANSWER:
    print("축하합니다. {}번 만에 숫자를 맞히셨습니다.".format(tries))
else:
    print("아쉽습니다. 정답은 {}입니다.".format(ANSWER))
profile
코린이의 개발공부

1개의 댓글

comment-user-thumbnail
2022년 3월 23일

와 대단해요ㅠㅠ 나날히 발전하시는거 같습니다
오늘도 잘 보고가요🤭

답글 달기