🐍파이썬/📕점프 투 파이썬

5. 자료형 연습 문제

와이드윤 2020. 12. 9. 13:11
728x90

"""

파이썬 공부 5일차

20200722

"""

 

오늘은 파이썬 연습문제만 풀고 공부 끝내고 을지로 카페 갈거다.

백두강산 갈까 섬광 갈까 ㄷㄱㄷㄱ

 

결과물에 대한 정해진 답은 없고 다양한 방법이 있으니

내가 한 방법말고도 다른 방법으로도 같은 결과물을 출력할 수 있다면 댓글을 달아줘봐요(?)

 

연습문제

 

1. 홍길동씨의 과목별 점수는 다음과 같다. 홍길동 씨의 평균 점수를 구해보자.

국어: 80
영어: 75
수학: 55

korean = 80
english = 75
math = 55

average = (korean + english + math) / 3

print(average)

각각의 점수를 변수에 지정해주고 모두 더하고 3으로 나눈 값을 또 다른 변수에 지정한 뒤, 출력한다.

 

2. 자연수 13이 홀수인지 짝수인지 판별할 수 있는 방법에 대해 말해보자.
a = 13 % 2

print(a)

>>> 나머지가 1이므로 홀수이다.

나머지 함수를 써서 2로 나눴을 때 1이 출력되면 홀수, 0이 출력면 짝수임을 알 수 있다.

(짝수는 2k, 홀수는 2k+1 꼴인 것을 이용)

 

3. 홍길동 씨의 주민등록번호는 881120-1068234이다.
홍길동씨의 주민등록번호를 연월일(YYMMDD) 부분과 그 뒤의 숫자 부분으로 나누어 출력해보자.
honggildong = "881120-1068234"

yyyymmdd = honggildong[:6]

num = honggildong[:6] + honggildong[7:]

print(yyyymmdd)

print(num)

우선 honggildong이라는 변수에 주민등록번호를 지정해주고, yyyymmdd 라는 변수에 앞 6자리를 슬라이싱 해준다.

숫자 부분만 출력하기 위해서는 '-'를 제외한 부분을 출력해야한다.

'-'에 해당하는 부분을 제외한 나머지를 각각 슬라이싱하고 두 부분을 더해준 뒤 출력하면 완료

 

4. 주민등록번호 뒷자리의 맨 첫 번째 숫자는 성별을 나타낸다.
주민등록번호에서 성별을 나타내는 숫자를 출력해보자.
idnumber = "881120-1068234"

print(idnumber[7])

뒷자리의 첫 번째 부분을 인덱싱한 후 출력하면 완료.

3번보다 쉬움

 

5. 다음과 같은 문자열 a:b:c:d가 있다.
문자열의 replace 함수를 사용하여 a#b#c#d로 바꿔서 출력해보자.
a = "a:b:c:d"
b = a.replace(':', '#')

print(b)

:를 # 으로 바꾸면 되니까 replace 함수를 써서 해당 부분을 대체한 뒤 출력

' '를 써야하는 걸 잊지말자. (내가 까먹어서 오류 냄)

 

6. [1, 3, 5, 4, 2] 리스트를 [5, 4, 3, 2, 1]로 만들어 보자.
a = [1, 3, 5, 4, 2]
a.sort()
a.reverse()

print(a)

무작위로 정렬된 리스트를 우선 오름차순으로 정렬해준다. (sort)

그 다음 reverse 함수를 통해 역순으로 정렬하면 완료

 

7. ['Life', 'is', 'too', 'short'] 리스트를 Life is too short 문자열로 만들어 출력해보자.
a = ['Life', 'is', 'too', 'short']
result = " ".join(a)

print(result)

 

a 리스트의 각 단어를 한 문장으로 만들 때 단어들 사이마다 공백을 넣어야 하므로 "(space)"를 사용하여 join 한 뒤 출력

 

8. (1, 2, 3) 튜플에 값 4를 추가하여 (1, 2, 3, 4)를 만들어 출력해 보자.
a = (1, 2, 3)
b = (4, )

print(a + b)

b라는 변수에 4만 존재하는 튜플을 지정해준 뒤 두 개를 더하고 출력하면 완료

 

9. 다음과 같은 딕셔너리 a가 있다.
a = dict()
print(a)
다음 중 오류가 발생하는 경우를 고르고, 그 이유를 설명해보자.
1) a['name'] = 'python'
2) a[('a',)] = 'python'
3) a[[1]] = 'python'
4) a[250] = 'python'

답은 3번이다.

key 값에는 요솟값이 변할 수 있는 리스트가 올 수 없기 때문 자세한 내용은 링크 참조 ㅎㅎ

https://notanymoremungwa.tistory.com/4

 

10. 딕셔너리 a에서 'B'에 해당되는 값을 추출해보자.
a = {'A':90, 'B':80, 'C':70}

result = a.pop('B')
print(a)

print(result)

 

'B' 키 값에 해당되는 값이 리턴되고, 딕셔너리 a에서는 그 값이 제거되는 것이 확인

 

11. a 리스트에서 중복 숫자를 제거해 보자.
a = [1, 1, 1, 2, 2, 3, 3, 3, 4, 4, 5]

aSet = set([1, 1, 1, 2, 2, 3, 3, 3, 4, 4, 5])

b = list(aSet)

print(b)

집합의 경우 요솟값이 중복될 수 없다.

리스트를 집합으로 변경하여 중복된 값을 없앤 후, 다시 리스트로 변경하면 완료

 

12. 파이썬은 다음처럼 동일한 값에 여러 개의 변수를 선언할 수 있다.
다음과 같이 a, b 변수를 선언한 후 a의 두 번째 요솟값을 변경하면 b 값은 어떻게 될까?
그리고 이런 결과가 나오는 이유에 대해 설명해 보자.
a = b = [1, 2, 3]

a[1] = 4

print(b)

[1, 4, 3]이 출력된다.

a와 b 모두 [1, 2, 3]이라는 동일한 리스트 객체를 변수로 지정했기 때문이다.

 

초반이라 그런지 딱히 막히는 건 없었다.

히히히 나름 뿌듯

 

카페 가서 오랜만에 책 읽어야지

끝.

 

728x90