본문 바로가기

Programming/[Python]

[Python/점프 투 파이썬 복습] 2. (6) Python 프로그래밍 자료형 연습문제

복습용/초보자 참고를 목적으로 포스팅합니다.

 

최근 들어 프로그래밍 언어들 중 직관적인 표현으로 코딩이 가능한 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:]이 됩니다.

 

참고 : ddit-jhkim.tistory.com/8

 

Q2. 문자열 인덱싱 활용

 

문제

주민등록번호 뒷자리의 맨 첫 번째 숫자는 성별을 나타냅니다.

주민등록번호에서 성별을 나타내는 숫자를 출력하십시오

 

pin = "881120-1068234"

print(   )

 

풀이

더보기

어떤 문자열의 특정 위치의 값을 추출할 때는 인덱싱을 사용합니다.

 

주민번호 뒷부분의 첫 자리인 1을 추출하려면

문자열의 7번째 인덱스를 가져오면 됩니다.

print(pin[7]) 

 

참고 : ddit-jhkim.tistory.com/8

 

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 값도 같이 바뀌게 됩니다.

참고 : ddit-jhkim.tistory.com/16