본문 바로가기
내일배움캠프 AI 웹 프로그래밍

내일배움캠프 16일차 TIL_class 객체(object) 다루기

by thriveview 2023. 8. 29.

오늘의 학습 키워드:

정규표현식(regex)

itertools

데카르트곱 구하기

requests

 

 

 

공부한 내용 본인의 언어로 정리하기: (복붙이많다... )

정규표현식 = regular expression의 약자인 regex라고함. 문자열이 특정 패턴과 일치하는지 판단하는 형식 언어

활용: 사용자가 입력한 이메일이 유효한 이메일인지, 유효한 핸드폰 번호를 입력했는지, 대문자로 시작하고 숫자로 끝나는 패턴의 단어가 몇번 반복되는지 등등 검증할 수 있음.

이메일 검증, 패스워드 안정성 검증, 핸드폰번호 검증과 같이 대중적으로 많이 사용되는 정규표현식 코드들은 구글에서 검색 해 보면 쉽게 찾아볼 수 있으므로 처음부터 혼자할 생각하지말고 구글링해서 소스를 찾는 방법도 추천. 

 

itertools = 효율적인 루핑을 위한 이터레이터를 만드는 함수.

특정 패턴이 무한하게 반복되는 배열을 만들거나 배열의 값을 일괄적으로 계산하는 등의 작업을 할 수 있음

 

requests = 파이썬에서 http 통신을 가능하게 해주는 모듈로, beautifulsoup과 함께 웹 크롤링을 하거나 api 통신이 필요할 때 사용

즉, 사용자가 https://www.naver.com 이라는 페이지에 접속했을 때 나오는 페이지를 python에서 requests 모듈을 사용하면 해당 데이터를 웹브라우저 없이 코드로 받아올 수 있다는 것을 의미합니다.

requests 요청에는 크게 네가지 종류의 method가 존재

  • GET : 데이터 정보 요청
  • POST : 데이터 생성 요청
  • PUT : 데이터 수정 요청
  • DELETE : 데이터 삭제 요청

requests를 요청하면 서버에서는 응답(response)을 내려주며, 응답은 내용(content)와 상태 코드(status code)를 받아오게 됩니다.

content는 서버에서 사용자에게 주는 응답 본문이며, status는 서버가 어떤 상태인지를 표현해준다.

 

데카르트곱 구하기

from itertools import product

sample1 = ["A", "B", "C", "D", "E"]
sample2 = [1, 2, 3, 4]

# 행 / 열을 구분하여 프린트 하기 위해 enumerate 사용
for i, v in enumerate(product(sample1, sample2), 1):
    print(v, end=" ")
    if i % len(sample2) == 0:
        print("")

# result output
"""
('A', 1) ('A', 2) ('A', 3) ('A', 4) 
('B', 1) ('B', 2) ('B', 3) ('B', 4) 
('C', 1) ('C', 2) ('C', 3) ('C', 4) 
('D', 1) ('D', 2) ('D', 3) ('D', 4) 
('E', 1) ('E', 2) ('E', 3) ('E', 4) 
"""

 

원소의 개수가 n개인 순열▼

from itertools import permutations

sample = ["A", "B", "C"]

# 원소의 개수가 3개인 순열 출력
for i in permutations(sample, 3):
    print(i)

# result output
"""
('A', 'B', 'C')
('A', 'C', 'B')
('B', 'A', 'C')
('B', 'C', 'A')
('C', 'A', 'B')
('C', 'B', 'A')
"""

 

 

오늘의 회고:

정규표현식을 사용해 이메일 검증하기

 

 

 

 

12시간 중 얼마나 몰입했는지:

10%

 

 

더 나은 미래를 위해 내일 어떤 공부를 진행할 것인지:

일단 하루하루 존버하는 느낌으로 버티자