Language/Python

[정보처리기사] 정처기 실기 Python 파이썬 기출문제

깨구르르 2024. 4. 22. 19:12
728x90

파이썬은 문제를 풀고 나니 심각성을 알게 되었다.

기존에 하던 자바와 다른 점이 너무 많다..

 

1. 실행 결과

x = input()
y = x.capitalize()
y = x.split()
print(y[0][::2], end = '*')
print(y[1][3:6])

# 입력: Python programming
더보기

: Pto*gra

 

capitalize()는 문자열의 첫 글자는 대문자로, 나머지는 소문자로 변환한다.

따라서 y = x.capitalize()에서 y는 Python Programming이 된다.

split()을 통해서는 공백 기준으로 y에 배열 형태로 저장한다.

y[0]에는 Python이, y[1]에는 Programming이 저장된다.

y[0][::2]는 Python이라는 문자열을 처음부터 끝까지 2개씩 건너뛰면서 잘라낸다는 뜻이다.

end는 마지막에는 종료문자로 *를 출력하겠다는 뜻이다.

(end가 딱히 없으면 줄바꿈을 하겠다는 뜻이다.)

따라서 Pto*가 출력된다.

y[1][3:6]는 Programming이라는 문자열을 3번째 단어부터 6번째 단어 전까지 잘라낸다는 뜻이다.

따라서 gra가 출력된다.

결국, 둘을 합하면 Pto*gra가 출력된다.

 

2. 실행 결과

arr_str = input('input String : ').split('-')
arr_len = int(input('input number : '))
arr_val = list(range(0, arr_len, 2))
arr_val.remove(4)
print(arr_str[1].find('i') + arr_val[2])

# 입력
# input string : information-technology
# input number : 12
더보기

: 3

 

풀이

arr_str[0] = information

arr_str[1] = technology

arr_len = 12

range(0, 12, 2)는 0이 시작 숫자, 12는 끝 숫자, 2는 건너뛰는 수를 의미한다.

따라서 arr_val = [0, 2, 4, 6, 8, 10]이다.

arr_val.remove(4)를 하고 나면 4가 지워져 arr_val = [0, 2, 6, 8, 10]

arr_str[1].find('i')에서는 존재하지 않는 i라는 값을 찾고 있기 때문에 -1을 리턴한다.

arr_val[2]는 6이므로 둘을 더하면 -1+6 = 5이다.

 

3. 실행 결과

i = 20
f = 123456.789E-3
print('%d\n%d' % (i, i), end = '/')
print('%.3f' % f)
더보기

20

20/123.457

 

풀이

123456.789E-3이면 소숫점자리를 앞으로 3번 옮기라는 뜻이다.

따라서 123.456789가 된다.

%.3f는 소숫점 셋째 자리까지 나타내라는 뜻인데, 소숫점 넷째 자리에서 반올림한다.

 

4. 실행 결과

class charClass : 
	a = ["Seoul", "Incheon", "Kyonggi", "Daejun", "Daegu", "Pusan"]
myVal = charClass()
str01 = ''
for i in myVal.a:
	str01 = str01 + i[0]
print(str01)
더보기

: SIKDDP

 

풀이

myVal은 charClass의 객체 변수이다.

for문은 myVal의 리스트 a의 요소 수만큼 실행문을 반복한다.

i는 배열 안에 있는 문자열들이 되고,

i[0]은 문자열의 첫 번째 문자가 된다.

따라서 각 문자열의 앞자리들을 더한 SIKDDP가 답이 된다.

 

5. 실행 결과

a = "What's this?"
print("%-10.4s" % a)
print("%10.4s" % a)
더보기

What      

      What

 

풀이

-10.4에서 -는 왼쪽부터 출력하라는 의미이고, 10은 열 자리를 확보하고 4는 앞의 4글자만을 출력하라는 의미이다.

따라서 왼쪽부터 What 네 글자가 출력되고, 오른쪽 나머지 6칸은 공백이 된다.

10.4도 마찬가지로 10은 열 자리를 확보하고 4는 앞의 4글자만을 출력하라는 의미이다.

그런데 앞 부분을 공백으로 채우므로 왼쪽부터 6칸은 공백, 4칸은 What이 된다.

 

6. 실행 결과

i, hap = 1, 0
while  i <= 6:
    hap += i
    i += 2
print(f"i={i}, hap={hap}")
더보기

i=7, hap=9

 

7. 실행 결과

a = [[1,1,0,1,0],
	[1,0,1,0]]
tot, totsu = 0, 0
for i in a:
    for j in i:
    	tot += j
    totsu = totsu + len(i)
print(totsu, tot)
더보기

: 9 5

 

풀이

a[0] = [1,1,0,1,0], a[1] = [1,0,1,0]

이중 for문 안에서 a[0]일 때 tot = 3, totsu = 5

a[1]일 때 tot = 3 + 2, totsu = 5 + 4가 된다.

따라서 답은9 5이다.

 

8. 빈 칸

(  1  ) Calculator:
	(  2  ) add(self, x, y):
    	return x + y
    (  2  ) mul(self, x, y):
    	return x * y
        
cal = Calculator()
x = cal.add(10, 20)
y = cal.add(10, 20)

print(x, y)

# 출력
# 30 200
더보기

: (1) class (2) def

 

풀이

파이썬에서 함수는 def라는 키워드로 선언함

 

9. 실행 결과

lol = [[1,2,3],[4,5],[6,7,8,9]]
print(lol[0])
print(lol[2][1])
for sub in lol:
    for item in sub:
    	print(item, end = " ")
    print()
더보기

[1, 2, 3]

7

1 2 3

4 5

6 7 8 9

 

728x90