-
[n511] Python ProgrammingAI 부트캠프 2022. 1. 18. 10:33
프로그래밍과 문제해결
- 알고리즘 : 효율적인 문제 해결 프로세스
- 자료구조 : 프로그램 또는 데이터 구조
- 문제를 해결할 때 가장 중요한 점은 최소 비용, 최대 효율!
정규표현식
[정규표현식] re 모듈
정규표현식 regular expression 특정한 패턴과 일치하는 문자열을 '검색', '치환', '제거' 하는 기능을 지원 정규표현식의 도움없이 패턴을 찾는 작업(Rule 기반)은 불완전 하거나, 작업의 cost가 높음 e.
da-journal.com
다양한 메소드의 활용
rjust(width, [fillchar])
특정 문자를 원하는 문자로 지정한 길이만큼 채우는 메소드이다.
#"0abcd" print("abcd".rjust(5,"0")) # 원하는문자열.rjust(몇개만큼채울까, "무엇으로 채울까")
zfill(width)
그 자릿수 만큼 채워 준다
#"002" print("2".zfill(3)) #"50000" print("50000".zfill(5)) #"00123" print("123".zfill(5))
split
deepcopy
깊은 복사는 원본이 바뀌더라도 영향을 받지 않게 완전히 새로운 변수에 저장하는 메소드이다.
import copy ex = [[1, 2], [3, 4, 5]] ex_deepcopy = copy.deepcopy(ex) # 깊은 복사 -> 즉, 원본에 영향 받지 않는 변수를 새로 지정. ex_copy = ex.copy() # 얕은 복사 -> 원본이 바뀌면 영향 받는다. ex[1].append(6) # 원본을 수정한다. print(ex) # 원래 변수 print(ex_deepcopy) # 값이 변하지 않음을 확인. print(ex_copy) # 원본에 따라 값이 변한다.
에러상황파악(Error & Warning)
- IndentationError: 들여쓰기를 잘 못 했을 때 발생
- SyntaxError: 예약어로 변수를 선언한다거나 반복문 끝에 ':'를 쓰지 않은 등 문구에 에러가 있을 때 발생
- KeyboardInterrupt: 사용자가 종료 단축키를 눌렀을 때 발생
- 경고 (Warning): 에러는 아니지만, 메모리 사용이 비효율 등 일 때 발생
컬렉션 자료형의 내장메소드
append(), extend(), insert()
- 모두 리스트에 값을 넣는 기능은 같다.
- a.insert(len(a), x) 와 a.append(x) 는 같은 의미이다.
- 삽입하고자 하는 값이 리스트일 때, append()는 리스트 자체로 삽입되고, extend()는 그 안의 값이 삽인된다.
ans=[] for i in range(10, 100): if (i%5 == 0): ans.append(str(i)) # ans.insert(len(ans), str(i)) print(','.join(ans))
del(), remove(), pop()
- remove는 리스트의 값을 이용해서 삭제한다.
- pop은 리스트의 인덱스를 이용해서 삭제하며, 삭제된 값을 반환한다.
- del은 리스트의 인덱스를 사용하지만, 리턴 값이 없다.
count(), index()
- count()는 해당 값이 몇 개 있는 가를 찾는다.
- index()는 해당 값이 위치한 첫 번째 인덱스를 찾는다.
a =[1, 2, 3, 4, 5, 1, 2, 1] a.index(1) # 0 a =[1, 2, 3, 4, 5, 1, 2, 1] a.count(1) # 3
sort, sorted
- sort()는 리스트의 원본을 수정한다.
- sorted()는 원본은 그대로 두되, 정렬된 리스트를 반환한다.
'AI 부트캠프' 카테고리의 다른 글
[n513] 파이썬 with OOP (0) 2022.01.20 [n512] 파이썬을 활용한 문제 해결 (0) 2022.01.19 [n435] 이미지 처리 요약 (0) 2022.01.12 [프로젝트] 얼굴 사진으로 나이 감지하기 (0) 2022.01.11 [n434] GAN (0) 2022.01.05