본문 바로가기

Python19

Python 튜플 튜플(tuple)은 클래스와 같이 새로운 형태를 정의할때 사용한다. 크게 복잡하지 않다면 class를 사용하지 않고 tuple을 사용하는 경우가 있다. ● 튜플 선언 def onetwo(): return 1, 2 print(onetwo()) 출력 결과 (1, 2) 위의 코드에서 (1, 2) 에 해당하는 것이 tuple이다. 튜플은 리스트와 비슷하지만 크게 2가지 차이점이 있다. 첫번째는 튜플은 값을 수정할 수 없다는 것이다. 두번째는 튜플은 값을 추가하거나 기존 값을 제거할 수 없다는 것이다. 튜플은 immutable하다. ● 패킹과 언패킹 튜플이 immutable하기 때문에 활용도가 적을 것 같지만, 사실 튜플의 주 역할은 패킹과 언패킹이다. def onetwo(): return 1, 2 a, b = ..
Python 정렬 ● 리스트 정렬 파이썬에서 리스트를 정렬할 때는 sort(), sorted() 등 내장 함수를 이용한다. ● 숫자 리스트 정렬 ● sort() arr = [2, 4, 1, 5, 3] arr.sort() print(arr) 출력 결과 : [1, 2, 3, 4, 5] sort()의 default는 오름차순이다. 내림차순으로 정렬하고 싶다면 sort()내부에 reverse=True 코드를 추가하면 된다. arr = [2, 4, 1, 5, 3] arr.sort(reverse=True) print(arr) 출력 결과 : [5, 4, 3, 2, 1] ● sorted() sorted 함수는 sort함수와 다르게 정렬된 리스트를 반환하는 함수이기 때문에 반환한 리스트를 변수에 할당해줘야 한다. arr = [2, 4, ..
Python 재귀함수 만약 N개의 줄에 걸쳐서 hello world를 출력하는 코드를 함수를 이용하여 작성한다면 다양한 방법이 있다. N = int(input()) def func(): for i in range(N): print("hello world") func() 위와 같이 한번의 함수 호출에서 반복문을 사용하여 출력하게 할 수 있고 N = int(input()) def func(N): if N == 0: return func(N- 1) print("hello world") func(N) 위와 같이 함수 내부에서 함수를 다시 호출하여 한번의 함수 호출마다 한번씩 출력되게 작성할 수 있다. 위와 같은 구조(호출한 함수 내부에서 호출한 함수를 다시 호출)로 작성된 함수를 재귀함수라고 한다. 재귀함수를 사용할때는 if N =..
Python 전역변수 변수는 선언된 영역에 따라 전역변수와 지역변수로 나뉜다. 전역변수 전역변수는 사용자 지정 함수 밖에서 정의된 변수이고 어디서든지 사용 가능하며 타 함수 내부에서도 참조할 수 있다. numlist = [1, 2, 3, 4, 5] def func(): total = 0 for i in numlist: total += i return total total_numlist = func() print(total_numlist) 위 코드는 numlist를 함수의 인자 값으로 받지 않았고 numlist를 함수 내부에서 선언하지 않았지만 함수에서 numlist를 사용할 수 있다. 이것이 가능한 이유는 함수 위에서 값을 정의했기 때문에 어디서든 사용할 수 있는 전역변수 이기 때문이다. 지역변수 지역변수는 사용자 지정 함수..
Python Call by value, Call by reference def swap(a, b): a, b = b, a print(a, b) n, m = 10, 20 swap(n, m) print(n, m) 위 코드를 실행하면 20 10 10 20 위 결과가 나온다. 위 코드는 n, m의 값을 바꿀 목적으로 작성했지만 함수 실행 시에만 변경된 값이 출력되며 실제로 n, m의 값은 바뀌지 않는 모습이다. 파이썬의 변수는 수정이 가능한 형식과 수정이 불가능한 형식이 있다. 수정 불가능한 객체는 immutable 객체라고 부른다. 수정 가능한 객체는 mutable 객체라고 부른다. immutable 객체는 tuple, str, int, bool, float 등이 있고 mutable 객체는 list, dict등이 있다. 여기서 immutable 객체는 함수의 인자로 넘어가게되면 ..
Python 함수 함수 Python에서 함수를 정의할 때 def예약어와 함께 함수의 이름을 적어주고 :로 마치면 된다. def print_num(): 좌측의 예시와 같이 함수명은 의미 단위로 _로 구분하는 snake case를 사용한다. 실행될 코드 함수와 함수 혹은 다른 코드와의 줄 간격은 일반적으로 2줄이다. 함수를 사용할때 특정 값을 입력받아서 함수에 전달할 때는 인자를 사용하면된다. def print_num(n): 좌측의 예시와 같이 함수에 전달할 값을 () 소괄호 내부에 작성하면된다. 실행될 코드 인자의 개수가 2개 이상인 함수 인자값은 사용자가 원하는 만큼 갯수를 늘려서 줄 수 있다. def print_num(n, m): 좌측의 예시와 같이 함수에 전달할 값들을 소괄호 내부에 작성하면 된다. 실행될 코드 인자 ..