ko ko ko en en en ko ko cs zh ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko en ko ko ko en ko ko en ko ko ko en ko ko ko en ko en ko en ko ko ko en ko ja ja ko ko ko ko ko ko en ko ko ko en ko en ko en ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko fr ko ko ko ko fr ko ko ko en en ko en zh en en
파이썬 코딩 도장: 11.1 시퀀스 자료형의 공통 기능 사용하기
◀ 10.5 심사문제: range로 튜플 만들기11.2 시퀀스 객체의 요소 개수 구하기 ▶︎
Unit 11. 시퀀스 자료형 활용하기
우리가 지금까지 사용했던 리스트, 튜플, range, 문자열을 잘 보면 공통점이 있습니다. 이들 모두 값이 연속적(sequence)으로 이어져 있다는 점입니다.
▼ 그림 11-1 값이 연속적으로 이어진 자료형
파이썬에서는 리스트, 튜플, range, 문자열처럼 값이 연속적으로 이어진 자료형을 시퀀스 자료형(sequence types)라고 부릅니다.
▼ 그림 11-2 시퀀스 자료형
이 시퀀스 자료형 중에서 list, tuple, range, str을 주로 사용하며 bytes, bytearray라는 자료형도 있습니다(bytes, bytearray는 여기서 따로 설명하지 않겠습니다. 자세한 내용은 '47.3 bytes, bytearray 사용하기'를 참조해주세요).
이번 유닛에서는 시퀀스 자료형의 공통된 기능을 알아보겠습니다.
11.1 시퀀스 자료형의 공통 기능 사용하기
시퀀스 자료형의 가장 큰 특징은 공통된 동작과 기능을 제공한다는 점입니다. 따라서 시퀀스 자료형의 기본적인 사용 방법을 익혀 두면 나중에 어떠한 시퀀스 자료형을 접하게 되더라도 큰 어려움 없이 바로 사용할 수 있습니다.
시퀀스 자료형으로 만든 객체를 시퀀스 객체라고 하며, 시퀀스 객체에 들어있는 각 값을 요소(element)라고 부릅니다.
▼ 그림 11-3 시퀀스 객체와 요소
11.1.1  특정 값이 있는지 확인하기
먼저 시퀀스 객체 안에 특정 값이 있는지 확인하는 방법부터 알아보겠습니다. 다음은 리스트 a에서 30과 100이 있는지 확인합니다.
시퀀스 객체에 in 연산자를 사용했을 때 특정 값이 있으면 True, 없으면 False가 나옵니다. 따라서 리스트 a에 30이 있으므로 True, 100이 없으므로 False가 나옵니다.
반대로 in 앞에 not을 붙이면 특정 값이 없는지 확인합니다.
이렇게 not in은 특정 값이 없으면 True, 있으면 False가 나옵니다.
물론 튜플, range, 문자열도 같은 방법으로 활용할 수 있습니다.
>>> 43 in (38, 76, 43, 62, 19) True >>> 1 in range(10) True >>> 'P' in 'Hello, Python' True
11.1.2  시퀀스 객체 연결하기
시퀀스 객체는 + 연산자를 사용하여 객체를 서로 연결하여 새 객체를 만들 수 있습니다.
>>> a = [0, 10, 20, 30] >>> b = [9, 8, 7, 6] >>> a + b [0, 10, 20, 30, 9, 8, 7, 6]
리스트 a와 b를 더하니 두 리스트가 연결되었습니다. 물론 변수를 만들지 않고 리스트 여러 개를 직접 연결해도 상관없습니다.
▼ 그림 11-4 시퀀스 객체 연결하기
단, 시퀀스 자료형 중에서 range는 + 연산자로 객체를 연결할 수 없습니다.
>>> range(0, 10) + range(10, 20) Traceback (most recent call last):   File " ", line 1, in       range(0, 10) + range(10, 20) TypeError: unsupported operand type(s) for +: 'range' and 'range'
이때는 range를 리스트 또는 튜플로 만들어서 연결하면 됩니다.
>>> list(range(0, 10)) + list(range(10, 20)) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19] >>> tuple(range(0, 10)) + tuple(range(10, 20)) (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19)
문자열은 + 연산자로 여러 문자열을 연결할 수 있습니다.
>>> 'Hello, ' + 'world!' 'Hello, world!'
따옴표로 묶은 문자열 'Hello, '와 'world!'를 연결하여 'Hello, world!'가 나왔습니다. 파이썬에서 문자열 연결은 여러 가지 결과를 묶어서 한 번에 출력할 때 자주 사용합니다.
참고 | 문자열에 숫자 연결하기
앞에서 + 연산자를 사용하여 문자열끼리 서로 연결했습니다. 그러면 문자열에 숫자를 연결할 수는 없을까요? 다음과 같이 'Hello, '에 10을 연결해봅니다.
>>> 'Hello, ' + 10 Traceback (most recent call last):   File " ", line 1, in       'Hello, ' + 10 TypeError: Can't convert 'int' object to str implicitly
문자열에 정수를 연결하려고 하면 에러가 발생합니다(정수를 문자열로 변환할 수 없어서 TypeError가 발생합니다). 이 문제를 해결하려면 str을 사용하여 숫자(정수, 실수)를 문자열로 변환하면 됩니다.
>>> 'Hello, ' + str(10)      # str을 사용하여 정수를 문자열로 변환 'Hello, 10' >>> 'Hello, ' + str(1.5)     # str을 사용하여 실수를 문자열로 변환 'Hello, 1.5'
'Hello, ' + str(10)과 같이 str을 사용하여 10을 문자열로 변환한 뒤 'Hello, '와 연결했습니다. 즉, 문자열에 +를 사용할 때는 어떤 형태의 값이든 str을 사용해서 문자열로 맞춰주면 됩니다. 특히 이 방식은 파이썬에서 자주 사용하는 방식인데요. 문자열과 숫자를 간단하게 조합할 수 있어서 계산 결과와 설명을 함께 출력할 때 편리합니다.
11.1.3  시퀀스 객체 반복하기
이번에는 시퀀스 객체를 반복하는 방법입니다. * 연산자는 시퀀스 객체를 특정 횟수만큼 반복하여 새 시퀀스 객체를 만듭니다(0 또는 음수를 곱하면 빈 객체가 나오며 실수는 곱할 수 없습니다).
>>> [0, 10, 20, 30] * 3 [0, 10, 20, 30, 0, 10, 20, 30, 0, 10, 20, 30]
요소 0, 10, 20, 30이 들어있는 리스트를 3번 반복해서 새 리스트를 만들었습니다.
▼ 그림 11-5 시퀀스 객체 반복하기
앞에서 range는 + 연산자로 객체를 연결할 수 없었죠? 마찬가지로 range는 * 연산자를 사용하여 반복할 수 없습니다.
>>> range(0, 5, 2) * 3 Traceback (most recent call last):   File " ", line 1, in       range(0, 5, 2) * 3 TypeError: unsupported operand type(s) for *: 'range' and 'int'
이때는 range를 리스트 또는 튜플로 만들어서 반복하면 됩니다.
>>> list(range(0, 5, 2)) * 3 [0, 2, 4, 0, 2, 4, 0, 2, 4] >>> tuple(range(0, 5, 2)) * 3 (0, 2, 4, 0, 2, 4, 0, 2, 4)
문자열은 * 연산자를 사용하여 반복할 수 있습니다.
>>> 'Hello, ' * 3 'Hello, Hello, Hello, '
◀ 10.5 심사문제: range로 튜플 만들기11.2 시퀀스 객체의 요소 개수 구하기 ▶︎
Unit 1. 소프트웨어 교육과 파이썬
Unit 2. 파이썬 설치하기
Unit 3. Hello, world!로 시작하기
Unit 4. 기본 문법 알아보기
Unit 5. 숫자 계산하기
Unit 6. 변수와 입력 사용하기
Unit 7. 출력 방법 알아보기
Unit 8. 불과 비교, 논리 연산자 알아보기
Unit 9. 문자열 사용하기
Unit 10. 리스트와 튜플 사용하기
Unit 11. 시퀀스 자료형 활용하기
11.1 시퀀스 자료형의 공통 기능 사용하기
11.2 시퀀스 객체의 요소 개수 구하기
11.6 연습문제: 최근 3년간 인구 출력하기
11.7 연습문제: 인덱스가 홀수인 요소 출력하기
11.8 심사문제: 리스트의 마지막 부분 삭제하기
11.9 심사문제: 문자열에서 인덱스가 홀수인 문자와 짝수인 문자 연결하기
Unit 12. 딕셔너리 사용하기
Unit 13. if 조건문으로 특정 조건일 때 코드 실행하기
Unit 14. else를 사용하여 두 방향으로 분기하기
Unit 15. elif를 사용하여 여러 방향으로 분기하기
Unit 16. for 반복문으로 Hello, world! 100번 출력하기
Unit 17. while 반복문으로 Hello, world! 100번 출력하기
Unit 18. break, continue로 반복문 제어하기
Unit 19. 계단식으로 별 출력하기
Unit 20. FizzBuzz 문제
Unit 21. 터틀 그래픽스로 그림 그리기
Unit 22. 리스트와 튜플 응용하기
Unit 23. 2차원 리스트 사용하기
Unit 24. 문자열 응용하기
Unit 25. 딕셔너리 응용하기
Unit 26. 세트 사용하기
Unit 27. 파일 사용하기
Unit 28. 회문 판별과 N-gram 만들기
Unit 29. 함수 사용하기
Unit 30. 함수에서 위치 인수와 키워드 인수 사용하기
Unit 31. 함수에서 재귀호출 사용하기
Unit 32. 람다 표현식 사용하기
Unit 33. 클로저 사용하기
Unit 34. 클래스 사용하기
Unit 35. 클래스 속성과 정적, 클래스 메서드 사용하기
Unit 36. 클래스 상속 사용하기
Unit 37. 두 점 사이의 거리 구하기
Unit 38. 예외 처리 사용하기
Unit 39. 이터레이터 사용하기
Unit 40. 제너레이터 사용하기
Unit 41. 코루틴 사용하기
Unit 42. 데코레이터 사용하기
Unit 43. 정규표현식 사용하기
Unit 44. 모듈과 패키지 사용하기
Unit 45. 모듈과 패키지 만들기
Unit 46. 실전예제: 웹의 데이터로 그래프 그리기
C 언어 코딩 도장
- 이 사이트에 실린 모든 내용, 디자인, 이미지, 편집 구성의 저작권은 (주)도서출판 길벗과 지은이에게 있습니다.
- 저작권법에 의해 보호를 받는 저작물이므로 무단 전재와 복제를 금합니다.
- 책의 내용을 복제하여 블로그, 웹사이트 등에 게시할 수 없습니다.
- 링크, SNS 공유는 허용합니다.
서울시 마포구 서교동 월드컵로 10길 56 (서울시 마포구 서교동 467-9)
Copyright © 2016-2021 Coding Dojang