본문 바로가기

반응형

진리는어디에

(289)
[C++] UTF-8 문자열 길이 C++은 강력한 프로그래밍 언어지만 그에 반해 부족한 부분도 많다. 특히 문자열 관련해서는 타의 추종을 불허할 정도로 불편하다. 이번 포스트에서는 C++에서 UTF-8 문자열의 개수를 세어 보도록 하겠다. UTF-8 인코딩 규칙 보통 UTF-8관련 포스팅이라면, UTF-8의 인코딩 역사 부터, 유니코드와의 관계 등등 장황한 이야기가 펼쳐지지만 여기서는 코드를 작성 할 수 있을 정도의 짧고 얇은 지식만 요약하고 넘어 간다. 밑줄 그어진 부분을 집중해서 보자. UTF-8인코딩은, 유니코드 한 문자를 나타내기 위해 1바이트에서 부터 4바이트까지 사용하는 "가변 길이" 문자열 인코딩 방식이다. 문자에 따라 문자를 표현하기 위해 1바이트에서 4바이트까지 다양한 길이를 가진다. 1바이트로 표시된 문자의 최상위 비트..
[Python] 함수 #8 전역 변수와 지역 변수 이번 강좌에서는 파이썬의 전역 변수와 지역 변수에 대해 설명한다. 프로그래밍을 처음 접하는 분들에겐 접근 가능 범위와 생명 주기와 같은 용어가 생소하게 다가 올 수 있을 것이다. 생소한 용어라 당황스러울 수 있지만, 개념적으로 어렵거나 복잡한 내용은 아니므로 긴장하지 말고 가벼운 마음으로 따라오자. 프로그래밍에서는 변수의 선언 위치에 따라 변수의 유효 범위, 메모리 반환 시기, 초기화 여부가 달라진다. 크게는 전역 변수와 지역 변수로 나뉜다. 전역 변수는 프로그램이 시작하면서 종료 할 때까지 메모리에 상주하며, 프로그램 어디에서든 접근이 가능한 변수인 반면에 지역 변수는 함수와 같이 변수가 선언된 특정 코드 블록이 내에서만 접근이 가능하고 해당 블록이 종료 되면 변수 또한 메모리에서 해제된다. 또한 파이..
[Python] 함수 #4 파라미터 패킹 이번 강의에서는 파이썬 함수 인자(parameter)의 개수를 유연하게 지정 할 수 있는(가변 인자) 파라미터 패킹(parameter packing)에 대해 살펴 보도록 하겠다. 목차 함수 소개 디폴트 파라미터 주의 사항 파라미터 언패킹 >> 파라미터 패킹 함수 객체 일급 객체(first class object) 람다(lambda) 파라미터 패킹 파이썬에서 파라미터 패킹(parameter packing)이란 고정되지 않은 여러개의 인자를 하나의 시퀀스 객체로 묶어 함수에게 전달하는 것을 말한다. 고정되지 않은 여러개의 인자(parameter)를 묶은 하나의 시퀀스 인자 바꿔 말하면 파라미터 패킹을 통해 '가변 인자 함수'가 가능하다는 것이다. 우리가 자주 써왔던 print표준 함수가 좋은 파라미터 패킹과..
[Python] 함수 #3 파라미터 언패킹 이번에 살펴볼 파라미터 패킹과 언패킹은 포스트가 길어져 두 장에 나뉘어 작성 되었다. 이번 포스트에서는 언패킹에 대해 알아보고, 바로 이어지는 다음 포스트에서 패킹에 대해 같이 알아보도록 하겠다. 목차 함수 소개 디폴트 파라미터 주의 사항 >> 파라미터 언패킹 파라미터 패킹 함수 객체 일급 객체(first class object) 람다(lambda) 파라미터 언팩(unpack) 파라메터 언패킹(unpacking)이란 시퀀스 객체(list, tuple, set, dictionary)가 함수의 인자로 넘겨지는 경우, 시퀀스 객체의 각 요소들을 개별 변수로 풀어서, 각각의 변수로 함수의 인자로 전달하는 기능을 말한다. 글로 설명하면 설명이 어려우니 빠르게 예제 중심으로 설명하도록 한다. 언패킹이란? "시퀀스 ..
[Python] 함수 #1 소개 이번 포스트 부터 몇 장에 걸쳐 파이썬 함수에 대해서 다룬다. 먼저 본 포스트에서는 파이썬 함수의 기본 문법에 대해 빠르게 살펴 본 다음, 파이썬 함수의 인자 전달 방법을 알아본다. 파이썬 함수에 대해 기본 사항을 파악하고 난 후 다음 포스트 부터 파라미터 패킹/언패킹, 데코레이터들을 이어서 살펴 보도록하겠다. 목차 >> 함수 소개 디폴트 파라미터 주의 사항 파라미터 언패킹 파라미터 패킹 함수 객체 일급 객체(first class object) 람다(lambda) 파이썬 함수의 문법 파이썬 함수는 다음과 같은 형식을 가진다. def 함수명(매개변수 리스트) : 수행할 표현식 수행할 표현식 ... def 키워드는 파이썬에서 함수를 선언 할때 사용 되는 키워드이며, 함수명은 사용자가 임의 지정한다. 함수명 ..
[Python] 시퀀스 자료형 #4 딕셔너리(dict) 이번 강좌에서는 파이썬에 키와 값(key-value)을 같이 저장 할 수 있는 dictionary 시퀀스에 대해 알아 보도록 한다. 목차 리스트(list) 튜플(tuple) 셑(set) >> 딕셔너리(dict) 딕셔너리(Dictionary) 란? "키"와 "값" 형태로 데이터를 저장하는 자료구조. 중복키를 허용하지 않는다. 타입 이름으로 "dict"를 사용한다. 배열 연산자를 통해 요소 접근이 가능하다. 수정이 가능한 mutable 타입이다. 딕셔너리(Dictionary)의 생성 1. 타입 이름 'dict' 사용 # 타입 이름 'dict'를 이용해 생성 d = dict(name = "kim", age = 20, addr = "seoul") print(d) # {'name': 'kim', 'age': 20..
[Python] 시퀀스 자료형 #3 셑(set) 이번 강좌에서는 파이썬에서 수학적 집합 연산을 제공하는 시퀀스인 set에 대해 알아 보도록 하겠다. 목차 리스트(list) 튜플(tuple) >> 셑(set) 딕셔너리(dict) 셑(set) 이란? 파이썬에서 "수학적 집합 연산(교집합, 합집합, 차집합)을 제공하는 시퀀스다. 요소의 중복을 허용하지 않고 순서를 유지하지 않는다 배열 연산자를 통해 요소에 접근 할 수 없다 s3 = set('hello') # set은 중복을 허용하지 않고 순서를 유지하지 않는다 print(s3) # {'e', 'o', 'h', 'l'} print(s3[0]) # 배열 연산자를 통해 요소 접근 불가 셑(set)의 생성 1. 타입 이름 'set' 사용 # set 데이터 타입 이름으로 생성 s1 = set([1, 2, 3]) p..
[Python] enumerate 이번 강좌에서는 파이썬에서 iterable 객체를 순회 할 때 자주 사용되는 enumerate 에 대해 살펴 보겠다. enumerator는 튜플에 대한 개념이 있어야 하므로 혹시 튜플이 낮설다면 [여기]를 한번 살펴 보고 돌아 오면 좋다. enumerate 란? 반복자(iterator) 처럼 동작하는 객체(반복자에 대한 설명은 [여기]에 정리 되어 있다). iterable 객체를 인자로 받아서 생성 순회시 "(index, 요소)" 형태의 튜플(tuple) 객체를 반환 enumerate는 반복자 처럼 동작하는 객체로써 특징으로 각 반복시 요소와 함께 인덱스도 리턴한다. 아래 예제와 같이 리스트를 순회하며 인덱스가 필요한 경우, 인덱스를 저장하기 위해 따로 변수를 선언하는 복잡한 코드 대신 enumerate..
[Python] 시퀀스 자료형 #2 튜플(tuple) 이번 강좌에서는 지난 리스트 강좌에 이어 튜플에 대해 살펴 보도록 하겠다. 이번 강좌를 이해하기 위해서는 mutable 타입과 immutable 타입에 대한 개념이 있어야 한다. mutable, immutable관련 강좌는 다음 링크를 참조 하자. [Python] 파이썬 기초부터 시작하기 - mutable vs immutable 변수 목차 리스트(list) >> 튜플(tuple) 셑(set) 딕셔너리(dict) 튜플(tuple)이란? 튜플은 리스트와 매우 비슷하게 인덱싱, 슬라이싱, +, * 연산등을 지원하지지만, 리스트와는 결정적인 차이가 있다. 리스트는 mutable 자료형이라 삽입과 삭제, 요소 업데이트와 같은 수정 연산이 가능하지만, 튜플은 immutable 자료형이라 한번 생성되면 읽기만 가능하..
[Python] 시퀀스 자료형 #1 리스트(list) 파이썬에선 값이 연속적으로 이어진 자료형들을 총칭하여 "시퀀스 자료형(sequence type)"이라고 부른다. 이번 강좌에서는 파이썬의 시퀀스 자료 구조 중의 하나인 리스트에 대해 알아 본다. 기본적인 리스트 사용법만 본다면 상관 없지만 리스트의 고급 기법에 대한 설명을 쉽게 이해하기 위해서는 아래 항목들에 대한 이해가 되어 있으면 좋다. [Python] 파이썬 기초부터 시작하기 - 문자열 [Python] 파이썬 기초부터 시작하기 - iterator 와 iterable 타입 [Python] 파이썬 기초부터 시작하기 - generator 길지 않은 내용들이니 가벼운 마음으로 한번 훑어 보고 오도록 하자. 다 이해하지 못해도 상관 없다. 개념만 어렴풋이라도 알고 있으면 된다. 목차 >> 리스트(list) ..

반응형