컴프리헨션과 제너레이터 수식을 살펴보겠습니다. 제너레이터는 좀 어려운 개념이긴 하지만 파이썬에서 정말 중요한 핵심이라고 할 수 있고 파이썬의 강력한 힘은 여기서 나온다고 해도 과언이 아닙니다. 컴프리헨션은 이전의 포스트에서 다루었는데, 사실 리스트 컴프리헨션이라고 하는 것이 더 적합합니다. 리스트를 생성하거나 변환하는 일을 아주 간결한 코드로 강력하게 할 수 있는 기능입니다. 이전 포스트에서도 얘기했지만 리스트 컴프리헨션은 파이썬의 가장 강력하고 편리한 기능 중 하나입니다. comp_list = [x*x for x in mylist if x % 2 == 1] --- (i) 제너레이터 수식은 리스트 컴프리헨션과 똑같이 만들어지는데 대괄호 [ ] 대신 괄호 ( )를 씁니다. gen_expr = (x*x fo..
파이썬 함수의 특징 중 하나로 다양한 빌트인 함수(built-in function 또는 standard function이라고도 함)를 가지고 있다는 것을 들 수 있다. 자바에서는 바로 사용할 수 있는 함수가 없는데, 그래서 System.out.print(...) 같은 복잡한 코드를 써야 하는 번거로움이 있다. 파이썬은 그런 거추장스러운 것을 걷어내고 편리하고 강력한 함수들을 빌트인으로 아주 많이 제공하고 있다. (전체 빌트인 함수의 리스트 여기 를 참조하세요.) 파이썬으로 프로그래밍할 때는 이 빌트인 함수를 잘 사용하는 것이 중요하다. 언어마다 문제를 해결하는 방법이 다른데, 언어가 원래 제공하는 기능들이 저마다 다르기 때문이다. 파이썬은 강력한 빌트인 함수를 이용해 자주 등장하는 문제 유형에 대해 한 ..
함수는 거의 모든 언어에서 지원되는 기본적인 기능이고 기본적인 함수정의와 함수호출의 관계는 동일하다. 여기서는 자바 언어와 다른 파이썬의 함수에 대해 정리해 보려고 한다. 파이썬에서 함수는 이름으로 어떤 동작을 하는 코드 부분을 나타내는 방법이다. 함수를 정의하는 방법은 def 키워드를 이용한다. def get_max(a, b): return a if a >= b else b 삼중 연산자(ternary operator)를 이용해서 큰 값을 돌려주는 함수다. 다음은 주어진 수가 소수인지 아닌지 판별하는 함수다. def is_prime(n): for i in range(2, n): # if n % i == 0: return False return True 이 함수는 n을 나누어 떨어지는 약수가 있으면 거짓을..
파이썬에서 리스트만 잘 다루어도 C나 자바로 프로그래밍하던 것에 비해 훨씬 성과가 좋아짐을 느낀다. 물론 리스트에 관련된 앞의 포스트에서 살펴본 함수나 메소드를 이용해야 진짜 파이썬의 장점을 알 수 있다. 그런데 거기서 한 걸음 크게 올라갈 수 있는 것이 컴프리헨션이다. 파이썬 언어의 창시자인 반 귀도 로썸은 파이썬의 가장 큰 장점으로 컴프리헨션을 들었다고 한다. 컴프리헨션은 특정 성질을 만족하는 값을 반복적으로 생성하여 리스트를 만드는 단축코드라고 볼 수 있다. 우리는 리스트를 만들기 위해 다음과 같은 코드를 자주 만들게 된다. mylist = [] for x in range(1, 10): mylist.append(x*x) 이 코드는 1~9까지 수의 제곱을 가지는 리스트를 만든다. 먼저 빈 리스트 이름..
파이썬은 타입의 분류로 sequence(순차형)을 정의한다. 앞에서 살펴본 range()와 스트링, 그리고 여기서 볼 리스트가 대표적인 시퀀스 타입이다. 요소 타입의 데이터가 순차적으로 다루어질 수 있는 타입을 시퀀스라고 한다. 리스트(list)의 리터럴 표현은 대괄호로 둘러싸인 값의 연속이다. 특징이라면 리스트의 요소들은 서로 다른 타입이 될 수 있다. >>> [1, 2, 3] [1, 2, 3] >>> x = [a, 1, '123'] >>> y = [x, [1, 2, 3]] # 리스트를 원소로 가지는 리스트 리스트는 스트링과 같은 시퀀스 타입이어서 차례로 방문하거나 요소에 대해 적용되는 많은 기능을 동일하게 사용한다. 특히 인덱싱하는 방법과 슬라이스, for in을 쓰는 방법은 스트링과 동일하다. >>..
파이썬에서는 숫자가 아닌 텍스트 정보를 모두 스트링 타입으로 표현한다. 스트링 객체를 표현하는 방법이 여러 가지인데, 다음과 같은 네 가지 방법이 있다. 홑따옴표와 쌍따옴표를 한번 또는 세번씩 사용하여 문자열 부분을 둘러싼다. my_string = 'Hello' my_string = "Hello" my_string = '''Hello''' my_string = """Hello""" # 삼중따옴표는 여러 줄 스트링 표현가능, 즉 줄바꿈을 안에 포함할 수 있다. my_string = """Hello, welcome to the exciting world of string in Python""" 파이썬에는 한글자만 가지는 문자형은 없고 한 글자만 가지는 것도 스트링이다. 주의할 점은 다음과 같이 홑따옴표 한 ..
문장은 실행의 한 단위로 대화형 모드라면 바로 실행되는 단위다. 지정문이나 print 문은 단순문장이라고 하는데, 복합문장은 여러 줄로 이루어지는 문장이다. 복합문장의 헤더는 : (콜론)으로 끝나고 줄바꿈과 들여쓰기로 복합문장에 포함되는 부분을 표시한다. 들여쓰기가 줄어들면 복합문장의 끝난 것이다. if a > b: print(“a가 큼”) 복합문장 안에 또 복합문장이 들어가서 이중의 들여쓰기를 할 수도 있다. 이런 경우에도 들여쓰기로 어느 레벨이 끝났는지 알 수 있다. 파이썬에서는 들여쓰기로 블록을 표시하여 자바와 비교하면 { ... }와 세미콜론이 모두 없어진 매우 간결한 코드가 나오게 된다. 또한 자바에서는 들여쓰기가 권장사항이므로 안 해도 그만이지만 여기서는 반드시 해야 한다. 필자는 개인적으로 ..
모든 프로그래밍 언어는 값에 대해서 연산을 취해서 다른 값(결과)를 얻게 된다. 파이썬에서도 사칙연산 같은 숫자에 적용되는 산술 연산과 참 거짓을 받아 참 거짓을 반환하는 논리 연산, 그리고 비교 연산이 있다. 논리 연산은 조건식에 사용되는 진위형 값을 돌려주고 비교 연산도 참 거짓을 반환한다. 비교는 비교 가능한 타입 끼리만 연산을 취할 수 있다. 예를 들어 ('3' < 5)와 같은 수식은 문자열과 숫자를 비교할 수 없으므로 타입 오류가 나게 된다. 산술연산에는 사칙연산과 나머지(%) 연산이 있다. 파이썬의 특징이라면 그냥 나누기 연산 /은 항상 실수를 돌려주고 정수 나누기 연산 //은 내림을 한 정수 결과를 돌려준다. 정수형은 자바 언어와 달리 자리수의 제약이 없어서 오버플로우가 발생하지 않는다는 점..
여기서는 파이썬의 입출력 기본을 살펴본다.먼저 프로그램이 실행의 결과를 보여주는 방법으로 print(…) 함수가 있다. 괄호 안에 결과를 출력하고 싶은 내용을 넣어주면 된다. 그 자리에는 값, 변수, 수식 등 무엇이든 올 수 있다. 여러 개의 값이나 수식을 콤마로 나열하면 차례로 연결되어 출력된다. >> 5+1 6 >> a = 5 >> print(a) 5 >> b= 3.1 >> print(b * 3) 9.3 >> “Good Morning” ‘Good Morning’ >> c = ‘hello’ >> print(c) Hello >>> print(a, b, c) 5 9.3 hello print 문에서 한가지 특징적인 것은 print 문을 한번 수행할 때마다 무조건 줄바꿈이 나타난다는 것이다. 자바처럼 prin..
파이썬 코드를 작성하는 것은 C나 자바에 비해 매우 간단하다. 거추장스러운 함수나 클래스 없이 바로 코드를 작성하면 된다. 코드는 우리가 알고 있는 자바 코드와 별 차이가 없다.먼저 파이썬은 한 줄이나 여러 줄로 구성된 문장 단위로 구성된다. 문장은 지정문이나 if, for, while 같은 문장이 있다.다음으로 프로그램의 중요한 구성요소가 이름이다. 이름은 영문자나 밑줄(_), 숫자로 구성되며 숫자로 시작할 수 없고 대소문자 구별된다. 물론 키워드는 이름이 될 수 없다.Keywords in Python programming languageFalseclassfinallyisreturnNonecontinueforlambdatryTruedeffromnonlocalwhileanddelglobalnotwitha..
- Total
- Today
- Yesterday
- comparable
- ToString
- Iterator
- python exercise
- 이터레이터
- 자바regex
- C++ 클래스
- 이터러블
- sort key
- typedef
- 동적바인딩
- Camel Style
- APPEND
- python example
- 스트링 +
- TypeError
- follow
- contains
- CompareTo
- zip
- contentEquals
- 패턴
- 스트링
- rust
- format
- max
- Lazy evaluation
- 지연계산
- indexof
- 콜렉션
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |