#8 재귀 호출자기 자신을 호출하도록 정의한 함수를 재귀함수라고 한다. 재귀함수의 호출을 재귀호출이라고 한다.def my_func(): print("my_func") my_func()my_func()동일한 형태의 함수라도 실제로는 함수를 호출할 때마다 새로운 프레임을 만든다.def my_func(): x = [] print("my_func", id(x)) my_func()my_func()재귀호출을 중단하는 종료조건이 필요하다.def my_func(count): if count > 0: my_func(count - 1) print(count)my_func(3)#9 함수객체파이썬에서는 함수도 객체다. 따라서 함수도 변수에 저..
#7 네임스페이스와 변수의 범위변수의 범위동일한 이름의 변수가 여러번 사용할 때가 있다. 변수는 경우에 따라서 다른 객체를 참조할 수 있다. 이는 변수가 동일하더라도 참조하는 객체가 다를 수 있기 때문이다. 변수마다 변수의 범위가 있다. 변수의 범위를 알려면 네임스페이스를 이해해야한다.변수와 네임스페이스파이썬에서는 다른 언어와 달리 변수는 객체를 보관하는 장소가 아니라 객체에 붙인 이름이다. 변수 뿐만 아니라 함수, 클래스도 이름이다. 객체들을 식별하기 위해 이름들을 모은 공간을 네임스페이스(namespace)라고 한다.하나의 네임스페이스에서는 이름은 중복되지 않는다. 즉, 하나의 네임스페이스에서 이름은 하나의 객체만을 가리킨다. 그렇지만 다른 네임스페이스에서는 같은 이름이 존재할 수 있다.def fun..
#3 매개변수와 인수매개변수매개변수는 함수의 외부에서 내부로 객체의 참조를 전달한다.def repeat_print(message, count): """메세지를 주어진 횟수만큼 반복 출력""" for i in range(count): print(message)repeat_print("안녕", 3)인수인수는 함수 실행시 함수 내부로 실제로 전달되는 대상이다. 인수는 위치인수와 키워드 인수가 있다.위치인수는 매개변수의 순서와 대응해서 들어간다.def repeat_print(message, count): """message를 count번 출력""" for _ in range(count): print(message)repeat_print(3, "안녕") # 오류 발..
#1 함수란?특정 기능을 수행하기 위해 필요한 명령문들을 묶어서 이름을 붙여놓은 것프로그램에서 함수들을 분석하는 법각 함수들의 입력과 출력을 특정한다(입력 → 함수 → 출력)큰 구조 내에서 데이터가 어떻게 흐르는 지 파악한다함수가 필요한 이유재사용성: 자주 사용하는 코드들을 묶어서 재사용할 수 있다. 매번 구현하기 어렵거나 번거로울 때 편리하다.분할정복: 크고 복잡한 문제를 작고 단순한 문제 여러개로 쪼갤 수 있다.#2 함수를 만드는 법전체 프로그램을 어떻게 분해할 지 생각한다개별 함수의 입출력을 정의한다문법에 따라 구현한다함수의 기본형식def 함수이름(매개변수1, 매개변수2, ...): """함수의 기능에 대해서 설명""" 기능을 수행하거나 반환값을 계산하는 명령문들 return 반환값..
데이터베이스데이터베이스란 데이터를 체계적으로 관리하고 저장하는 시스템이다. 테이블의 형태로 데이터를 관리하는 데이터베이스를 관계형 데이터베이스라고 한다. 팬더스의 데이터프레임을 테이블로 볼 수 있다. 데이터베이스는 SQL이라는 언어를 통해 제어할 수 있다. SQLiteSQLite는 경량화된 데이터베이스 관리 시스템이다. 클라이언트에 내장되어 사용되는 경우가 많다. 파일 하나로 데이터베이스를 관리한다. 파이썬에서는 sqlite3 라이브러리를 통해 SQLite와 소통할 수 있다.사용법sqlite와 연결한다cursor 객체를 생성한다데이터베이스에 할 작업들을 지시한다데이터베이스에 적용한다연결을 종료한다import sqlite3# 데이터베이스 연결. 커서 객체 생성 - 데이터베이스와 상호작용하는 객체con = ..
Python의 함수 호출 방식: 객체 참조에 의한 호출Python에서 함수 호출 방식은 다른 프로그래밍 언어와 비교할 때 독특하다. Python은 객체 참조에 의한 호출(Call by Object Reference) 방식을 사용하며, 이로 인해 함수 호출 시 값이 전달되는 방식이 다르게 작동한다. Python의 호출 방식이 무엇인지, 다른 언어와 어떤 차이점이 있는지, 그리고 이 방식이 메모리 관리에 어떤 영향을 미치는지 살펴보자.Python의 객체 참조에 의한 호출Python에서 매개변수가 저장하는 것은 실제 값이 아니라 객체에 대한 참조이다. 함수를 호출할 때, 인자로 전달된 변수는 객체의 참조를 전달한다. 이때 중요한 점은, 함수가 참조를 받지만 그 객체 자체를 수정할 수 있느냐는 객체의 변경 가능..