강의록
유사한 유형의 문제를 해결할 수 있도록 특정 작업을 수행하는 명령문의 집합을 단일 식별자로 구성한 개념은?
a. 함수
- 인터프리터
- 소스 코드를 바이트 코드 또는 실행 파일로 바꾸는 역할
- 파일
- 데이터를 임시적으로 저장하고 있는 개념
- 명령 블럭
- 특정 목적을 수행하는 코드의 집합
- 인터프리터
line
클래스의 인스턴스m
의 멤버__len
을 10으로 수정하기 위한 올바른 표현은?1 2 3 4 5 6 7 8 9
class line: def __init__(self, length): self.__len = length def get_length(self): return self.__len def set_length(self, length): self.__len = length
a.
m.set_length(10)
- __로 시작하는 private 데이터 필드는 외부에서 접근 불가
- setter 또는 변경자라 불리는 메소드 통해 수정해 주어야 함
- __로 시작하는 private 데이터 필드는 외부에서 접근 불가
math
모듈 사용을 위한 빈 칸의 올바른 표현은?1 2 3 4
# 빈 칸 a, b = 10, 20 area = 1/2 * a * b * sin(radians(60)) print(area)
a.
from math import sin, radians
- 모듈을 사용하려면 프로그램 내부에 선언이 필요
특정 목적 또는 분야에서 사용되는 함수, 상수, 클래스 등을 모아 놓은 파일은?
a. 모듈
- 프레임워크
- 어떤 개발하는 과정에서 일종의 토대를 만들어 놓고 약간 살을 덧붙임으로 개발을 빠르게 개발할 수 있는 방법 제공
- 프레임워크
특정한 배열 순서나 규칙적인 의미가 없는, 임의의 수는?
a. 난수
- 난수 다룰 수 있는 랜덤 모듈이 있음
대규모 소프트웨어 개발에 자원을 투입하여 초기에 예상한 결과물 구현을 목적으로 소프트웨어 전체 개발 과정을 하나의 프로세스로 정의한 것은?
a. 소프트웨어 개발 라이프사이클
- SDLC
매개 변수 값의 합을 반환하는 summation 함수에 대해 빈칸에 알맞은 표현은?
1 2 3 4 5
def summation(*numbers): # 가변 매개 변수 -> 리스트 형태로 들어옴 sum = 0 # ________________ sum = sum + i return sum
a.
for i in numbers
딕셔너리의 구성 요소와 용어가 올바르게 짝 지어진 것은?
a. 2 - 항목(item)
- 1 - 키(key)
- 2 - 항목(item)
- 3 - 값(value)
- 4 - 딕셔너리(dictionary)
- 리스트와 유사한 시퀀스 타입
- 동일한 형태의 유형이 나열되는 형태의 데이터 타입
- 각각의 항목이 키와 값이라고 하는 두 개의 pair로 구성 됨
- 검색의 용도로 사용 가능
매개 변수로 전달된 숫자를 역순으로 출력하는 함수이다. 빈칸에 알맞은 연산자는?
1 2 3 4 5
def reverse_digit(number): while number != 0: digit = number % 10 # 10으로 나눈 나머지 -> 일의 자리 값 가져옴 number = number # ____ # 10으로 나눔 -> 일의 자리 숫자를 떼어냄 print(digit, end="")
a.
//
- 정수 나눗셈
- 정수만 남기는 형태의 나눗셈
- 정수 나눗셈
객체와 객체 사이의 상호작용으로 프로그램을 구성하는 프로그래밍 패러다임은?
a. 객체 지향 프로그래밍
- 명령형 프로그래밍과 구조적 프로그래밍을 그대로 사용하면서도 코드의 재활용률을 높이고 객체 사이사이의 상호 작용 관점을 제공
아래는 ‘Khan.txt’ 파일을 읽고 처리하는 프로그램이다. 다음 물음에 따라 답하시오.
1 2 3 4 5 6 7
khan_fp = open("Khan.txt", "r") # 읽기 모드로 파일을 읽어옴 khan_mottos = # ___(가)___ for motto in khan_mottos: print(motto.strip()) # 공백 제거 후 출력 # ___(나)___
파일 전체의 내용이 리스트로 저장되도록 (가)에 들어갈 알맞은 표현은?
멤버 설명 open() : file obj
파일과 연결되어 있는 파일 객체 생성 read()
특정 개수의 문자를 반환 readline()
한 라인의 문자열을 반환 readlines() : list
전체 라인의 문자열을 리스트로 반환 write(s: str):
파일에 문자열을 작성 close()
파일 닫기 및 파일 객체 삭제 a.
khan_fp.readlines()
파일 처리 후 프로그램이 종료되기 전 파일에 대한 마무리 작업으로 (나)에 들어갈 올바른 표현은?
a.
a. khan_fp.close()
- 파일에 대한 라이프사이클
- 생성
- 처리 · 사용
- 닫기
- 파일 포인터를 얻어 사용하고 나면 꼭 닫아주어야 오류가 적음
- 파일에 대한 라이프사이클
함수의 처리 결과 반환 시 사용하는 키워드는?
a.
return
break
- 반복문이 중간에 중단 될 수 있도록 만들어주는 키워드
continue
- 현재의 반복만 중단하고 다음 반복으로 넘어감
다음은 EDP 구동 구조이다. 이벤트 루프의 역할에 대한 올바른 설명은?
a. 이벤트 생성 여부 확인 및 전달
- EDP
- Event driven programming
- 이벤트에 의해서 동작하는 프로그램
- GUI 프로그래밍에 기본적으로 사용 되는 구조
- 이벤트 발생 장치
- 이벤트 유형에 따른 이벤트 생성
- 이벤트 큐
- 이벤트가 발생 되면 이벤트 저장함
- 이벤트 핸들러
- 이벤트 발생에 따른 코드 실행
- EDP
소프트웨어 개발 라이프 사이클에서 요구 반영, 예상 결과 유사 검증 및 오류 파악이 진행되는 단계는?
a. 테스트
다음 클래스의 인스턴스를 생성하는 표현은?
1 2 3 4 5 6 7 8
class robot: def __init__(self, name): self.name = name self.skill = [] def create_skill(self, skill): self.skill.append(skill) def info(self): print('제 이름은', self.name, '입니다!')
a.
r1 = robot("android1")
- 클래스의 인스턴스를 만들려고 하면 생성자를 불러야 함
- 생성자의 이름은 클래스 이름과 동일
- 생성자의 파라미터는
__init__
에 있는 파라미터로 결정 - 모든 메소드의 첫번째 파라미터는 self → 파라미터를 넘길 때는 생각하지 않음
- 클래스의 인스턴스를 만들려고 하면 생성자를 불러야 함
객체 지향 프로그래밍에서 객체의 구성 요소가 아닌 것은?
a. 내장 함수
- 객체 지향 프로그래밍
- 객체로써 프로그램을 구성함
- 객체는 데이터 필드와 메소드의 하나의 합
- 메소드, 초기자, 데이터 필드는 객체를 구성하는 요소
- 내장 함수
- 인터프리터에 있어 별도로 정의하지 않아도 사용할 수 있는 함수들
- 객체 지향 프로그래밍
아래는 구구단 게임 소스 코드이다. 다음 물음에 따라 답하시오. a, b가 1~9의 임의의 정수가 되도록 (가), (나)에 공통적으로 사용되는 표현은?
1 2 3 4 5 6 7 8 9 10 11 12 13
import random score = 0 for i in range(10): a = # ___(가)___ b = # ___(나)___ result = int(input(str(a)+" X "+str(b)+"?")) if result == a * b : score += 20 print("맞았습니다.") else: print("틀렸습니다.")
멤버 설명 random()
0 ~ 1 사이의 숫자 중 난수 발생 randint(a, b)
a부터 b 사이의 숫자 중 난수 발생 randrange(a, b, c)
a부터 b 사이의 c의 간격으로 나열된 숫자 중 난수 발생 choice(sequence)
주어진 항목을 랜덤하게 반환 sample(sequence)
랜덤하게 여러 개의 원소를 선택 shuffle(sequence)
시퀀스의 순서를 랜덤하게 섞음 a.
random.randint(1, 9)
아래는 2차원 리스트 board에 포함된 모든 항목을 출력하는 함수이다. 다음 물음에 답하시오. 행마다 원소의 값이 새로운 라인에서 출력되도록 (가)에
print()
가 삽입될 때,print()
앞의 들여쓰기 칸 수는? (단, 들여쓰기 단위는 3칸이라고 가정한다.)1 2 3 4 5
def show_board(): for row in board: for item in row: print(item, end=" ") # ___(가)___
a. 6
- 행이 바뀔 때 마다 print 문이 실행 되어야 함
아래는 파일에 포함된 단어의 출현 횟수를 세는 프로그램이다. 다음 물음에 따라 답하시오.
1 2 3 4 5 6 7 8 9 10 11 12 13
h_fp = open("hamlet_by_Shakespeare.txt", "r") wdict = dict() for line in h_fp.readlines(): # 파일에 포함 된 리스트를 모두 읽어 한줄 한줄 가져옴 for word in line.strip().split(): # 공백이 있을 때마다 하나씩 끊음 word = word.strip(" ,?[.\\";").lower() # 불필요한 문자 삭제 if # ___(가)___ is not None: count = # ___(나)___ else : count = 0 # ___(다)___ = count + 1 h_fp.close()
wdict 딕셔너리에 word에 대한 항목 생성 여부를 확인하기 위한 표현으로 (가)에 들어갈 올바른 것은? | 멤버 | 설명 | | ——————- | ——————————– | |
keys() : tuple
| 포함된 모든 키를 반환 | |values() : tuple
| 포함된 모든 값을 반환 | |items() : tuple
|(키, 값)
형태의 튜플로 모든 항목을 반환 | |clear() : None
| 모든 항목을 삭제 | |get(key) : value
| 키에 해당하는 값을 반환 | |pop(key) : value
| 키에 해당하는 값을 반환하고 항목을 삭제 | |popitem() : tuple
| 무작위로 한 (키, 값)을 반환하고 선택된 항목을 삭제 |a.
wdict.get(word)
- word를 넘겨주어 해당 되는 출현 횟수의 값이 넘어옴
wdict에서 word 항목의 값을 가져오거나 저장하기 위해 (나)와 (다)에 공통으로 들어갈 올바른 표현은?
a.
wdict[word]
- key 에 대한 값을 가지고 오거나 키에 대한 항목 값을 세팅할 때 사용
아래는 3 X 3 2차원 리스트 board 의 대각선 항목이 모두 X 기호로 채워져 있는지 검사하는 함수이다. 다음 물음에 따라 답하시오. 아래와 같은 방향에 위치한 항목이 X로 채워졌을 때 True가 반환 되도록 각각 들어갈 (가)와 (나)의 표현은?
1 2 3 4 5 6 7 8 9 10
def is_diagonal(board): # board를 매개 변수로 추가 (일반적인 경우) win = True for i in range(3): if board # [(가)][(나)] != "X": win = False break if win == True: return win return False
a. i, 3 - 1 - i
- 한 행 검사할 때마다 행의 값은 0에서 1씩 증가, 열의 값은 2에서 1씩 감소
- 행 0, 열 2
- 행 1, 열 1
- 행 2, 열 0
- 한 행 검사할 때마다 행의 값은 0에서 1씩 증가, 열의 값은 2에서 1씩 감소
연습 문제
다음과 같은 형식으로 실수를 출력할 때, 숫자 앞에 삽입 된 공백(스페이스)의 개수는? (숫자의 입력)
1
format(3.141592, ">20.3f")
a. 15
- 3.141592를 소수점 3자리까지 실수로 표시하면 → 3.142
___________________3.142
- 언더바 15개
>
- 오른쪽 정렬
- 20
- 전체 출력 폭(width)이 20칸
- .3f
- 소수점 이하 3자리까지의 실수로 표시
- 3.141592를 소수점 3자리까지 실수로 표시하면 → 3.142
private 데이터 필드에 값을 설정하는 메소드를 접근자(accessor)라고 함
a. X
- 접근자(Accessor)
- 데이터 필드의 값을 읽어오는 메소드
- getter
- 설정자(Mutator)
- 데이터 필드의 값을 설정하는 메소드
- setter
- 접근자(Accessor)
다음은 객체의 생성 과정을 도식화 한 것이다. 빈칸에 알맞은 것은?
1
Cone(20, 30) # 생성자 호출 -> 20, 50이 인자로 전달 됨
a. 초기자 호출
객체 생성 시 내부적으로
__init__
(초기화 함수)가 호출 됨1 2 3 4 5 6
class Cone: def __init__(self, a, b): # 인자로 받은 값을 객체의 속성에 할당(초기화) 함 self.a = a self.b = b cone = Cone(20, 30)