본문 바로가기
공부/웹해킹

1주차 과제

by suyeon27 2023. 11. 10.
출처 : 박응용. 점프 투 파이썬.

 

 

01장 파이썬이란 무엇인가?
파이썬 : 인터프리터에 의해 실행되는 스크립트 언어

인터프리터 언어 : 소스 코드를 한 줄씩 해석한 후 그때그때 실행해 결과를 바로 확인할 수 있는 언어

(사용자가 입력한 소스 코드를 실행하는 환경 = ‘파이썬 셸(python shell)’)

파이썬 장점
1. 문법이 쉬워 빠르게 배울 수 있다.
2. 무료이지만 강력하다.
3. 파이썬은 다른 언어로 만든 프로그램을 파이썬 프로그램에 포함시킬 수 있다.
4. 간결하고 개발 속도가 빠르다.

*파이썬은 들여쓰기를 하지 않으면 프로그램이 실행되지 않는다.

파이썬으로 할 수 있는 일
1. 웹 프로그래밍 ex) 게시판, 방명록, 웹 사이트
2. 인공지능과 머신러닝 ex) 자연어 처리, 음성 인식, 이미지 인식
3. 수치 연산 프로그래밍 ex) 수치 연산 모듈을 제공 : 넘파이(Numpy)
4. 데이터 분석 ex) 데이터 처리, 통계 분석, 시각화 : 넘파이(NumPy), 판다스(Pandas), 맷플롯립(Matplotlib) 

등과 같은 라이브러리들을 활용
5. 데이터베이스 프로그래밍 ex) 파이썬은 사이베이스(Sybase), 인포믹스(Infomix), 오라클(Oracle), 

마이에스큐엘(MySQL), 포스트그레스큐엘(PostgreSQL) 등의 데이터베이스에 접근하기 위한 도구를 제공
*피클은 파이썬에서 사용하는 자료를 변형 없이 파일에 저장하거나 불러오는 일을 수행한다.
6. 시스템 유틸리티 제작하기 ex) 운영체제(윈도우, 리눅스 등)의 시스템 명령어를 사용할 수 있는 각종 도구를 

갖추고 있기 때문에 이를 바탕으로 파일 관리, 로그 분석, 시스템 모니터링 등과 같은 여러 가지 시스템 유틸리티를 

만드는 데 유리
*유틸리티란 컴퓨터를 사용하는 데 도움을 주는 여러 가지 소프트웨어를 말한다.
7. GUI 프로그래밍 ex) 윈도우 창에 있는 메뉴나 버튼
8. C/C++와 결합하기 ex) 호환가능
9. 사물 인터넷 ex) 라즈베리 파이에 연결된 모터 작동
*파이썬은 인공지능과 머신러닝 프로그래밍을 쉽게 할 수 있도록 사이킷런(scikit-learn), 텐서플로(TensorFlow), 파이토치(PyTorch), 케라스(Keras) 등과 같은 다양한 라이브러리를 제공

파이썬으로 할 수 없는 일
1. 시스템과 밀접한 프로그래밍 영역 
리눅스와 같은 운영체제 또는 엄청난 횟수의 반복과 연산이 필요한 프로그램을 만드는 것은 어렵다.
매우 빠른 속도를 요구하거나 하드웨어를 직접 건드려야 하는 프로그램에는 적합하지 않다.
2. 모바일 프로그래밍
아이폰 앱도 파이썬으로 개발할 수 없다.

*파이썬은 대소문자를 구별한다. 

for a in [1,2,3]:
print(a)
: ‘[1, 2, 3] 리스트의 앞에서부터 하나씩 꺼내 a 변수에 대입한 후 print(a)를 수행하라’

def는 파이썬에서 함수를 정의할 때 사용하는 예약어이다.
*예약어란 프로그래밍 언어에서 이미 문법적인 용도로 사용하고 있는 단어를 말한다.

파이썬 주석 : """ or '''




02장 파이썬 프로그래밍의 기초, 자료형
‘컴퓨터식 지수 표현 방식’
4.24E10은 4.24 * 10의 10승, 4.24e-10은 4.24 * 10의 마이너스 10승을 의미

8진수와 16진수
8진수(octal)를 만들기 위해서는 숫자가 0o 또는 0O(숫자 0 + 알파벳 소문자 o 또는 대문자 O)으로 시작하면 된다.
16진수(hexadecimal)를 만들기 위해서는 0x로 시작하면 된다.

x ** y #x의 y제곱

/연산자와 //연산자의 차이
7 / 4 = 1.75
7 // 4 = 1 #몫에 해당하는 정숫값 1만 리턴

문자열 안에 작은따옴표나 큰따옴표를 포함시키고 싶을 때
1. 문자열에 작은따옴표가 포함되면 그 문자열은 큰따옴표로 둘러싸면 된다. 
2. 문자열에 큰따옴표가 포함되면 그 문자열은 작은따옴표로 둘러싸면 된다.
3. ', " 앞에 역슬래시(\)를 사용해서 작은따옴표와 큰따옴표를 문자열에 포함하기

여러 줄인 문자열을 변수에 대입하고 싶을 때

1. 줄을 바꾸기 위한 이스케이프 코드 \n 삽입하기
2. 연속된 작은따옴표 3개 또는 큰따옴표 3개 사용하기

*파이썬은 문자열 연산이 가능하다.
문자열의 길이는 len 함수를 사용
문자열의 길이에는 공백 문자도 포함된다.

문자열 인덱싱 : 문자열 안의 특정한 값을 뽑아 내는 역할
a[-1]은 뒤에서부터 세어 첫 번째가 되는 문자
a[-0]은 a[0]과 똑같은 값

문자열 슬라이싱
a[0:4]는 a 문자열에서 번호 0부터 4까지의 문자를 뽑아 낸다는 뜻
공백 문자도 문자와 동일하게 취급

문자열 포매팅(문자열 안에 어떤 값을 삽입하는 방법)
1. 숫자 바로 대입 
2. 문자열 바로 대입
3. 숫자 값을 나타내는 변수로 대입
4. 2개 이상의 값 넣기 : % (변수, 변수)

*포매팅 연산자 %d와 %를 같이 쓸 때는 %%를 쓴다.

정렬
%10s는 전체 길이가 10개인 문자열 공간에서 대입되는 값을 오른쪽으로 정렬하고 그 앞의 나머지는 공백으로 

남겨 두라는 의미
왼쪽 정렬은 %-10s

소수점 표현하기
%0.xf
소수점 포인트 앞의 숫자는 문자열의 전체 길이를 의미
*0은 길이에 상관하지 않겠다는 의미이다.(생략가능_%.xf)
x = 소수점 뒤에 나올 숫자의 개수

format 함수를 사용한 포매팅
1. 숫자 바로 대입하기
 "I eat {0} apples".format(3)


2. 문자열 바로 대입하기
 "I eat {0} apples".format("five")


3. 숫자 값을 가진 변수로 대입하기
number = 3
 "I eat {0} apples".format(number)


4. 2개 이상의 값 넣기 
"I ate {0} apples. so I was sick for {1} days.".format(number, day)

5. 이름으로 넣기
"I ate {number} apples. so I was sick for {day} days.".format(number=10, day=3)

6. 인덱스와 이름을 혼용해서 넣기
 "I ate {0} apples. so I was sick for {day} days.".format(10, day=3)

 

정렬

왼쪽 정렬
:<10 표현식을 사용하면 치환되는 문자열을 왼쪽으로 정렬하고 문자열의 총 자릿수를 10으로 맞출 수 있다.
오른쪽 정렬
:>
가운데 정렬
:^
공백 채우기
:!<
왼쪽(<)으로 정렬하고 빈 공간을 !로 채웠다.

문자열 관련 함수들
문자 개수 세기 - count

위치 알려 주기 1 - find
만약 찾는 문자나 문자열이 존재하지 않는다면 -1을 반환한다.

위치 알려 주기 2 - index
만약 찾는 문자나 문자열이 존재하지 않는다면 오류가 발생한다.
문자열 삽입 - join
소문자를 대문자로 바꾸기 - upper
대문자를 소문자로 바꾸기 - lower
왼쪽 공백 지우기 - lstrip

오른쪽 공백 지우기 - rstrip
양쪽 공백 지우기 - strip

문자열 바꾸기 - replace
replace(바뀔_문자열, 바꿀_문자열)처럼 사용해서 문자열 안의 특정한 값을 다른 값으로 치환
문자열 나누기 - split

문자열은 이전에도 잠깐 언급했지만 자체의 값을 변경할 수 없는 immutable 자료형이다.
따라서 대입문을 사용해야 한다.
*문자열 자체의 값이 변경되는 것이 아니라 변경된 값을 리턴한다는 사실에 주의

리스트
리스트명 = [요소1, 요소2, 요소3, ...]
리스트 안에는 어떠한 자료형도 포함할 수 있다.
리스트도 문자열처럼 인덱싱과 슬라이싱이 가능하다.
str은 정수나 실수를 문자열로 바꾸어 주는 파이썬의 내장 함수이다.
del a[x]는 x번째 요솟값을 삭제

리스트 관련 함수
리스트에 요소 추가하기 - append

리스트 정렬 - sort

리스트 뒤집기 - reverse

인덱스 반환 - index
index(x) 함수는 리스트에 x 값이 있으면 x의 인덱스 값(위칫값)을 리턴한다.

리스트에 요소 삽입 - insert
insert(a, b)는 리스트의 a번째 위치에 b를 삽입하는 함수이다. 

리스트 요소 제거 - remove
remove(x)는 리스트에서 첫 번째로 나오는 x를 삭제하는 함수이다.

리스트 요소 끄집어 내기 - pop
pop()은 리스트의 맨 마지막 요소를 리턴하고 그 요소는 삭제한다.

pop(x)는 리스트의 x번째 요소를 리턴하고 그 요소는 삭제한다.

리스트에 포함된 요소 x의 개수 세기 - count

count(x)는 리스트 안에 x가 몇 개 있는지 조사하여 그 개수를 리턴하는 함수이다.

리스트 확장 - extend
extend(x)에서 x에는 리스트만 올 수 있으며 원래의 a 리스트에 x 리스트를 더하게 된다.

튜플
리스트는 [], 튜플은 ()으로 둘러싼다.
리스트는 요솟값의 생성, 삭제, 수정이 가능하지만, 튜플은 요솟값을 바꿀 수 없다.


리스트와 다른 2가지 차이점
1개의 요소만을 가질 때는 요소 뒤에 쉼표(,)를 반드시 붙여야 한다는 것과

t4 = 1, 2, 3처럼 소괄호(())를 생략해도 된다는 점이다.
튜플은 요솟값을 변경할수 없기 때문에 sort, insert, remove, pop과 같은 내장 함수가 없다.

딕셔너리는 Key와 Value를 한 쌍으로 가지는 자료형
{Key1: Value1, Key2: Value2, Key3: Value3, ...}
Key에 해당하는 Value를 얻는다.
튜플은 Key로 쓸 수 있다딕셔너리에는 동일한 Key가 중복으로 존재할 수 없다.
Value에는 변하는 값이든, 변하지 않는 값이든 아무 값이나 넣을 수 있다.

딕셔너리 관련 함수
Key 리스트 만들기 - keys
Value 리스트 만들기 - values
Key, Value 쌍 얻기 - items
Key: Value 쌍 모두 지우기 - clear
Key로 Value 얻기 - get
해당 Key가 딕셔너리 안에 있는지 조사하기 - in

집합집합(set)은 집합에 관련된 것을 쉽게 처리하기 위해 만든 자료형
집합 자료형은 다음과 같이 set 키워드를 사용해 만들 수 있다.

특징
중복을 허용하지 않는다.
순서가 없다(Unordered).

리스트나 튜플은 순서가 있기(ordered) 때문에 인덱싱을 통해 요솟값을 얻을 수 있지만,

set 자료형은 순서가 없기(unordered) 때문에 인덱싱을 통해 요솟값을 얻을 수 없다.

교집합 ‘&’, 합집합‘|’, 차집합'-'(빼기) 구하기

집합 자료형 관련 함수
값 1개 추가하기 - add
값 여러 개 추가하기 - update
특정 값 제거하기 - remove

불 자료형
불(bool) 자료형이란 참(True)과 거짓(False)을 나타내는 자료형
type(x)는 x의 자료형을 확인하는 파이썬의 내장 함수이다.
문자열, 리스트, 튜플, 딕셔너리 등의 값이 비어 있으면("", [], (), {}) 거짓이 되고 비어 있지 않으면 참이 된다. 

변수
변수_이름 = 변수에_저장할_값
id는 변수가 가리키고 있는 객체의 주소 값을 리턴하는 파이썬의 내장 함수
a is b  # a와 b가 가리키는 객체가 같을까?

b 변수를 생성할 때 a 변수의 값을 가져오면서 a와는 다른 주소를 가리키도록 만들 수는 없을까?

다음 2가지 방법
1. [:] 이용하기
첫 번째 방법은 다음과 같이 리스트 전체를 가리키는 [:]을 사용해서 복사하는 것이다.
2. copy 모듈 이용하기
from copy import copy
b = copy(a)는 b = a[:]과 동일

 




03장 프로그램의 구조를 쌓는다! 제어문
if 문의 기본 구조

if 조건문:
    수행할_문장1
    수행할_문장2
    ...
else:
    수행할_문장A
    수행할_문장B
    ...

들여쓰기는 언제나 같은 깊이로 해야 한다.
조건문 다음에 콜론(:)을 잊지 말자!

in         not in
x in 리스트 x not in 리스트
x in 튜플 x not in 튜플
x in 문자열 x not in 문자열

if 조건문:
    수행할_문장1 
    수행할_문장2
    ...
elif 조건문:
    수행할_문장1
    수행할_문장2
    ...
elif 조건문:
    수행할_문장1
    수행할_문장2
    ...
...
else:
   수행할_문장1
   수행할_문장2
   ... 

변수 = 조건문이_참인_경우의_값 if 조건문 else 조건문이_거짓인_경우의_값

while 문의 기본 구조
while 조건문:
    수행할_문장1
    수행할_문장2
    수행할_문장3
    ...

number = int(input())는 사용자의 숫자 입력을 받아들이는 것

while 문을 빠져나가지 않고 while 문의 맨 처음(조건문)으로 다시 돌아가게 만들고 싶은 경우가 생기게 된다. 

이때 사용하는 것이 바로 continue 문이다.

무한 루프
while True: 
    수행할_문장1 
    수행할_문장2
    ...

[Ctrl+C]를 눌러 빠져나가자.

for 문의 기본 구조
for 변수 in 리스트(또는 튜플, 문자열):
    수행할_문장1
    수행할_문장2
    ...

range 함수
range(시작_숫자, 끝_숫자) 형태
*print 문의 end 매개변수에는 줄바꿈 문자(\n)가 기본값으로 설정되어 있다.

리스트 컴프리헨션의 문법
[표현식 for 항목1 in 반복_가능_객체1 if 조건문1
      for 항목2 in 반복_가능_객체2 if 조건문2
      ...
      for 항목n in 반복_가능_객체n if 조건문n]

 

구구단 ex)
>>> result = [x*y for x in range(2,10)
...               for y in range(1,10)]
>>> print(result)

 



04장 파이썬의 입출력
파이썬 함수의 구조
def 함수_이름(매개변수):
    수행할_문장1
    수행할_문장2
    ...

매개변수와 인수
def add(a, b):  # a, b는 매개변수
    return a+b
print(add(3, 4))  # 3, 4는 인수

같은 의미를 가진 여러 가지 용어에 주의하자!
입력값을 다른 말로 함수의 인수, 파라미터, 매개변수 등으로 말하기도 하고, 

함수의 리턴값을 결괏값, 출력값, 반환값, 돌려 주는 값 등으로 말하기도 한다.

입력값과 리턴값이 있는 함수의 사용법
리턴값을_받을_변수 = 함수_이름(입력_인수1, 입력_인수2, ...)

입력값이 없고 리턴값만 있는 함수
리턴값을_받을_변수 = 함수_이름()

리턴값이 없는 함수
함수_이름(입력_인수1, 입력_인수2, ...)

입력값도, 리턴값도 없는 함수
함수_이름()

입력값이 몇 개이든 상관없다. 

*args처럼 매개변수 이름 앞에 *을 붙이면 입력값을 전부 모아 튜플로 만들어 주기 때문이다.
def 함수_이름(*매개변수):
    수행할_문장
    ...

**kwargs처럼 매개변수 이름 앞에 **을 붙이면 매개변수 kwargs는 딕셔너리가 되고, 

모든 Key=Value 형태의 입력값이 그 딕셔너리에 저장된다는 것을 알 수 있다.

함수는 return 문을 만나는 순간, 리턴값을 돌려 준 다음 함수를 빠져나가게 된다.
즉 함수는 return문을 만나는 순간 결괏값을 돌려준 다음 함수를 빠져나가게 된다.
초기화하고 싶은 매개변수는 항상 뒤쪽에 놓아야 한다는 것을 잊지 말자.
함수 안에서 사용하는 매개변수는 함수 밖의 변수 이름과는 전혀 상관없다는 뜻이다.
(다시 읽어보기)

함수 안에서 함수 밖의 변수를 변경하는 방법
1. return 사용하기
2. global 명령어 사용하기

lambda 예약어
함수_이름 = lambda 매개변수1, 매개변수2, ... : 매개변수를_이용한_표현식

사용자 입출력
사용자가 입력한 값을 어떤 변수에 대입하고 싶을 때 input 사용하기
input은 사용자가 키보드로 입력한 모든 것을 문자열로 저장한다.
input은 입력되는 모든 것을 문자열로 취급하기 때문에 숫자를 입력해도 숫자가 아닌 문자열이라는 것에 주의하자.

print 문으로 할 수 있는 일
큰따옴표로 둘러싸인 문자열은 + 연산과 동일하다.
문자열 띄어쓰기는 쉼표로 한다.
한 줄에 결괏값 출력하기
한 줄에 결괏값을 계속 이어서 출력하려면 매개변수 end를 사용해 끝 문자를 지정해야 한다.
end 매개변수의 초깃값은 줄바꿈(\n) 문자이다.

파일 읽고 쓰기
파일 생성하기
파일_객체 = open(파일_이름, 파일_열기_모드)

파일 열기 모드
r 읽기 모드: 파일을 읽기만 할 때 사용한다.
w 쓰기 모드: 파일에 내용을 쓸 때 사용한다.
a 추가 모드: 파일의 마지막에 새로운 내용을 추가할 때 사용한다.

파일을 읽는 여러 가지 방법
1. readline 함수 이용하기
파일의 첫 번째 줄을 읽어 출력
2. readlines 함수 사용하기
파일의 모든 줄을 읽어서 각각의 줄을 요소로 가지는 리스트를 리턴
3. read 함수 사용하기
파일의 내용 전체를 문자열로 리턴
4. 파일 객체를 for 문과 함께 사용하기
for 문과 함께 사용하여 파일을 줄 단위로 읽을 수 있다.

line = line.strip()  # 줄 끝의 줄 바꿈 문자를 제거한다.

파일에 새로운 내용 추가하기
쓰기 모드('w')로 파일을 열 때 이미 존재하는 파일을 열면 그 파일의 내용이 모두 사라지게 된다. 

하지만 원래 있던 값을 유지하면서 단지 새로운 값만 추가해야 할 경우도 있다. 

이런 경우에는 파일을 추가 모드('a')로 열면 된다.

파일을 열면(open) 항상 닫아(close) 주어야 한다. 
with 문과 함께 사용하기
with 문을 사용하면 with 블록(with 문에 속해 있는 문장)을 벗어나는 순간, 열린 파일 객체 f가 자동으로 닫힌다.

프로그램의 입출력
type은 바로 뒤에 적힌 파일 이름을 인수로 받아 해당 파일의 내용을 출력해 주는 명령어
C:\> type a.txt



05장 파이썬 날개 달기
클래스
*계산기는 이전에 계산한 결괏값을 기억하고 있어야 한다.

과자 틀 = 클래스
과자 틀로 찍어 낸 과자 = 객체
객체마다 고유한 성격을 가진다는 것이다. 

1. 클래스 구조 만들기
>>> class FourCal:
...     pass

2. 객체에 연산할 숫자 지정하기
>>> class FourCal:
...     def setdata(self, first, second):
...         self.first = first
...         self.second = second


3. 더하기 기능 만들기
>>> class FourCal:
...     def setdata(self, first, second):
...         self.first = first
...         self.second = second
...     def add(self):
...         result = self.first + self.second
...         return result


4. 곱하기, 빼기, 나누기 기능 만들기
...     def mul(self):
...         result = self.first * self.second
...         return result
...     def sub(self):
...         result = self.first - self.second
...         return result
...     def div(self):
...         result = self.first / self.second
...         return result

pass는 아무것도 수행하지 않는 문법으로, 임시로 코드를 작성할 때 주로 사용한다.
type은 파이썬이 자체로 가지고 있는 내장 함수로, 객체의 타입을 출력한다.

객체에 연산할 숫자 지정하기
>>> a.setdata(4, 2)

def setdata(self, first, second):   # 메서드의 매개변수
    self.first = first              # 메서드의 수행문
    self.second = second            # 메서드의 수행문

a.setdata(4, 2)처럼 호출하면 setdata 메서드의 첫 번째 매개변수 self에는 setdata 메서드를 호출한 객체 a가 

자동으로 전달

파이썬 메서드의 첫 번째 매개변수 이름은 관례적으로 self를 사용한다.

클래스로 만든 객체의 객체변수는 다른 객체의 객체변수에 상관없이 독립적인 값을 유지한다.

생성자(constructor)란 객체가 생성될 때 자동으로 호출되는 메서드를 의미한다. 

파이썬 메서드명으로 __init__를 사용하면 이 메서드는 생성자가 된다.


__init__ 메서드도 다른 메서드와 마찬가지로 첫 번째 매개변수 self에 생성되는 객체가 자동으로 

전달된다는 점을 기억하자.

클래스의 상속
class 클래스_이름(상속할_클래스_이름)
상속은 기존 클래스를 변경하지 않고 기능을 추가하거나 기존 기능을 변경하려고 할 때 사용

메서드 오버라이딩
부모 클래스(상속한 클래스)에 있는 메서드를 동일한 이름으로 다시 만드는 것

클래스변수
클래스_이름.클래스변수
클래스변수는 객체변수와 달리 클래스로 만든 모든 객체에 공유된다는 특징이 있다.
객체변수는 클래스변수와 동일한 이름으로 생성할 수 있다.

모듈
모듈 : 함수나 변수 또는 클래스를 모아 놓은 파이썬 파일
파이썬 확장자 .py로 만든 파이썬 파일은 모두 모듈이다.

import는 현재 디렉터리에 있는 파일이나 파이썬 라이브러리가 저장된 디렉터리에 있는 모듈만 불러올 수 있다.
파이썬 라이브러리는 파이썬을 설치할 때 자동으로 설치되는 파이썬 모듈을 말한다.


import의 사용 방법
1. import 모듈_이름
2. from 모듈_이름 import 모듈_함수
3. from 모듈_이름 import 모듈_함수1, 모듈_함수2
4. from mod1 import *

if __name__ == "__main__"을 사용하면
직접 이 파일을 실행했을 때는__name__ == "__main__"이 참이 되어 if 문 다음 문장이 수행된다. 이와 반대로 대화형 인터프리터나 다른 파일에서 이 모듈을 불러 사용할 때는 __name__ == "__main__"이 거짓이 되어 if 문 다음 문장이 수행되지 않는다.

다른 디렉터리에 있는 모듈을 불러오는 방법
sys.path.append 사용하기
PYTHONPATH 환경 변수 사용하기

패키지(뿌터다시공부)
파이썬에서 패키지packages란 관련 있는 모듈의 집합을 말한다. 

패키지는 파이썬 모듈을 계층적(디렉터리 구조)으로 관리할 수 있게 해 준다.

예외처리
오류 처리 방법
1. try-except 문
try:
    ...
except [발생오류 [as 오류변수]]:
    ...

2. try-finally 문
# try_finally.py
try:
    f = open('foo.txt', 'w')
    # 무언가를 수행한다.

    (... 생략 ...)

finally:
    f.close()  # 중간에 오류가 발생하더라도 무조건 실행된다.

3. 여러 개의 오류 처리하기
try:
    ...
except 발생오류1:
   ... 
except 발생오류2:
   ...

4. try-else 문
try:
    ...
except [발생오류 [as 오류변수]]:
    ...
else:  # 오류가 없을 경우에만 수행
    ...

오류 회피하기
try 문 안에서 FileNotFoundError가 발생할 경우, pass를 사용하여 오류를 그냥 회피

오류 일부러 발생시키기
NotImplementedError는 파이썬에 이미 정의되어 있는 오류로, 꼭 작성해야 하는 부분이 구현되지 않았을 경우 일부러 오류를 발생시키기 위해 사용한다.

내장 함수
abs
abs(x)는 어떤 숫자를 입력받았을 때 그 숫자의 절댓값을 리턴하는 함수이다.

all
all(x)는 반복 가능한 데이터 x를 입력값으로 받으며 이 x의 요소가 모두 참이면 True,

거짓이 하나라도 있으면 False를 리턴한다.
반복 가능한 데이터란 for 문에서 사용할 수 있는 자료형을 의미한다. 리스트, 튜플, 문자열, 딕셔너리, 집합 등이 있다.

any
any(x)는 반복 가능한 데이터 x를 입력으로 받아 x의 요소 중 하나라도 참이 있으면 True를 리턴하고, 

x가 모두 거짓일 때만 False를 리턴한다. 즉, all(x)의 반대로 작동한다.

chr
chr(i)는 유니코드 숫자 값을 입력받아 그 코드에 해당하는 문자를 리턴하는 함수이다.
유니코드는 전 세계의 모든 문자를 컴퓨터에서 일관되게 표현하고 다룰 수 있도록 설계된 산업 표준 코드이다.

dir
dir은 객체가 지닌 변수나 함수를 보여 주는 함수이다. 

divmod
divmod(a, b)는 2개의 숫자 a, b를 입력으로 받는다. 그리고 a를 b로 나눈 몫과 나머지를 튜플로 리턴한다.

enumerate
enumerate는 ‘열거하다’라는 뜻이다. 이 함수는 순서가 있는 데이터(리스트, 튜플, 문자열)를 입력으로 받아 

인덱스 값을 포함하는 enumerate 객체를 리턴한다.
보통 enumerate 함수는 for 문과 함께 사용한다.

eval
eval(expression)은 문자열로 구성된 표현식을 입력으로 받아 해당 문자열을 실행한 결과값을 리턴하는 함수이다.

filter
filter란 ‘무엇인가를 걸러 낸다’라는 뜻으로, filter 함수도 이와 비슷한 기능을 한다.
filter(함수, 반복_가능한_데이터)

hex
hex(x)는 정수를 입력받아 16진수(hexadecimal) 문자열로 변환하여 리턴하는 함수이다.

id
id(object)는 객체를 입력받아 객체의 고유 주솟값(레퍼런스)을 리턴하는 함수이다.

input
input([prompt])는 사용자 입력을 받는 함수이다. 입력 인수로 문자열을 전달하면 그 문자열은 프롬프트가 된다.
[]는 괄호 안의 내용을 생략할 수 있다는 관례 표기법이라는 것을 기억하자.

int
int(x)는 문자열 형태의 숫자나 소수점이 있는 숫자를 정수로 리턴하는 함수이다. 만약 정수가 입력되면 그대로 리턴한다.

isinstance
isinstance(object, class) 함수는 첫 번째 인수로 객체, 두 번째 인수로 클래스를 받는다. 

입력으로 받은 객체가 그 클래스의 인스턴스인지를 판단하여 참이면 True, 거짓이면 False를 리턴한다.

len
len(s)는 입력값 s의 길이(요소의 전체 개수)를 리턴하는 함수이다.

list
list(iterable)은 반복 가능한 데이터를 입력받아 리스트로 만들어 리턴하는 함수이다.

map
map(f, iterable)은 함수(f)와 반복 가능한 데이터를 입력으로 받는다. map은 입력받은 데이터의 각 요소에 

함수 f를 적용한 결과를 리턴하는 함수이다.

max
max(iterable)은 인수로 반복 가능한 데이터를 입력받아 그 최댓값을 리턴하는 함수이다.

min
min(iterable)은 max 함수와 반대로, 인수로 반복 가능한 데이터를 입력받아 그 최솟값을 리턴하는 함수이다.

oct
oct(x)는 정수를 8진수 문자열로 바꾸어 리턴하는 함수이다.

open
open(filename, [mode])은 ‘파일 이름’과 ‘읽기 방법’을 입력받아 파일 객체를 리턴하는 함수이다. 

읽기 방법(mode)을 생략하면 기본값인 읽기 모드(r)로 파일 객체를 만들어 리턴한다.

ord
ord(c)는 문자의 유니코드 숫자 값을 리턴하는 함수이다.
ord 함수는 chr 함수와 반대로 동작한다.

pow
pow(x, y)는 x를 y제곱한 결괏값을 리턴하는 함수이다.

range
range([start,] stop [,step])은 for 문과 함께 자주 사용하는 함수이다. 이 함수는 입력받은 숫자에 해당하는 범위 값을 

반복 가능한 객체로 만들어 리턴한다.

round
round(number [,ndigits])는 숫자를 입력받아 반올림해 리턴하는 함수이다.
[,ndigits]는 ndigits가 있을 수도 있고, 없을 수도 있다는 의미이다.

sorted
sorted(iterable)는 입력 데이터를 정렬한 후 그 결과를 리스트로 리턴하는 함수이다.

str
str(object)는 문자열 형태로 객체를 변환하여 리턴하는 함수이다.

sum
sum(iterable)은 입력 데이터의 합을 리턴하는 함수이다.


tuple
tuple(iterable)은 반복 가능한 데이터를 튜플로 바꾸어 리턴하는 함수이다. 만약 입력이 튜플인 경우에는 그대로 리턴한다.

 

type
type(object)는 입력값의 자료형이 무엇인지 알려 주는 함수이다.

zip
zip(*iterable)은 동일한 개수로 이루어진 데이터들을 묶어서 리턴하는 함수이다.


표준 라이브러리
datetime.date
datetime.date는 연, 월, 일로 날짜를 표현할 때 사용하는 함수이다.


time.time
time.time()은 UTC(universal time coordinated, 협정 세계 표준시)를 사용하여 현재 시간을 실수 형태로 리턴하는 함수이다.

time.localtime
time.localtime은 time.time()이 리턴한 실숫값을 사용해서 연, 월, 일, 시, 분, 초, ... 의 형태로 바꾸어 주는 함수이다.

time.asctime
time.asctime은 time.localtime가 리턴된 튜플 형태의 값을 인수로 받아서 날짜와 시간을 알아보기 쉬운 형태로

리턴하는 함수이다.

time.ctime
time.asctime(time.localtime(time.time()))은 간단하게 time.ctime()으로 표시할 수 있다. 

ctime이 asctime과 다른 점은 항상 현재 시간만을 리턴한다는 점이다.

time.strftime
strftime 함수는 시간에 관계된 것을 세밀하게 표현하는 여러 가지 포맷 코드를 제공한다.

time.sleep
time.sleep 함수는 주로 루프 안에서 많이 사용한다. 이 함수를 사용하면 일정한 시간 간격을 두고 루프를 

실행할 수 있다. 

math.gcd
math.gcd 함수를 이용하면 최대 공약수(gcd, greatest common divisor)를 쉽게 구할 수 있다.

math.lcm
math.lcm은 최소 공배수(lcm, least common multiple)를 구할 때 사용하는 함수이다.

random
random은 난수(규칙이 없는 임의의 수)를 발생시키는 모듈이다. 먼저 random과 randint 함수에 대해 알아보자.

itertools.zip_longest
itertools.zip_longest(*iterables, fillvalue=None) 함수는 같은 개수의 자료형을 묶는 파이썬 내장 함수인 zip 함수와 똑같이 동작한다. 하지만 itertools.zip_longest() 함수는 전달한 반복 가능 객체(*iterables)의 길이가 서로 다르다면 긴 객체의 길이에 맞춰 fillvalue에 설정한 값을 짧은 객체에 채울 수 있다.

itertools.permutation
itertools.permutations(iterable, r)은 반복 가능 객체 중에서 r개를 선택한 순열을 이터레이터로 리턴하는 함수이다.
*이터레이터란 반복 가능한 객체를 의미한다.

itertools.combination
itertools.combinations(iterable, r)은 반복 가능 객체 중에서 r개를 선택한 조합을 이터레이터로 리턴하는 함수이다.

functools.reduce
functools.reduce(function, iterable)은 함수(function)를 반복 가능한 객체(iterable)의 요소에 

차례대로(왼쪽에서 오른쪽으로) 누적 적용하여 이 객체를 하나의 값으로 줄이는 함수이다.

operator.itemgetter
operator.itemgetter는 주로 sorted와 같은 함수의 key 매개변수에 적용하여 다양한 기준으로 정렬할 수 있도록 

도와주는 모듈이다.

shutil
shutil은 파일을 복사(copy)하거나 이동(move)할 때 사용하는 모듈이다.

glob
가끔 파일을 읽고 쓰는 기능이 있는 프로그램을 만들다 보면 특정 디렉터리에 있는 파일 이름 모두를 

알아야 할 때가 있다. 이럴 때 사용하는 모듈이 바로 glob이다.

pickle
pickle은 객체의 형태를 그대로 유지하면서 파일에 저장하고 불러올 수 있게 하는 모듈이다. 

os
os 모듈은 환경 변수나 디렉터리, 파일 등의 OS 자원을 제어할 수 있게 해 주는 모듈이다.
내 시스템의 환경 변숫값을 알고 싶을 때 - os.environ
디렉터리 위치 변경하기 - os.chdir
디렉터리 위치 돌려받기 - os.getcwd
시스템 명령어 호출하기 - os.system
실행한 시스템 명령어의 결괏값 돌려받기 - os.popen

zipfile
zipfile은 여러 개의 파일을 zip 형식으로 합치거나 이를 해제할 때 사용하는 모듈이다.

threading
컴퓨터에서 동작하고 있는 프로그램을 프로세스(process)라고 한다. 보통 1개의 프로세스는 1가지 일만 하지만, 

스레드(thread)를 사용하면 한 프로세스 안에서 2가지 또는 그 이상의 일을 동시에 수행할 수 있다.

tempfile
파일을 임시로 만들어서 사용할 때 유용한 모듈이 바로 tempfile이다. tempfile.mkstemp()는 중복되지 않는 임시 파일의 이름을 무작위로 만들어서 리턴한다.

traceback
traceback은 프로그램 실행 중 발생한 오류를 추적하고자 할 때 사용하는 모듈이다.

json
json은 JSON 데이터를 쉽게 처리하고자 사용하는 모듈이다.
다음은 개인정보를 JSON 형태의 데이터로 만든 myinfo.json 파일이다.

urllib
urllib은 URL을 읽고 분석할 때 사용하는 모듈이다.

webbrowser
webbrowser는 파이썬 프로그램에서 시스템 브라우저를 호출할 때 사용하는 모듈이다.

외부 라이브러리
pip
pip은 파이썬 모듈이나 패키지를 쉽게 설치할 수 있도록 도와주는 도구

pip 사용법
pip install
pip install SomePackage 
pip uninstall
pip uninstall SomePackage

특정 버전으로 설치하기
pip install SomePackage==1.0.4
pip install SomePackage 

최신 버전으로 업그레이드하기
pip install --upgrade SomePackage 

설치된 패키지 확인하기
pip list

Faker Faker

테스트용 가짜 데이터를 생성할 때 사용하는 라이브러리

sympy sympy

방정식 기호(symbol)를 사용하게 해 주는 외부 라이브러리

'공부 > 웹해킹' 카테고리의 다른 글

7주차 과제  (0) 2024.01.14
6주차 과제  (0) 2023.12.15
5주차 과제  (0) 2023.12.08
3주차 과제  (0) 2023.11.24
2주차 과제  (0) 2023.11.17

댓글