복습용/초보자 참고를 목적으로 포스팅합니다.
최근 들어 프로그래밍 언어들 중 직관적인 표현으로 코딩이 가능한 Python이 인기를 끌고 있습니다.
코드 구성의 가독성이 타 언어 대비 뛰어나고, C/C++/JAVA 에서 구현 가능한 모든 것들을 Python에서도 만들 수 있습니다.
데이터 분석부터 머신러닝, 딥러닝 등 다양한 분야에서 활용 가능한 언어 Python 지금부터 차근차근 공부해봅시다.
2장 연습문제
Q1. 문자열 슬라이싱 활용
문제
홍길동 씨의 주민번호는 881120-1068234입니다. 홍길동씨의 주민등록번호를 연월일(YYYYMMDD) 부분과 그 뒤의 숫자 부분으로 나누어 출력하십시오
pin = "881120-1068234"
yyyymmdd =
num =
print( )
print( )
# 결과
881120
1068234
풀이
결과처럼 pin 부분을 두 덩어리로 통째로 뽑아내려면
문자열 인덱싱 기법보다는 슬라이싱 기법이 보다 효율적일 것으로 판단됩니다.
연월일의 의미를 가지는 부분은 pin의 0번째부터 5번째 까지이므로 pin[:6]
뒷부분은 7번째 부터 끝까지이므로 pin[7:]이 됩니다.
Q2. 문자열 인덱싱 활용
문제
주민등록번호 뒷자리의 맨 첫 번째 숫자는 성별을 나타냅니다.
주민등록번호에서 성별을 나타내는 숫자를 출력하십시오
pin = "881120-1068234"
print( )
풀이
어떤 문자열의 특정 위치의 값을 추출할 때는 인덱싱을 사용합니다.
주민번호 뒷부분의 첫 자리인 1을 추출하려면
문자열의 7번째 인덱스를 가져오면 됩니다.
print(pin[7])
Q3. 리스트의 내장 함수 활용
문제
[1, 3, 5, 4, 2]라는 리스트를 [5, 4, 3, 2, 1]로 만드십시오
풀이
리스트의 내장 함수를 이용하면 쉽게 해결할 수 있습니다.
1. 순서를 정렬합니다.
2. 정렬한 리스트의 순서를 뒤집습니다.
a = [1, 3, 5, 4, 2] # 리스트 선언
a.sort() # 리스트 정렬
a.reverse() # 순서 뒤집기
print(a) # a 출력
참고 : ddit-jhkim.tistory.com/10
** 추가설명
이 문제에서 원하는 해답은 아니지만
더 간결한 코드로 같은 결과 표현이 가능합니다.
sort 함수의 reverse 파라미터를 사용하면 코드는 다음과 같습니다.
a = [1, 3, 5, 4, 2] # 리스트 선언
a.sort(reverse=True)
print(a)
Q4. 문자열 관련 함수 활용
문제
['Life', 'is', 'too', 'short'] 라는 리스트를 Life is too short라는 문자열로 만들어 출력하십시오
풀이
join 함수를 이용하면 문제를 쉽게 해결할 수 있습니다.
a = ['Life', 'is', 'too', 'short'] # 리스트 선언
result = " ".join(a) # 리스트 각 요소에 " "(공백)을 추가하여 조합
print(result) # result 출력
Q5. 튜플 합치기
문제
(1, 2, 3)이라는 튜플에 4라는 값을 추가하여 (1, 2, 3, 4)를 만들어보시오
풀이
우선 튜플은 값을 변경할 수 없다는 것을 생각해야합니다.
위 특징을 제외하면 리스트와 동일하기 때문에 튜플의 더하기를 이용하면 쉽게 원하는 결과를 도출할 수 있습니다.
a = (1, 2, 3)
a = a +(4,) # 이때 튜플의 값이 변경되는것이 아니라 새로운 튜플이 a에 대입되는것임
print(a)
Q6. 딕셔너리 활용
문제
딕셔너리에서 'B'에 해당하는 값을 추출하고 삭제하십시오
a = {'A':90, 'B':80, 'C':70}
풀이
리스트와 딕셔너리에서 특정 값을 추출하고 삭제하는 함수는 pop입니다.
참고 : ddit-jhkim.tistory.com/14
a = {'A':90, 'B':80, 'C':70}
result = a.pop('B')
print(result)
print(a)
Q7. 집합 활용
문제리스트에서 중복된 숫자들을 제거하십시오a = [1, 1, 1, 2, 2, 3, 3, 3, 4, 4, 5]
풀이
리스트 자료형은 값이 중복될 수 있지만 집합 자료형은 값이 중복될 수 없다는
성질을 이용합니다.
참고 : ddit-jhkim.tistory.com/15
a = [1, 1, 1, 2, 2, 3, 3, 3, 4, 4, 5]
a_set = set(a) # 기존 리스트를 집합자료형으로 변환
new_list = list(a_set) # 집합 자료형으로 변경한 값을 다시 리스트화
Q8. 변수의 특징
문제
다음과 같이 동일한 값에 여러 개의 변수를 선언했을 때 a의 첫 번째 요소값을 변경하면 b의 값은 어떻게 될지 결과와 이유를 서술하시오
a = b = [1, 2, 3]
a[1] = 4
print(b)
풀이
a와 b 두 변수 모두 같은 값([1, 2, 3])을 가리키고 있으므로
a 값을 변경하면 b 값도 같이 바뀌게 됩니다.
'Programming > [Python]' 카테고리의 다른 글
[Python] 데이터 수집을 위한 웹 크롤링(Crawling) (0) | 2021.08.03 |
---|---|
[Python] 함수 - arguments (0) | 2021.07.17 |
[Python/점프 투 파이썬 복습] 2. (5) Python 프로그래밍 자료형(변수) (0) | 2021.02.22 |
[Python/점프 투 파이썬 복습] 2. (4) Python 프로그래밍 자료형(집합 자료형) (0) | 2021.02.19 |
[Python/점프 투 파이썬 복습] 2. (3) Python 프로그래밍 자료형(튜플, 딕셔너리 자료형) (0) | 2021.02.18 |