티스토리 뷰

1. random

- random.randrange(a,b): a이상 b미만의 수 중 무작위로 하나 반환

 

2. math

- math.pi= 파이(=3.14...)

- math.e = e(=2.71...)

- math.log(b,a) : a^x = b 일때, x = log(a)b

- math.factorial(n)

 

3. time

- time.ctime(): 요일 "월 일 시간 년" 순으로 현재 시간을 문자열로 반환

 

4. urllib

- urlopen(): 해당url의 html 파일을 가져옴 

<http.client.HTTPResponse object at 0x7fe2f640ecf8>

- read(): 결과를해독해 문자열로 반환

- decode(): 문자열을 특정 인코딩 방식으로 해독

from urllib.request import urlopen

url = 'https:example.com'
webpage = urlopen(url).read().decode('utf-8')
print(webpage)

 

5. string

- string.digits: 모든 숫자를 이어 붙인 문자열

- string.punctuation: 기본적으로입력 가능한 모든 특수문자를 모아둔 문자열

- string.ascii_lowercase: 소문자 알파벳을 나열한 문자열

import string

print(string.digits)
# "0123456789"

print(string.punctuation)
# !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~

print(string.ascii_lowercase)
# 출력: 'abcdefghijklmnopqrstuvwxyz

 

6. isinstance : 문자열인지 확인

s = "hello"
if isinstance(s, str):
    print("문자열입니다.")
    
# 문자열입니다.

 

7. split: 기준으로 문자열 분리해 리스트로 반환

s= "he..llo"

print(s.split('.'))

# ['he', '', 'llo']
# .을 기준으로 .왼쪽의 he, 오른쪽의 빈 문자열 "", .다음의 llo

 

8. reversed(): 반복 가능한 객체를 뒤집어줌 

nums = [1, 2, 3, 4]
rev = reversed(nums)
print(list(rev))  # [4, 3, 2, 1]

s = "hello"
# print(reversed(s))는 <reversed object at 0x00000271988195D0>를 반환
print(''.join(reversed(s)))  # 'olleh'

for char in reversed("abc"):
    print(char)
# 출력:
# c
# b
# a

 

9. 모듈과 라이브러리

1) 모듈이란?

- 하나의 파이썬 파일(.py), 변수, 함수, 클래스 등이 들어있음

- 예: import math, import random

# mymodule.py
def greet(name):
    print(f"Hello {name}")


# main.py
import mymodule
mymodule.greet("Alice")  # Hello Alice

2) 패키지란?

- 관련된 모듈(.py 파일)들의 모음(관련 모듈들을 담은 폴더)

- 폴더 + __init__.py 파일 

- 예시 os, collections, sklearn.tree

 

3) 라이브러리란?

- 모듈 + 패키지 + 설정 + 문서(예제, 설명서 등) 등 목적에 맞춘 완성형 도구 => 내가 필요할 때 불러서 쓰는 도구

- 제어 흐름: 내가 호출함 => 내 코드가 주도, 구조가 자유롭움(어떻게 쓸지는 나의 선택)

- 예: numpy, pandas, scikit-learn  등

- 라이브러리 구조 예시:

mylibrary/
├── __init__.py
├── module1.py
├── module2.py
└── data/
    └── dataset.csv

 

4) 프레임워크란?

- 정해진 틀 안에서 내가 코드를 넣는 구조

- 제어흐름: 프레임워크가 내 코드를 호출함=> 프레임워크가 주도, 구조가 정해져있음(어디에 뭘 넣을지)

-예: Django => 프로젝트 폴더 구조에 models.py, urls.py, views.py 가 있어야함

mysite/
├── manage.py
├── mysite/
│   ├── __init__.py
│   ├── settings.py       설정은 여기서만 해야 함
│   ├── urls.py           라우팅은 여기에
│   └── wsgi.py
└── app/
    ├── models.py         DB 모델은 여기에
    ├── views.py          화면 로직은 여기에
    ├── urls.py
    └── ...

* FastAPI는 프레임워크지만, 라이브러리처럼 사용 => main.py 하나로 시작 가능하고, 전부 내 마음대로 나눌 수 있음

- 어떤 파일 이름을 쓰든, 어떤 폴더 구조든 FastAPI가 강제하지 않음, import만 하면 됨

- @app.get()같이 데코레이터로 등록만 하면 끝 => 라우팅, 의존성 주입, 리턴 방식까지 내가 정의

=> 코드를 가져다 쓰는 느낌, 라이브러리처럼 구성 가능

 

반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
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
글 보관함