본문 바로가기
자격증공부/정보처리기사

파이썬 기출문제 풀기

by jyee 2023. 10. 5.
728x90
반응형

문제 01 

a = "engineer information programming"
b = a[:3]
c = a[4:6]
d = a[29:]
e = b + c + d
print(e)

풀이 :

0부터 시작한다는 것! 

이렇게 0으로 시작하고 띄어쓰기도 카운트 해야함

a 앞에서부터 3까지 가져오는 것이 아니라 앞에서부터 2까지 가져오는것  

그래서 eng

 

c 역시 시작은 4부터지만 가져오는것은 4,5까지만 6은 포함하지 않음!

그래서 ne

 

d는 29부터 끝까지 다 가져오는 것 

ing 

 

답은 engneing 


문제 02 

a = "REMEMBER NOVEMBER"
b = a[:3] + a[12:16];
c = "R AND %s" % "STR";

print(b+c);

위랑 동일함 하나씩 카운트 해봄

b = REMEMBE 라는 값이 나옴 

 

c는 R  AND 까지 적고 %s 라는 값에 STR을 넣어주면 됨 

그래서 R AND STR 이 출력됨 

 

두개 더해주면  답은 

REMEMBER AND STR


문자열 포맷팅 방법 

1)문자열 % 값

정수 : %d  문자열 %s

2) 문자열{}. format(값) 

3) f-string (v.3.6이상만) 

 

 

문제 03

a = {'한국', '중국', '일본'}
a.add('베트남')
a.add('중국')
a.remove('일본')
a.update({'홍콩', '한국', '태국'})
print(a)
print(type(a))

{   }  <- 이 중괄호는 set이며 set은 중복을 허용하지 않는다. 

그래서 한국, 중국, 일본 

베트남 더해주고 

중국은 더했지만 중복이고

일본은 없어진다.

업데이트가 된 부분에서 역시 set이기에  한국은 중복이 된다. 

 

최종적으로 답은

{'중국', '한국', '홍콩', '태국', '베트남'}

이렇게 나온다. 


문제04 

python의 map 

TestList = [1,2,3,4,5]
TestList = list(map(lambda num : num +100, TestList))
print(TestList)

답은 [101, 102, 103, 104, 105]

 

 

list comprehension

.map

.filter

.reduce <-이거는 잘 안나옴;

 

lamda는 무엇?

익명함수임 

리턴을 받는 변수 1 = lambda x: x+10

리턴을 받는 변수 2 = lambda z, y : z * y

리턴을 받는 변수 3 = lambda x, y ,z : x+y +z 

앞에가 매개변수 뒤에가 리턴값이라는 것 

 

map은 무엇?

반복가능한 데이터를 받아서 각 함수에 적용시켜준다

대부분 이런 문제는 

함수를 보고 아마도  [ ] 리스트가 나오면 하나씩 mapping시켜서 나오면 됨  


문제 05

다음 파이썬으로 구현된 프로그램에 "xyz321"을 입력했을 때 그 실행 결과를 확인하시오 

x = input('입력 : ')
a = ['abc123', 'def456', 'ghi789']
a.append(x)
a.remove('def456')
print(a[1][-3:], a[2][:3], sep =',')
for i in range(3, 6):
    print(i, end = '')

문제풀이:

append를 통해 리스트 뒷부분에 추가가 됨 

그래서 이렇게 나옴  

근데 리무브를 통해서 한칸 씩 앞으로 옮겨짐 

슬라이스는 이렇게 표현할 수 있음

양수 또는 음수로 표현 가능함 

print(a[1][ -3 : ])의 값은 789,

 

a[2][ : -3 ]의 값은 xyz이다. 

 

※  sep = ', ' 은 분리문자로 쉼표(,)를 지정한다. 출력할 값들을 쉼표로 구분하여 출력한다. 

 

for문은 i를 사용하고 뒤에 range (3, 6) 는  range(초기값, 최종값)이기에 

초기값에서 최종값-1까지의 연속된 숫자를 생성한다. 

for i in range(3, 6):
    print(i, end = '')

3 4 5가 나옴 

최종 답: 


문제 06

a = {'apple', 'lemon','banana'}
a.update({'kiwi', 'banana'})
a.remove('lemon')
a.add('apple')
for i in a:
    print("과일명: %s" % i)

위에 풀었던 문제랑 비슷! 

set으로 중복되는거 제거 하고 

for i  in a 이 부분만 유의하면 됨 

a의 세트의 각 요소의 값을 차례로 i에 저장하면서 a세트의 요소 수만큼 반복하는것 

과일명: 과 i의 값을 출력한 후 커서를 다음 줄의 처음으로 옮긴다. 

최종 출력되는 답:


문제 07

a = 100
result = 0
for i in range(1,3):
    result = a >> i
    result = result + 1
print(result)

a는 100  result 0으로 넣어놓고 

반복문은 i는 1이 초기값이니 1로 시작함 

 

728x90
반응형