2019/03
파이썬 강좌 번외편. 재귀 함수
파이썬 강좌 번외편. 재귀 함수
2019.03.29우리는 함수 내에서 또 다른 함수를 호출할 수 있습니다. 그리고 물론 자기 자신을 호출할 수도 있습니다. 여기서 함수 내에서 자기 자신을 호출하는 함수를 재귀 함수라고 부릅니다. 이 재귀 함수는 팩토리얼이나 피보나치 수열을 만드는 등과 같은 다양한 수학 문제를 해결하는 데 매우 유용합니다. 예제를 보며 직접 한번 살펴보도록 하겠습니다. >>> def recursive(num): print(num) num += 1 recursive(num) # 자기 자신을 호출한다! >>> recursive(10) 10 11 12 13 … 위의 예제를 직접 실행시켜보면 함수 recursive()가 자기 자신을 호출하고, 호출된 함수가 다시 자기 자신을 호출하며 끊임없이 변수 num의 값을 출력하고 있는 것을 볼 수 있습니..
파이썬 강좌 4-7편. 집합(Set)
파이썬 강좌 4-7편. 집합(Set)
2019.03.271. 집합(Set)파이썬에서는 집합에 관한 자료형을 제공합니다.집합 객체를 만드는 방법은 중괄호로 감싸고, 각 요소들은 쉼표(,)로 구분합니다. >>> A = {1, 2, 3, 4} >>> type(A) 빈 집합을 만들때는 아래와 같이 set 함수를 통해서 만들게 됩니다. >>> empty_set = set() >>> type(empty_set) >>> empty_set set()그러나 아래와 같이 중괄호를 사용하여 빈 집합을 만들 수는 없습니다. 아래 예제와 같이 중괄호를 사용하면 파이썬은 빈 사전 객체를 만들게 됩니다. 이는 위 예제에서 empty_set을 {}로 나타내는 게 아니라 set()로 나타내는 이유와 동일합니다. >>> B = {} >>> type(B) 집합 객체에는 순서가 있을까요? 사전..
C# 메모. 튜플(Tuple)
C# 메모. 튜플(Tuple)
2019.03.16튜플(Tuple)은 C# 7.0에서 추가된 기능이다. 이제 튜플을 통해서 두 개 이상의 값을 반환하는 메서드를 보다 깔끔하게, 효율적으로 구현할 수 있게 되었다. 기존에는 메소드에서 두 개 이상의 값을 반환하고 싶을 때는 아래와 같은 방법들을 이용했다.(1) out 매개변수 한정자를 통해서 여러 개의 값을 넘겨주는 방법 (비동기 메서드에서는 사용할 수 없음)(2) System.Tuple 형식을 통한 튜플 객체 할당 (튜플 객체를 따로 할당해야 하는 것도 그렇지만 코드가 길게 늘어짐)(3) 두 개 이상의 값을 반환해야 하는 메소드마다 전달을 위한 클래스/구조체를 따로 만들기 (필요 이상으로 코드 오버헤드가 생기게 됨)(4) dynamic 반환형을 통해 익명 타입(Anonymous types)의 객체를 반환..
C# 6.0의 새로운 기능
C# 6.0의 새로운 기능
2019.03.10C# 6.0에서는 어떤 기능들이 추가되었을까? 지금부터 새로 추가된 9가지의 기능들을 함께 살펴보도록 하자. using 정적 지시문(using static)기존에는 정적 메서드를 호출하거나 속성을 가져오기 위해서는 아래와 같이 클래스명과 메서드명 또는 속성명을 같이 적어주어야 했다. double result = Math.Sqrt(a); 그럼 여기에서 아래와 같은 문장을 추가하면 어떻게 될까? using static System.Math; 직접 예제를 보도록 하자. using static System.Math; namespace StaticUsingExample { class Program { static void Main(string[] args) { double a = 4; double result =..
C# 메모. 문자열 보간(String interpolation)
C# 메모. 문자열 보간(String interpolation)
2019.03.09C# 6.0에서 문자열 보간(String interpolation)이라는 기능이 새로 추가되었다. 기존에는 주로 복합 형식 지정(Composite Formatting), 즉 String.Format()와 같은 메서드를 사용하여 형식화된 문자열을 출력할 수 있었으나, 문자열 보간을 사용하면 기존의 방법보다 더 읽기 쉽고 편리하게 형식화된 문자열을 만들 수 있다고 한다. 대체 어떤 녀석일까? 바로 확인해보자. string name = "마크"; var date = DateTime.Now; // 복합 형식 지정(Composite formatting): Console.WriteLine("안녕, {0}! 오늘은 {1}, {2:HH:mm}이야.", name, date.DayOfWeek, date); // 문자열 보..
C# 메모. 널 조건 연산자(Null-conditional operators)
C# 메모. 널 조건 연산자(Null-conditional operators)
2019.03.08C# 6.0에서 소개되었던 널 조건 연산자(Null-conditional operators)란 기능이다. 그전에는 아무런 객체도 참조하지 않을 때 NullReferenceException 예외를 처리해야 했기 때문에 검사 코드를 계속해서 써 내려가야 했지만, 이제는 연산자 하나로 깔끔하게 해결할 수 있게 되었다. 기존에는 아래와 같이 null인지 검사하는 코드가 반복적으로 등장하는 경우가 많았다. 개발자 입장에서는 핵심 코드가 뒤로 밀리거나, 매번 단순한 검사 코드를 계속해서 적어주어야 하는 귀찮음이 있었다.public static string Truncate(string value, int length) { string result = value; if (value != null) // 설명을 위해 빈..