연습문제 풀이.
1. 다음은 입력된 나이에 따라 학교를 구분하는 함수다. ABC를 입력했을 때 결과는?
year = int(input('나이를 입력하세요 : '))
if 1<=year<=7:
print('미취학아동입니다')
elif 8<=year<=13:
print('초등학생입니다')
elif 14<=year<=16:
print('중학생입니다')
elif 17<=year<=19:
print('고등학생입니다')
elif 20<=year:
print('성인입니다')
else:
print('1부터의 정수를 입력해 주세요')
- 답 및 해설
=> year는 입력받은 input 데이터를 int형 데이터로 바꾼다. ABC는 int형 자료로 바뀔 수 없기 때문에, ValueError가 뜬다.
2. 다음과 같이 코드를 작성했을 때, 실행 결과는?
for a in range(8):
a *= (a-1)
print(a)
- 답 및 해설
=> a *= (a-1)은 a = a * (a-1)의 의미를 갖는다. 그러나, a는 매번 for문이 시행될 때 마다 0, 1, ... , 7로 초기화가 되기 때문에 맨 마지막 for문 시행 외에 나머지 시행은 의미가 없다.
즉 출력되는 a값은 7 * (7-6) = 42
3. 변수 age의 자료형이 정수형일 때는 '숫자'가 출력되고, 문자형일 때는 '문자'가 출력되는 코드를 작성했다. 빈 칸에 알맞은 코드를 고르시오.
ages = ['one', 8, 'twenty', 40]
for age in ages:
if 빈칸 :
print(age, '숫자')
else:
print(age, '문자')
① type(age) == 'int' ② type(age) == int ③ type(age) == 'str' ④ type(age) = int ⑤ type(age) == str
- 답 및 해설
② type(age) == int
=> 'int'나 'str'는 int, str라는 문자형 데이터이고, =는 '같다'는 의미를 나타내는 것이 아닌 변수에 데이터를 할당하라는 의미이다.
5. 다음 코드를 실행했을 때, 입력값과 결과값이 동일하게 나오려면 어떤 값을 입력해야 하는지 고르시오.
x = int(input())
if 15<x<20:
print(x+3)
elif 21<x<30:
print(x-5)
else:
print(f'{x}입니다')
① 26 ② 17 ③ 25 ④ 20 ⑤ 10
- 답 및 해설
⑤ 10
=> 범위 16 ~ 29 내의 정수는 코드의 if문과 elif문에 의해 값이 변한다. 즉 입력값이 변하지 않고 그대로 출력되려면 15 이하 30 이상의 정수를 입력하면 된다.
8. 다음은 a가 1부터 10까지 중에서 짝수만 출력하도록 작성한 코드다. 빈 칸에 들어갈 알맞은 코드를 고르라.
a=1
while 빈칸 :
if a%2==0:
print(a)
a+=1
else:
a+=1
if a==0:
break
① a==10 ② a!=10 ③ a<10 ④ a>10 ⑤ a<11
- 답 및 해설
⑤ a<11
=> ①, ③, ④는 초기 a값이 1이기 때문에 while 아래 코드가 아예 실행되지 않고, ②는 a가 10이 되면 반복이 멈추기 때문에 2~8까지만 출력된다.
13. 아래 코드의 실행 결과는?
a = [1,2]
b = [3,4]
for i in a:
for j in b:
result = i+j
print(result)
- 답 및 해설
=> for문이 매번 돌 때마다, result에 어떤 값이 추가되거나 하는 게 아닌, result = i+j이다. 즉, 위의 2번과 비슷한 문제로, 맨 마지막에 시행된 for문만 보면 된다. 즉 result의 값은 2+4 = 6
14. 아래 코드의 실행 결과는?
list_1 = [[1,2],[3],[4,5,6]]
a,b,c=list_1
list_2=a+b+c
print(list_2)
- 답 및 해설
=> a, b, c에는 list_1을 언패킹한 값이 할당된다. 즉 a = [1, 2], b = [3], c = [4,5,6]
list_2는 a+b+c이고, list의 합연산은 list를 연결하는 것이니까 실행 결과는 [1,2,3,4,5,6]
'STUDY > Python' 카테고리의 다른 글
[데이터 과학을 위한 파이썬 프로그래밍_2판] 7. 자료구조 (3) | 2023.08.21 |
---|---|
[데이터 과학을 위한 파이썬 프로그래밍_2판] 5. 함수 (0) | 2023.08.18 |
[데이터 과학을 위한 파이썬 프로그래밍_2판] 3. 화면 입출력과 리스트(2) (0) | 2023.08.16 |
[데이터 과학을 위한 파이썬 프로그래밍_2판] 3. 화면 입출력과 리스트(1) (0) | 2023.08.16 |
[데이터 과학을 위한 파이썬 프로그래밍_2판] 2. 변수와 자료형 (0) | 2023.08.16 |