안녕하세요 성조입니다.
개인적인 풀이이며 해설지가 없습니다.
오답이 있을 수 있으며 오답이라 생각하시는 경우 댓글을 남겨주시면 감사드리겠습니다.
6장
1. 다음 코드의 실행 결과로 알맞은 것은?
[ 정답 ] 3번
a와 b에 정수형 변수를 저장해도 print() 함수에 '' or ""로 묶은 경우 문자열로 인식합니다.
두 문자열을 붙이면 ab가 되므로 정답이 3번이 됩니다.
2. 다음 코드의 실행 결과로 알맞은 것은?
[ 정답 ] 2번
찾을 문자열이 몇 개 있는지 알아보는 함수 count
찾을 문자열이 왼쪽을 기준으로 몇 번째 위치에 있는지 체크하는 함수 find
find 함수와 다르게 찾는 문자열중 가장 오른쪽 끝에 있는 값을 찾는 함수 rfind
이 문제는 이렇게 3가지 함수를 print 함수에 병합하여 사용한다.
find와 refind는 문자열 0번부터 시작하여 측정한다.
count = 3
find = 5
refind = 13
3+5+13 = 21 = 3번이 정답이다.
count = 3인 이유 -> n이 3개 있다.
find = 5인 이유 -> 0번부터 시작해서 Python 즉 가장 좌측부터 문자열 카운팅 후 5번에 저장된. 즉 6번째 위치한 값이므로 5의 값을 갖는다.
rfind = 13인 이유 -> find 함수와 동일한 원리에서 오른쪽 끝에 있는 문자열을 측정하는 것뿐이다.
3. 다음 코드의 실행 결과로 알맞은 것은?
[ 정답 ] 1번 Gachon Human
text [:5]의 의미는 5번 이전까지 출력이다. 즉 Gacho까지 갖고온다.
text [-1]의 경우 -1은 좌측에서 시작하는 슬라이싱과 다르게 오른쪽부터 역순으로 갖고 온다. text [-1]은 n의 값을 갖는데 Gachon의 n이 아니라 python의 n이다.
text[6]은 인덱싱이므로 0번부터 6번까지. 즉 G-0 a-1 c-2 h-3 o-4 n-5 [ ](공백)이 6번 이므로 공백 인덱싱을 갖고 온다.
text2.split() 함수의 아무 조건이 없는 경우 공백을 기준으로 문자열을 나누는데 스페이스바, 탭 키, 엔터 등으로 구분 지어서 묶음으로 저장한다.
[0] 출력의 경우.
Human ~~~ world의 경우 Human은 인덱스를 한 것이므로 0번이 되는 것이며, world는 6번이 된다.
그러므로 text2.split()[0]은 Human을 출력한다.
4. 다음 코드의 실행 결과로 알맞은 것은?
[ 정답 ] 2번
if는 참인 경우 실행된다. 하지만 i 객체와 python 객체가 같다는 언급이 없다.
그러므로 upper 함수는 실행되지 않는다.
참이라서 실행되더라도 class_name 함수 자체를 건드리는 것이 아니므로 처음 저장한 값 그대로 나온다.
5. 다음 코드의 실행 결과를 쓰시오.
[ 정답 ] 1010102
1010102가 출력된 이유로는 a 변수에 ''를 사용해서 저장했기 때문에 정수형 10이 아닌 문자열 10으로 인식한다.
문자열 10에 3을 곱하면 10이 3번 반복되어 출력된다. = 101010
변수 b는 split() 함수에 '-'를 사용하여 문자열을 구분 지었다. 1번 위치의 인덱싱 값은 2이므로 위 문자열 101010에 2를 더한 1010102가 정답이 된다.
6. 다음 코드의 실행 결과를 쓰시오.
[ 정답 ] REMEMBER 0416
str(a) 문자열 a 변수에 어떤 함수인지 봐야 한다. find 함수를 사용했으며 H값은 0번 위치에 있으므로 문자열 0이 반환된다.
str(b)의 경우 count 함수를 사용했다. H 문자열의 개수는 1개지만 *4를 사용하여 값이 4를 반환한다.
str(c)의 경우 len 함수를 사용하여 길이를 측정한다. name 변수에 저장된 값의 길이는 6이다.
6*2 = 12 + 4이므로 16을 반환한다.
그러므로 REMEMBER 0416가 반환된다.
7. 다음 코드의 실행 결과를 쓰시오.
[ 정답 ] aa
split() 함수는 지정된 값이 없으면 공백, 스패이스 키 등으로 칸을 구분하여 인덱싱한다.
c의 경우 a[:3]를 슬라이싱 했다. 즉 [a-0 b-1 c-2 d-3] 0번부터 3번까지 4개의 문자가 슬라이싱 되며 0번에 위치한 인덱싱의 값을 갖고온다. -> a
d의 경우 변수에는 (b[:3][0][0])이 저장됐다.
b[:3] -> a.split()함수가 공백으로 지정되어 있으므로 "abcd e f g"점에서 abcd가 한 묶음, e가 한묶음, f가 한 묶음 ,g가 한 묶음으로 있다.
b[:3]의 경우 b안의 문자열을 3번 전까지. 즉 0, 1, 2 까지만 갖고 온다는 의미이다.
"abcd", "e", "f" 3개로 나눠진 문자열에서 [0]을 사용하여 abcd로 들어가고 이후 [0]을 또 사용하여 0번에 위치한 인덱싱 값인 a문자를 갖고온다.
이후 c와 d의 문자열을 합치면 aa가 정답이 된다.
8. 다음 코드의 실행 결과가 다음과 같이 나올 수 있도록 빈칸에 코드를 작성하시오.
[ 정답 ]
print("I eat %d oranges every" %number ,"%s days" %day) |
print("I eat %d oranges every %s days" %(number,day)) |
더 다양할 수 있으나 저는 이 정도로 예시를 넣겠습니다.
9. 다음 코드의 실행 결과를 쓰시오.
[ 정답 ] 8, 1
-1은 역순의 인덱싱이므로 2018의 8과 1이 나온다.
10. 다음 코드의 실행 결과가 다음과 같이 나올 수 있도록 빈칸에 코드를 작성하시오.
[ 정답 ]
print(str_a.title() + " " + str_b.upper()) |
str_a 문자열에 저장 된 것에서 첫 번째 글짜를 대문자로 바꾸는 title 함수
str_b 문자열을 모두 대문자로 바꾸는 upper() 함수를 사용하면 된다.
11. 다음 중 문자열 함수의 설명으로 틀린 것은?
[ 정답 ] 3번
3번이 오답이다.
12. 다음과 같은 결과가 나올 수 있도록 서식 지정(formatting)을 사용하여 코드를 작성하시오.
[ 정답 ]
1
2
3
4
5
6
7
|
#end="" 이 문장은 *출력이나 공백 출력 이후 무엇을 사용하고 끝낼지 정하는 함수입니다.
for i in range(1,7):
for j in range(7-i):
print(" ", end="")
for j in range(2*i-1):
print("*", end="")
print()
|
cs |
13. 다음 코드의 의미를 설명하시오. (설명이 조금 부족한 느낌이 있는 풀이입니다.?)
[ 정답 ] 스페이스 바 5개+Apple
print( ) 함수 내부에 {0:>10s}의 조건을 줬다. format 함수를 사용하면 그 함수의 내용을 대입할 수 있는데
0:>10 조건은 0번부터 9번까지 즉 10개의 공간을 무조건 갖는 문자열을 주었고 format 함수를 이용하여 Apple이라는 5글자의 단어와 공백의 합이 10개가 되도록 패딩 기능을 사용하여 배열과 소수점을 맞춰 만든 코드이다.
14. 서식 지정 기능에서 패딩(padding)과 네이밍(naming)의 차이를 서술하시오. (설명이 조금 부족한 느낌이 있는 풀이입니다.?)
[ 정답 ]
패딩의 경우 %와 format() 두 가지 방법을 사용하여 여유 공간을 지정하여 글자 배열을 맞추고 소수점 자리수를 맞추는 기능인데 이 기능은 순서가 차례대로 앞에서 순차적으로 들어간다.
네이밍의 경우 똑같이 순서에 대응하는 것이 아니라 변수 명을 사용하여 순차적이지 않게 값을 할당할 수 있으며 변수가 많고 커졌을 때 개발자가 헷갈리지 않도록 사용할 수 있는 장점이 있습니다.
즉 print() 함수에 사용될 때.
순차적으로 지정자를 이용하여 맞추는 것을 패딩.
비 순차적으로 변수를 사용하여 출력값을 할당하는 것을 네이밍이라 한다.
감사합니다. 성조였습니다.
다음 포스팅 때 뵙겠습니다.
'개인 학습용 해설 > 데이터 과학을 위한 파이썬 프로그래밍' 카테고리의 다른 글
데이터 과학을 위한 파이썬 프로그래밍 7장 연습문제 개인풀이 (6) | 2021.12.13 |
---|---|
데이터 과학을 위한 파이썬 프로그래밍 5장 연습문제 개인풀이 (3) | 2021.02.04 |
데이터 과학을 위한 파이썬 프로그래밍 4장 연습문제 개인풀이 (20) | 2020.10.15 |
데이터 과학을 위한 파이썬 프로그래밍 3장 연습문제 개인풀이 (4) | 2020.10.14 |
데이터 과학을 위한 파이썬 프로그래밍 2장 연습문제 개인풀이 (9) | 2020.10.13 |