본문 바로가기

Python

문자열 함수 1. replace : 문자열 내의 특정 문자를 치환 a = 'hello world' a.replace('h', 'H') 2. format : 문자열내의 특정한 값을 변수로부터 초기화하여 동적으로 문자열을 생성 temperature = 10 prob = 80.0 a = '오늘 기온{}도 이고, 비올 확률은 {}% 입니다.'.format(temperature, prob) print(a) 3. split : 문자열을 특정한 문자 구분하여(delimiter) 문자열의 리스트로 치환 a = 'Hello world what a nice weather' a.split('w') ==> ['hello ', 'orld ', 'hat a nice ', 'eather'] 더보기
indexing & slicing string - 문자열의 각 문자는 순서가 있음 - 각 문자열의 순서를 인덱스 라고 함 - 첫번째 문자부터 마지막까지 차례대로의 순서를 가짐 - 첫번째 시작문자의 순서는 0으로 시작 1. 인덱스 - 인덱스가 하나의 문자만을 추출 - 다른 언어와는 달리, python의 경우 음수 인덱스를 지원 - -1이 가장 마지막 인덱스를, -2가 마지막에서 두번째 인덱스를 의미 2. 문자열 slicing - slicing은 부분 문자열을 추출한다고 볼 수 있음 - [시작:끝]와 같이 명시하여 [시작, 끝]에 해당하는 부분 문자열을 추출 - 시작, 끝 인덱스가 생략이 되어 있다면, 0부터 혹은 끝까지로 간주 더보기
문자열(str) 타입 - homogeneous, sequence, immutable container. - Unicode로 구성된 문자열을 다를수 있음 (광범위함) - Str 연산 곱셈: str 곱한 수 만큼 반복 덧셈: str 합침 - 알파벳 문자 크기 비교 내부적으로 문자열은 ASCII code에 의해서 숫자로 관리 소문자 크기 > 대문자 크기 좌측의 첫 문자만 비교 좌측 첫 값이 동일한 경우 두번째 좌측 값 비교 1. string (문자열) - 복수개의 문자를 순서대로 나열 한 것 - 문자열은 '(작은따옴표) 혹은 "(큰따옴표) 사이에 문자를 넣어서 생성 - 문자열 자체에 ', "가 있는 경우에는 각각 그 반대의 기호로 생성 - 동일한 방식으로 쌍을 지어야함 2. ''' '''사용하여 표현 가능 - '', "" -> 한.. 더보기
Method Overloading - 메소드 이름이 동일한 경우, 가장 최근에 정의한 메소드로 덮어씀(overwriting) - python은 overloading을 기본적으로 지원하지 않음 ① 비효율적 해결방법: 조건문 ② 효율적 해결방법: multipledispatch 라이브러리 인자와 파라미터 갯수에 따라서 알아서 처리 # 가장 마지막에 실행된 함수 add(a,b) 함수가 앞에 있는 add(a) 함수를 덮어씀. def add(a): return a + 1 def add(a, b): return a + b add(1) # 해당 함수는 add(a,b)에의해 오버로딩됨 ==> TypeError: add() missing 1 required positional argument: 'b' add(1,2) ==> 3 # positional ar.. 더보기
MAP - 여러개의 데이터(리스트, 딕셔너리, 세트) 요소를 지정된 함수/lambda 로 처리해주는 함수 - iterable의 각 원소마다 함수를 적용 - map(self, /, *args, ** kwargs) 가변포지션 map #shift + tab : map(func, *iterables) --> map object ==> map def x(a): return a+1 map(x, [1,2,3,4]) #결과 안나옴 ==> list(map(x, [1,2,3,4])) #list 이용 결과 볼수 있음 ==> [2, 3, 4, 5] t = map(lambda x:x+10, [1,2,3]) t ==> list(t) ==> [11, 12, 13] 더보기
dis - dis 모듈: 사람이 읽을 수있는 Python 바이트 코드를 mnemonics으로 바꾸는 Disassembler( 기계어를 어셈블리어로 변환) - 클래스, 메소드, 함수 및 다른 컴파일된 객체를 디스어셈블(Disassemble)함 def x(): for i in [1,2,3]: print(i) import dis dis.dis(x) #get_iter iterator 로 변신 시킴 2 0 SETUP_LOOP 20 (to 22) 2 LOAD_CONST 1 ((1, 2, 3)) 4 GET_ITER >> 6 FOR_ITER 12 (to 20) 8 STORE_FAST 0 (i) 3 10 LOAD_GLOBAL 0 (print) 12 LOAD_FAST 0 (i) 14 CALL_FUNCTION 1 16 POP_TO.. 더보기
iterable 1. iterable - for 문에 사용 가능 - 동시에 여러개 값을 처리한는거같지만 내부적으로 1씩 뽑아서 처리 - iterable : iterator 이 되 수 있음 - 대부분의 컨테이너는 iterable :list, dictionary, tuple.. #a의 값은 1개, 원소 3개 a= [1,2,3,] #여러 값을 한번에 할당 #list는 iterable dir(a) # _iter__ -> iterable -> iterator 될 수 있음 list('abc') # instance 문자열을 쪼갬 ==> ['a', 'b', 'c'] ['a', 'b', 'c'] #lietral ==> ['a', 'b', 'c'] 2. iterable 종류 (1) set a= {1,2,3} b= iter(a) b ==>.. 더보기
Recursion(재귀함수) 1. 재귀 함수 - 함수 안에서 함수 자기자신을 호출하는 방식 - 많은 메모리 차지 - 퍼포먼스가 반복문 보다 느리다. - Stack overflow : 파이썬에서는 재귀가 너무 느림 (C 언어 특징) - tail recursion elimination, optimization: 재귀로 중복이 생기면서 1번씩만 구하도록 하여 해결 - 파이썬에서는 지양 - 함수형 패러다임에서는 증명 가능된 함수를 사용 - 재귀 함수 #재귀를 이용한 피보나치 수열 def fibonacci(n): # 함수 정의할때 파라미터는 식이 올수 없음 주의 if n 1 1 2 3 5 8 13 21 34 2 #팩토리얼 Factorial(n) = nx(n-1)x(n-2)x...x3x2x1 (n은 양의 정수) def factorial(n):.. 더보기