본문 바로가기
반응형

BackEnd/파이썬21

[파이썬] 파이썬 formatting 방식 %-format 과str.format() 은 대표적인 formatting 방식이다. %-format은 앞에서 형식을 지정해주고 % 뒤에는 대입할 값을 입력한다. str.format()은 {} 사용해 값을 넣을 자리를 설정하고 .format으로 값을 설정한다 print('%s %s' % ('one', 'two')) print('{} {}'.format('one', 'two')) print('%d %d' % (1, 2)) print('{} {}'.format(1, 2)) %-format에 사용되는 형식 리스트다. 아래 표에 맞게 형식을 넣어주면 된다. type 설명 %s 문자열 %c 문자 1개 %d 정수 %f 부동소수 %o 8진수 %x 16진수 %% litetal % (문자 % 자체) python 3.6 이.. 2023. 2. 6.
[파이썬] 2차원 리스트 깊은복사 2차원 리스트를 복사하는 방법을 알아보자 1. deepcopy 모듈 import copy list_=[[1,2,3],[4,5,6]] list_copy=copy.deepcopy(list_) deepcopy모듈을 사용해 깊은 복사가 가능하다 2. slicing a = [[1, 2], [3, 4]] b = [arr[:] for arr in a] 1은 모듈만 외우면 편하게 사용할 수 있고 시간적인 측면에서는 2가 더 빠르다고 한다 각자의 상황에 맞게 골라서 사용하면 된다 2023. 2. 6.
[파이썬] 자료구조 깊이우선탐색(DFS) ''' 재귀함수 처리 못하면 스택에 매개변수, 지역변수, 복귀주소 저장 ''' def DFS(x): if x>0: DFS(x-1) print(x) if __name__=="__main__": DFS(3) 재귀함수를 dfs 방식으로 구현한 예시이다 ''' print root역할 , 위치에따라 순회 종류 결정됨 DFS(v*2) print(v,end=' ') #중위순회 DFS(v*2+1) DFS(v*2) DFS(v*2+1) print(v,end=' ') #후위순회 ex) 병합정렬 ''' def DFS(v): if v>7: return else: print(v,end=' ') #전위순회 DFS(v*2) DFS(v*2+1) if __name__=="__main__": DFS(1) print에 위치에따라 순회 종류.. 2023. 2. 3.
[파이썬] 파이썬으로 객체 지향 프로그래밍 구현 OOP(Object-Oriented Programming): 객체 지향 프로그래밍 객체: 실생활에서 일종의 물건, 속성과 행동을 가짐. OOP는 이러한 객체 개념을 속성은 변수, 행동은 함수로 표현 ex) 붕어빵 틀: class, 붕어빵: instance ※ 변수명 상식 - snake_case : 띄워쓰기 부분에 “_” 를 추가 뱀 처럼 늘여쓰기, 파이썬 함수/변수명에 사용 - CamelCase: 띄워쓰기 부분에 대문자 낙타의 등 모양, 파이썬 Class명에 사용 class 선언 class SoccerPlayer(object): Attribute 추가하기 - Attribute 추가는 __init___ , self와 함께! __init__은 객체 초기화 예약 함수 class SoccerPlayer(obje.. 2023. 1. 31.
[파이썬] 파이썬 기본 문법 파이썬 기본 문법을 짚고 넘어가겠습니다. 값 교환 # 값 교환 a,b=10,20 a,b=b,a 변수타입 확인 #변수타입 확인 a=123456789123456789123 type(a) 문자 출력 설정 a,b,c=1,2,3 print(a,b,c, sep=', ') print(a,b,c, sep='\n') 변수 입력 받기 #수 하나 입력 a=input('숫자를 입력하세요 : ') print(a) #문자 두 단어 입력 a,b=input('숫자를 입력하세요 : ').split() print(a,b) #수 두 개 입력 a,b=map(int,input('숫자를 입력하세요 : ').split()) 대문자,소문자 변환 string='it is time' #변수에 저장해야함 print(string.upper()) prin.. 2023. 1. 23.
[파이썬] 파이썬 round 반올림 오류와 해결 방법 파이썬에서 반올림할때 사용하던 round에 오류가 있다는 사실을 발견했다. 4.5를 대입하면 4가 나오고 5.5를 대입하면 6이 나온다. 바로, 파이썬 round이 round_half_even방식이기 때문이다. round_half_even은 앞자리의 짝수값을 따라 가는 방식이다. 4.5에서 앞자리가 4이므로 가까운 짝수를 따라갔기 때문이다. 해결 방법 a=4.5+0.5 a=int(a) 0.5를 더해서 정수형으로 변환하면 소수점이 날아간다. 소수점이 5이상이였으면 앞자리에 반영이 됐을거고 소수점이 4이하였으면 앞자리는 바뀌지 않아 그대로 나온다. 간단한 방식으로 해결할 수 있었다. 2023. 1. 15.
[파이썬] 파이썬 리스트 복사하기 파이썬 리스트 복사하는 방법 새로운 변수에 정의하면 끝? 위와 같이 list2는 안건들였는데 값이 변했다. 결론을 말하면 메모리 주사값을 복사했기 때문이다. 같은 메모리를 참조하기 때문에 동시에 수정된다. 깊은 복사 방법 1. 슬라이싱 list2=list1[:] 2. list() 함수 list2=list(list1) 3. 리스트 연산 list2=[]+list1 4. copy() list2=list1.copy() 4가지 방법을 사용하면 깊은 복사가 돼 값이 변하지 않는다. 2023. 1. 13.
[파이썬] 딕셔너리 합치기(병합하기) 1. key값이 겹치지 않을때 from collections import Counter dict_first = {'A':1, 'B':2, 'C':3} dict_second = {'D':1, 'E':2, 'F':3} dict_first.update(dict_second # 결과 출력: {'A': 1, 'B': 2, 'C': 3, 'D': 1, 'E': 2, 'F': 3} 2. key값이 겹칠때 from collections import Counter dict_first = {'A':1, 'B':2, 'C':3} dict_second = {'A':1, 'B':2, 'C':3} result = dict(Counter(dict_first)+Counter(dict_second)) #결과출력 : {'A': 2, '.. 2023. 1. 12.
[파이썬] 문자열에서 숫자만 추출하기 문자열에서 숫자만 추출하는 방법 import re string = 'data_20220101-20220228' 1. 1개의 문자열로 추출 -> 2022010120220228 numbers = re.sub(r'[^0-9]', '', string) 2. 연속된 단위로 list로 추출 -> ['20220101','20220228'] numbers = re.findall(r'\d+', string) 3. 낱개 단위로 list 출력 -> ['2','0','2','2' ... '2','8'] numbers = re.findall(r'\d', string) 2023. 1. 11.
728x90