본문 바로가기

분류 전체보기261

[python] function(함수) - 02 안녕하세요. TDR 입니다. 지난번 함수 1부에 이어 가변인수, 키워드 인수 등에 대해서 정리해 보겠습니다. [python] function (함수) - 01 안녕하세요. TDR입니다. 오늘은 python function(함수)의 여러가지 사용법을 정리해 보겠습니다. Structure def 함수이름(매개변수들): ... return 반환값들 함수 선언은 def 키워드를 통해 이루어지고 다른 tdremon.tistory.com Variable argument(가변인수) def some_function(a, b, *args) print(a) # 1 print(b) # 2 for arg in args: print(arg) # 3, 4, 5 some_function(1, 2, 3, 4, 5) 함수를 작성하다보.. 2024. 2. 22.
[python] function (함수) - 01 안녕하세요. TDR입니다. 오늘은 python function(함수)의 여러가지 사용법을 정리해 보겠습니다. Structure def 함수이름(매개변수들): ... return 반환값들 함수 선언은 def 키워드를 통해 이루어지고 다른 언어와 다른 점은 python에는 변수의 타입을 지정하지 않기 때문에 반환 타입 역시 지정하지 않습니다. 그리고 return 값으로 여러개를 반환이 가능합니다! (이거 정말 편합니다!) def multi_return(): return 1, 2, 3 a, b, c = multi_return() # a = 1, b = 2, c = 3 result = multi_return() # type(result) : tuple, result = (1, 2, 3) 여러개의 return을 .. 2024. 2. 21.
[VS] Compiler vs JIT Compiler 안녕하세요. TDR입니다. 오늘은 일반적인 컴파일러와 Just-In-Time(JIT) 컴파일러를 비교해 보겠습니다. 우선 각각의 정의를 간단히 알아보면 다음과 같습니다. Compiler 소스 코드 전체를 읽고 해석하여 중간 코드나 목적 코드로 생성하는 것 JIT Compiler 소스 코드의 일부 또는 전체를 기계 코드로 런타임(실행 중) 생성하는 것 기계 코드(중간 코드 or 목적 코드)를 생성하는 것 자체는 동일합니다. (그게 Compiler의 역할이니) 중요한 것은 "시점"입니다. 이미 잘 아시겠지만, C, C++ 같은 언어는 사전에 소스 코드와 헤더 파일, 라이브러리 등등을 모두 컴파일하여 실행 시점에는 고속으로 실행할 수 있습니다. 반면 Java의 Hotsopt VM이나 .NET의 CLR(공용 언.. 2024. 2. 18.
[python] closure(클로저) 안녕하세요. TDR입니다. 오늘은 python에서 closure(클로저)라는 개념에 대해서 정리해 보겠습니다. closure란, 함수와 함수가 선언된 환경을 함께 가지는 개념을 말합니다. 이렇게 말하면 무슨 말인지 하나도 이해가 안가기 때문에 간단한 예시를 보면, def outer_function(x): y = 10 # 내부 함수를 정의하고 반환 (클로저) def inner_function(z): return x + y + z return inner_function # outer_function 호출. closure_func에는 inner_function이 저장되어 있음 closure_func = outer_function(5) # outer_function 내부에 있는 변수 y에 접근할 수 있음 pri.. 2024. 2. 17.
[python] lambda(람다) 안녕하세요. TDR입니다. 오늘은 python에서의 lambda를 사용하는 방법에 대해서 정리해 보겠습니다. 우선 lambda가 무엇인지 부터 알아보면 (언어마다 약간의 차이는 있지만) 간략한 익명함수를 생성하는 것을 말합니다. python에서도 간략한 한줄짜리 함수를 굳이 함수로 선언 안하고 간략하게 쓰고 싶을 경우 많이 사용합니다. 우선 lambda의 기본 형태를 먼저 살표 보겠습니다. # 기본 형태 lambda : # 기존 함수와 비교 def (): return 위 코드를 보시면 기존 함수와 비교했을 때, 과 return 키워드가 생략되었습니다. 즉, lambda는 함수의 이름을 가지지 않으며(익명 함수), 은 자동으로 return이 되는 것을 알 수 있습니다. python에서는 함수를 변수에 저장.. 2024. 2. 16.
[python] reduce 함수 안녕하세요. TDR입니다. 오늘은 python에서의 reduce 함수에 대해서 정리해 보겠습니다. reduce 함수는 쉽게 설명하면, 반복 가능한 객체에 저장된 숫자(numeric)들을 받아서 모두 더한 값을 반환해주는 함수 입니다. reduce를 쓰지 않고 일반적인 방법으로 구현을 한다면 아래와 같은 형태가 됩니다. def accumulate(x, y): return x + y list_obj = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] # 값을 누적 시작 전의 초기값 설정 init_value = 1 res = init_value for i in list_obj: res = accumulate(res, i) print(res)# 46 위 코드를 reduce를 써서 변경을 하면 다음과 같.. 2024. 2. 15.
[python] filter 함수 안녕하세요. TDR입니다. 오늘은 python에서의 filter 함수에 대해서 정리해 보겠습니다. filter 함수는 앞에서 알아본 map 함수와 유사한 형태를 가지지만 차이가 있다면, 입력한 반복 가능한 객체 값에 대한 수정을 하는 것이 아닌, 조건에 맞는 값만 결과로 걸러준다는 차이가 있습니다. (그래서 함수 이름이 filter인 듯 합니다.) 먼저, filter 함수를 쓰지 않고 일반적인 방법으로 구현한 형태를 보면 다음과 같습니다. input = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] output = [] # 매개 변수가 짝수인 경우 True return def is_even(n): if n % 2 == 0: return True else: return False # input .. 2024. 2. 14.
[VS] 양념 vs 다대기 안녕하세요. TDR입니다. 한국어 중에 비슷한 듯 하면서 미묘하게 다른 뜻을 가지고 있는 두 단어를 비교해 간단히 정리해보겠습니다. 아래 사전 정의의 출처는 "Naver 사전"입니다. 양념 음식의 맛을 돋우기 위하여 쓰는 재료를 통틀어 이르는 말. 기름, 깨소금, 파, 마늘, 간장, 된장, 소금, 설탕 따위를 이른다. 다대기 양념의 하나. 끓는 간장이나 소금물에 마늘, 생강 따위를 다져 넣고 고춧가루를 뿌려 끓인 다음, 기름을 쳐서 볶은 것으로, 얼큰한 맛을 내는 데 쓴다. 즉, 양념이 좀 더 포괄적인 의미를 가지고 있습니다. 일상 생활에서도 국밥이나 잔치국수 등에 넣는 것만 다대기라고 부르고 설탕, 소금과 같이 맛을 내기 위한 조미료는 양념이라고 부릅니다. 재밌는 것은 다대기의 어원인 일본어 다다키(た.. 2024. 2. 8.
[python] File I/O 안녕하세요. TDR입니다.오늘은 python에서 File Input / Output을 어떻게 하는지 간략하게 살펴 보겠습니다.File을 열 때 어떤 모드로 열지를 결정할 수 있습니다. 대표적인 형태로는 아래 4가지가 있습니다.File open moder : 읽기 모드w : 쓰기 모드a : 수정 모드x : 쓰기 모드. 배타적 생성으로 파일이 없으면 생성하고, 있으면 오류 발생 (FileExsitsError)File 읽기## 기본적인 형태 01file = open('input.txt', 'r') # input.txt 파일을 읽기모드(r)로 염line = Nonewhile line != '': line = file.readline() # file에서 한줄씩 읽어 들임file.close() #.. 2024. 2. 3.
[python] for 반복문 안녕하세요. TDR입니다. 오늘은 어느 언어에서만 많이 쓰이는 for 반복문을 Java와 비교해서 python에서는 어떻게 사용하면 되는지 정리해 보겠습니다. #### python에서의 for문 구조 for in : #### 일반적인 반복문 ## Java for (int i = 0; i < 10; i++) { System.io.println(i); } ## python # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 for i in range(10): print(i) #### 특정 값 만큼 증가 ## Java for (int i = 0; i < 10; i = i + 2) { System.io.println(i); } ## python # 0, 2, 4, 6, 8 for i in range(0, 1.. 2024. 2. 2.
[python] String - 02 안녕하세요. TDR입니다. 오늘은 String-01을 이어서 정리해 보겠습니다. [python] String - 01 안녕하세요. TDR입니다. 오늘은 어느 언어에서만 많이 쓰이는 String을 python에서 어떻게 사용하면 되는지 정리해 보겠습니다. ## 선언 str_object = 'apple' str_object = "banana" # 작은 따옴표 3개를 쓰면 개 tdremon.tistory.com ## 문자열 배치 str_object = 'abcd' # .center() new_str = str_object.ljust(10)# 'abcd ' new_str = str_object.rjust(10)# ' abcd' new_str = str_object.center(10)# ' abcd ' new_s.. 2024. 1. 31.
[python] String - 01 안녕하세요. TDR입니다. 오늘은 어느 언어에서만 많이 쓰이는 String을 python에서 어떻게 사용하면 되는지 정리해 보겠습니다. ## 선언 str_object = 'apple' str_object = "banana" # 작은 따옴표 3개를 쓰면 개행을 포함한 그대로의 내용이 출력됨 str_object = '''How to write multi line text''' # 문열안에 \n 를 포함시켜도 개행 가능 str_object = "banana\nfruit" ## 문자열 바꾸기 str_object = 'I like apple' # .replace(, ) new_str = str_object.replace('apple', 'banana')# I like banana ## 문자 바꾸기 str_obje.. 2024. 1. 30.