5. 자료형 연습 문제
"""
파이썬 공부 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]이라는 동일한 리스트 객체를 변수로 지정했기 때문이다.
초반이라 그런지 딱히 막히는 건 없었다.
히히히 나름 뿌듯
카페 가서 오랜만에 책 읽어야지
끝.