3. 파이썬 응용

YoonA Kim·2022년 11월 28일

파이썬

목록 보기
3/6

1. 모듈 맛보기

1.1 모듈

같은 폴더 내 파이썬에서 정의된 함수를 끌어다 올 수 있음

import ~함수 가져올 파이썬 파일=모듈 이름~~
print(~모듈이름~.함수(,))

모듈이름이 너무 길어서 귀찮을때, 모듈이름을 축약한 간략한 이름으로 정의
import calculator as calc

모듈에서 특정 함수만 가져오기,
그 경우 모듈이름을 사용하지 않아도 된다!
from calculator import add, mulitply

print(add(2,5))

모듈에서 모든 함수 가져오는 방법도 있다.
하지만 추천은 안함... 출처가 헷갈릴 때가 있기 때문
from calcaulator import *

1.2 스탠다드 라이브러리

별도의 모듈 파일 없이, 기본으로 갖춰진 모듈이라고 생각하면 된다
그 중 대표적인 스탠드드 라이브러리

1. import math

print(math.log10(100)) - 로그 함수
print(math.cos(0)) - 코사인 함수
print(math.pi)) - 원주율 변수

2. import random

random.random() -- 0.0과 1.0 사이의 랜덤한 숫자가 리턴, 실행할때마다 새로운 값
random.randint(a, b) -- a ≤ N ≤ b를 만족하는 어떤 랜덤한 정수 N을 리턴
random.uniform(a, b) -- a ≤ N ≤ b를 만족하는 어떤 랜덤한 소수 N을 리턴

3. import os

print(os. getlogin()) -- 어떤 계정에 로그인 되어있는지
print(os.getcwd()) -- 현재 이 파일의 경로 알려주는

4. import datetime

datetime.datetime(a, b, c, d, e, f) -- 년, 월, 일, 시, 분, 초까지 설정해 리턴
-- 출력형태 : 2022-10-20 14:00:00

datetime.datetime.now() --- 코드를 실행한 바로 지금 이 시간을 리턴함

datetime으로 리턴한 일시 간을 빼서 일시의 차이를 도출할 수 있다.
그 경우 timedelta라는 타입이 나오는데 이건 날짜 간의 차이를 나타낸다.
timedelta를 생성해서 datetime 값에 더해줄 수 있다.

today = datetime.datetime.now()
pi_day = datetime.datetime(2022, 10, 20, 14, 13, 00)
print(today - pi_day)
---- 22 days, 4:42:48.3049582
<class 'datetime.timedelta'>

print(today + my_timedelta)

datetime에서 연도, 월 등의 값을 추출하는 방법

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)

datetime 포맷팅
strftime을 활용해서 우리 입맛대로 이쁜 값의 일시를 출력할 수 있다.
이때 %A와 같은 것은 포맷코드로 포맷코드는 별도로 검색해서 확인 필요하다.

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 요일 (짧은 버전) Mon
%A 요일 (풀 버전) Monday
%w 요일 (숫자 버전, 0~6, 0이 일요일) 5
%d 일 (01~31) 23
%b 월 (짧은 버전) Nov
%B 월 (풀 버전) November
%m 월 (숫자 버전, 01~12) 10
%y 연도 (짧은 버전) 16
%Y 연도 (풀 버전) 2016
%H 시간 (00~23) 14
%I 시간 (00~12) 10
%p AM/PM AM
%M 분 (00~59) 34
%S 초 (00~59) 12
%f 마이크로초 (000000~999999) 413215
%Z 표준시간대 PST
%j 1년 중 며칠째인지 (001~366) 162
%U 1년 중 몇 주째인지 (00~53, 일요일이 한 주의 시작이라고 가정) 35
%W 1년 중 몇 주째인지 (00~53, 월요일이 한 주의 시작이라고 가정) 35

2. input

2.1 input

사용자가 입력한 값을 리턴하는 함수
첫번째 파라미터는 문자열로, 사용자가 입력해야하는 값에 대한 설명이 주로 들어간다

input("이름을 적으시오: ") ---- 이름을 적으시오:

input을 실행하면 사용자가 값을 입력할 수 있도록
실행 도중에 멈춰 문자열을 띄워준다.
문자열 옆에 값을 입력하고 엔터를 누르면 input에 사용자 값이 리턴되며 함수 종료.

input("이름을 적으시오: ") ---- 이름을 적으시오: 김윤아
print(input) ---- 김윤아

input의 리턴값은 무조건 문자열로 이를 정수, 소수로 바꾸고 싶으면 int, float 함수를 적용해야한다.

3. 파일 읽고 쓰기

3.1 파일 읽기

.txt 문서를 파이참에 불러올 수 있다.

같은 폴더에 있는 경우,
파일명 chicken인 파일을 불러올때.
with open('chicken.txt', 'r') as f:

만약 다른 docu라는 폴더에 있는 파일을 가져올 경우
with open('docu/chicken.txt', 'r') as f:

여기서 'r'은 읽어온다는 뜻
'w'는 쓴다는 뜻

chicken.txt의 값을 변수 f에 담았다는 뜻이다.
f는 문장렬도 리스트도 아닌 무언가
하지만 리스트처럼 for문으로 비슷하게 사용할 수 있다.

with open('chicken.txt', 'r') as f:
for line in f :
print(line)
---- txt의 각 줄줄이 값이 출력된다

3.2 strip

화이트 스페이스
= 문자열에 있는 공백, 탭, 엔터를 뜻한다 " " "\tap" "\n"

.txt등에 엔터를 해가며 문장을 작성했을 경우,
그 값에는 우리 눈엔 안보이지만 코딩상 뒤에 "\n"이 들어가 있다.
그러면 파이썬 값에는 엔터가 두번 들어가는 효과가 발생하게 된다.
파이썬도 print나 line 등을 사용할때 자동으로 엔터가 들어가니까.

이런 경우 화이트 스페이스를 삭제하기 위한 함수가 strip.

print(" abc def ".strip()) --- 앞뒤 화이트 스페이스가 삭제되고 abc def만 출력된다.

중간의 화이트 스페이스는 삭제되지 않는다.

3.3 split

my_string = "1.2.3"
print(my_string.split(".")) ---- ['1', '2', '3']

full_name = "Kim, Yoona"
name_data = full_name.split(", ") 
last_name = name_data[0]
first_name = name_data[1]

split() 괄호 안 파라미터를 넣지 않으면 걍 화이트 스페이스를 기준으로 절단된다

split을 이용해 리스트를 만들면 기본적으로 문자열이다.
정수 등으로 만들고 싶으면 형변환 필요.

3.4 파일쓰기

with open('new_file.txt', 'w') as f:
f.write("Hello World!"\n) ----- 파이썬과 같은 폴더에 new_file.txt가 생기며 그 안에 write()에 입력한 파라미터가 입력되어있다.

'r'은 읽기
'w'는 쓰기인데, 무조건 새로 써진다
만약 기존 써져있는 내용에 추가를 하고 싶으면
'a'(append)를 사용한다

(이미 'new_file.txt'에 Hello World!가 입력되어있는 상황에서
with open ('new_file.txt', 'a') as f:
f.write("My name is Yuna!") ---- 헬로 월드 아래에 이 내용이 추가된다.

'a'로 할때 해당 파일이 존재하지 않으면
새로 생성하며 작성을 한다.

여러개의 값을 한꺼번에

  1. 한번에 리턴하기
def square_and_cube(x):
    square = x ** 2
    cube = x ** 3
    return square, cube
  1. 한번에 저장하기
s, c = square_and_cube(2)
print(s)
print(c)
profile
코딩 배우는 중

0개의 댓글