파이썬 프로그래밍 객관식 50 문제 | ✅저자: 이유정(박사)
🔹 파이썬 프로그래밍 객관식 문제 1~10
1. 다음 중 파이썬의 특징으로 옳은 것은?
1. 컴파일 언어이다
2. 중괄호로 코드 블록을 구분한다
3. 인터프리터 언어이다
4. 정적 타이핑 언어이다
5. 오직 웹 개발에만 사용된다
✅ 정답: 3. 인터프리터 언어이다
설명: 파이썬은 컴파일 언어가 아니며, 바로 실행할 수 있는 인터프리터시 언어입니다.
2. 다음 중 리스트(List)를 정의한 코드는?
1. list = (1, 2, 3)
2. list = {1, 2, 3}
3. list = 1, 2, 3
4. list = [1, 2, 3]
5. list = <1, 2, 3>
✅ 정답: 4. list = [1, 2, 3]
설명: 리스트는 대가형 [] 기호를 이용해 생성합니다.
3. 다음 중 print() 함수의 출력 결과로 올바른 것은?
a = 5
b = 3
print(a // b)
1. 1.666...
2. 2
3. 0
4. 1.0
5. 오류 발생
✅ 정답: 2
설명: // 연산자는 모드 분수의 결과에서 정수만 남기는 것입니다.
4. 다음 중 딕셔너리(Dictionary)에 대한 설명으로 틀린 것은?
1. 키는 중복될 수 없다
2. 값은 중복될 수 있다
3. 키는 변경 가능한 값이어야 한다
4. 딕셔너리는 {}로 생성한다
5. dict() 함수를 통해 생성할 수 있다
✅ 정답: 3. 키는 변경 가능한 값이어야 한다
설명: 딕셔너리의 키는 변경 불가능한 형태여야 하며, 획을 사용할 수 없습니다.
5. 다음 중 lambda 함수에 대한 설명으로 옳은 것은?
1. 이름이 반드시 있어야 한다
2. 여러 문장을 작성할 수 있다
3. 함수 안에 if를 사용할 수 없다
4. 익명 함수로 한 줄 표현이 가능하다
5. 클래스에서만 사용 가능하다
✅ 정답: 4. 익명 함수로 한 줄 표현이 가능하다
설명: lambda는 이름이 없는 가능 함수이며, 다른 표현식 없이 한 줄을 작성할 수 있는 방식입니다.
6. 다음 중 반복문에서 사용 가능한 제어문이 아닌 것은?
1. break
2. continue
3. return
4. pass
5. stop
✅ 정답: 5. stop
설명: stop은 파이썬에서 사용하지 않는 제어문 입니다.
7. 다음 중 파이썬 예외 처리 문법으로 알맞은 것은?
1. try: ... except: ...
2. do: ... catch: ...
3. handle: ... rescue: ...
4. guard: ... fallback: ...
5. try: ... fail: ...
✅ 정답: 1. try: ... except: ...
설명: 예외 처리는 try 가리에 except 를 이용하여 수행 시 여부에 따라 다른 작업을 진행합니다.
8. 다음 중 튜플(tuple)의 특징이 아닌 것은?
1. 순서가 있다
2. 변경이 가능하다
3. 소괄호 ()로 생성한다
4. 인덱싱이 가능하다
5. 리스트보다 메모리 사용이 적다
✅ 정답: 2. 변경이 가능하다
설명: 튜플은 파이썬에서 변경 불가능한 데이터 구조입니다.
9. 다음 중 함수 인자의 종류에 해당하지 않는 것은?
1. 위치 인자
2. 기본값 인자
3. 키워드 인자
4. 가변 인자
5. 상속 인자
✅ 정답: 5. 상속 인자
설명: 함수의 인자는 위치 인자, 기본값 인자, 키워드 인자, 가변 인자가 존재하지만, “상속 인자”라는 것은 없습니다.
10. 다음 중 range(1, 5) 의 결과로 옳은 것은?
1. [1, 2, 3, 4, 5]
2. (1, 2, 3, 4, 5)
3. [1, 2, 3, 4]
4. [0, 1, 2, 3, 4]
5. [2, 3, 4, 5]
✅ 정답: 3 [1, 2, 3, 4]
설명: range(1, 5)는 1에서 시작하여 5 보다 적은 값까지의 정수 범위를 만드는 함수입니다.
🔹 파이썬 프로그래밍 객관식 문제 11~20
11. 다음 중 None의 의미로 가장 적절한 것은?
1. 0을 의미하는 키워드
2. 공백 문자열
3. 아무 값도 없음을 의미하는 객체
4. 예외 처리 시 사용하는 키워드
5. 함수에서 오류를 반환할 때 사용하는 상수
✅ 정답: 3. 아무 값도 없음을 의미하는 객체
- 설명: None은 파이썬에서 '값이 없음' 을 나타내는 객체입니다.
12. 다음 중 문자열 메서드에 해당하지 않는 것은?
1. upper()
2. lower()
3. append()
4. replace()
5. split()
✅ 정답: 3. append()
- 설명: append()는 리스트의 메서드이며 문자열에는 사용할 수 없습니다.
13. a = [1, 2, 3]일 때, a * 2 의 결과는?
1. [1, 2, 3, 2]
2. [1, 2, 3, 1, 2, 3]
3. [2, 4, 6]
4. [1, 2, 3, 6]
5. 오류 발생
✅ 정답: 2. [1, 2, 3, 1, 2, 3]
- 설명: 리스트에 * 연산자를 사용하면 리스트가 반복됩니다.
14. 다음 중 파일을 쓰기 모드로 여는 코드는?
1. open('file.txt', 'r')
2. open('file.txt', 'a')
3. open('file.txt', 'w')
4. open('file.txt', 'x')
5. open('file.txt', 'rb')
✅ 정답: 3. open('file.txt', 'w')
- 설명: 'w' 모드는 파일을 쓰기 모드로 엽니다. 기존 내용을 지우고 새로 작성합니다.
15. 다음 중 파이썬 모듈 import 방법으로 올바르지 않은 것은?
1. import math
2. from math import pi
3. import os as operating\_system
4. include numpy
5. from random import randint
정답: 4. include numpy
- 설명: include는 C 계열 언어에서 사용하는 키워드이며, 파이썬에서는 import 를 사용합니다.
16. 다음 코드 실행 결과는?
def test(a, b=3, c=5):
print(a, b, c)
test(1, c=7)
1. 1 3 5
2. 1 7 5
3. 1 5 7
4. 1 3 7
5. 오류 발생
✅ 정답: 4. 1 3 7
- 설명: a에 1이 들어가고, b는 기본값 3, c는 키워드 인자로 7이 전달되어 출력 결과는 "1 3 7"입니다.
17. 다음 중 클래스를 정의하는 키워드는?
1. function
2. def
3. class
4. lambda
5. object
✅ 정답: 3. class
- 설명: class는 새로운 클래스를 정의할 때 사용하는 파이썬 키워드입니다.
18. 다음 중 리스트에서 요소를 삭제하는 방법이 아닌 것은?
1. del a[0]
2. a.remove(2)
3. a.pop()
4. a.clear()
5. a.delete(0)
✅ 정답: 1. a.delete(0)
- 설명: delete는 리스트 메서드가 아니며 존재하지 않는 메서드입니다.
19. 다음 중 math 모듈에서 사용할 수 있는 함수는?
1. math.upper()
2. math.sum()
3. math.sqrt()
4. math.append()
5. math.input()`
✅ 정답: 3. math.sqrt()
- 설명: math.sqrt()는 제곱근을 반환하는 math 모듈의 함수입니다.
20. 다음 중 예외가 발생하지 않는 코드는?
1. int("abc")
2. 1 / 0
3. open("없는파일.txt")
4. print("hello".index("x"))
5. len([1, 2, 3])
✅ 정답: 5. len([1, 2, 3])
- 설명:
- 리스트의 길이를 구하는 len 함수는 정상적으로 실행되며 예외가 발생하지 않습니다.
🔹 파이썬 프로그래밍 객관식 문제 21~30
21. 다음 중 조건문 if에 대한 설명으로 옳지 않은 것은?
1. elif는 여러 번 사용할 수 있다
2. else는 조건이 반드시 필요하다
3. if문 안에 if를 중첩할 수 있다
4. if 뒤에는 조건식이 온다
5. if 문은 들여쓰기로 코드 블록을 구분한다
✅ 정답: 2. else는 조건이 반드시 필요하다
해설:
else
는 조건을 필요로 하지 않습니다. 조건 없이 if나 elif에 해당하지 않는 나머지 경우를 처리할 때 사용됩니다.
22. 다음 중 리스트 컴프리헨션(List Comprehension) 문법으로 올바른 것은?
1. [x for x in range(5) if x % 2 == 0]
2. for x in range(5) if x % 2 == 0: [x]
3. [for x in range(5) if x % 2 == 0]
4. {x for x in range(5) if x % 2 == 0}
5. x in range(5) if x % 2 == 0 [x]
✅ 정답: 1. [x for x in range(5) if x % 2 == 0]
해설:
- 리스트 컴프리헨션은
[출력식 for 변수 in 반복가능한객체 if 조건]
형태입니다. 2~5: 문법 오류 → ❌
23. 다음 중 zip() 함수의 기능으로 올바른 것은?
1. 리스트를 정렬한다
2. 문자열을 압축한다
3. 여러 이터러블 객체를 튜플로 묶는다
4. 두 리스트를 덧셈 연산한다
5. 파일을 압축하여 저장한다
✅ 정답: 3. 여러 이터러블 객체를 튜플로 묶는다
해설:
zip()
은 여러 iterable 객체를 인덱스별로 묶어 튜플의 형태로 반환합니다.
예:zip([1, 2], ['a', 'b'])
→[(1, 'a'), (2, 'b')]
24. 다음 중 set 자료형의 특징이 아닌 것은?
1. 중복을 허용하지 않는다
2. 순서가 유지된다
3. 집합 연산이 가능하다
4. set()으로 생성할 수 있다
5. 요소의 중복을 제거하는 데 사용된다
✅ 정답: 2. 순서가 유지된다
해설:
set
은 중복을 허용하지 않으며, 순서를 보장하지 않습니다.- 집합 연산 (합집합, 교집합 등)이 가능하며,
set()
으로 생성 가능합니다.
25. a = {1, 2, 3}일 때, a.add(4) 실행 후의 결과로 옳은 것은?
1. {1, 2, 3, 4}
2. [1, 2, 3, 4]
3. (1, 2, 3, 4)
4. {1, 2, 3}
5. {1, 2, 3, 4, 4}
✅ 정답: 1. {1, 2, 3, 4}
해설:
set
객체의.add()
메서드는 새로운 원소를 추가합니다.- 중복을 허용하지 않기 때문에 동일한 값이 여러 번 들어가진 않습니다.
26. enumerate(['a', 'b', 'c']) 의 결과로 옳은 것은?
1. [(0, 'a'), (1, 'b'), (2, 'c')]
2. ['a0', 'b1', 'c2']
3. {0: 'a', 1: 'b', 2: 'c'}
4. 'a', 'b', 'c'
5. ['a', 'b', 'c']
✅ 정답: 1. [(0, 'a'), (1, 'b'), (2, 'c')] 해설:
enumerate()
는 인덱스와 요소를 함께 반환하는 이터레이터를 생성합니다.- list로 감싸면 위와 같이 인덱스-값 쌍의 튜플 리스트가 됩니다.
27. 다음 중 파이썬 내장 함수가 아닌 것은?
1. map()
2. filter()
3. sum()
4. print()
5. numpy()
✅ 정답: 5. numpy()
해설:
numpy
는 외부 라이브러리이며,numpy()
라는 내장 함수는 없습니다.- 나머지
map()
,filter()
,sum()
,print()
는 내장 함수입니다.
28. a = [1, 2, 3]일 때, a[-1]의 값은?
1. 0
2. 1
3. 2
4. 3
5. 오류 발생
✅ 정답: 4
해설:
- 파이썬에서 인덱스
-1
은 리스트의 마지막 요소인 3이 출력됨을 의미합니다.
29. 다음 중 함수를 정의할 수 있는 올바른 문법은?
1. function myFunc():
2. def myFunc:
3. define myFunc():
4. def myFunc():
5. def: myFunc()
✅ 정답: 4. def myFunc():
해설:
- 함수 정의는
def 함수이름():
형식으로 합니다. - 나머지 보기들은 문법적으로 잘못되었습니다.
30. 다음 중 for 반복문과 함께 사용하지 않는 것이 일반적인 것은?
1. range()
2. enumerate()
3. zip()
4. input()
5. list()
✅ 정답: 4. input()
해설:
input()
은 사용자로부터 입력을 받을 때 사용되며, 일반적으로for
반복문에 직접 사용되지 않습니다.range()
,enumerate()
,zip()
은 반복문에서 자주 사용됩니다.
🔹 파이썬 프로그래밍 객관식 문제 31~40
31. 다음 중 **이터레이터(iterator)**의 특징으로 옳은 것은?
1. 모든 이터레이터는 인덱싱이 가능하다
2. for 문에서는 사용할 수 없다
3. next() 함수로 다음 값을 얻는다
4. 문자열은 이터레이터가 아니다
5. 반복이 끝나면 자동으로 처음으로 돌아간다
✅ 정답: 3. next()
함수로 다음 값을 얻는다
해설:
- 이터레이터는
__iter__()
와__next__()
메서드를 가진 객체입니다. next()
함수를 사용해 순차적으로 요소를 꺼낼 수 있습니다.- 나머지 보기:
- a ❌ 인덱싱 불가
- b ❌
for
문에서 매우 자주 사용됨 - d ❌ 문자열은 이터러블이며,
iter()
를 쓰면 이터레이터가 됩니다 - e ❌ 반복이 끝나면 자동으로 처음으로 돌아가지 않음 (예외 발생)
32. 다음 중 제너레이터(generator) 함수로 올바른 것은?
1. def gen(): return [1, 2, 3]
2. def gen(): yield 1; yield 2
3. def gen(): print(1); print(2)
4. def gen(): return yield 1
5. gen = (x for x in range(3)); yield gen
✅ 정답: 2. def gen(): yield 1; yield 2
해설:
yield
를 사용하는 함수는 제너레이터입니다.- a는 리스트 반환 → 일반 함수
- c는 출력만 함
- d 문법 오류
- e는 제너레이터 표현식이지만
yield
를 잘못 사용
33. 다음 중 파일을 안전하게 여는 방식으로 권장되는 것은?
1. f = open('data.txt'); f.read(); f.close()
2. with open('data.txt', 'r') as f: data = f.read()
3. open('data.txt').read().close()
4. f = open('data.txt', 'r').readlines()
5. read('data.txt') as f
✅ 정답: 2. with open('data.txt', 'r') as f: data = f.read()
해설:
with
구문은 파일을 열고 자동으로 닫아주는 안전한 방식입니다.- a는 명시적
close()
가 필요 - c는 문법 오류
- d는 닫기 생략 (비권장)
- e는 잘못된 문법
34. 다음 중 파이썬의 주요 예외 클래스가 아닌 것은?
1. ValueError
2. KeyError
3. NameError
4. BreakError
5. TypeError
✅ 정답: 4. BreakError
해설:
BreakError
는 존재하지 않습니다.- 나머지는 모두 표준 예외 클래스입니다:
ValueError
,KeyError
,NameError
,TypeError
35. 클래스 메서드를 정의할 때 사용하는 데코레이터는?
1. @staticmethod
2. @classmethod
3. @property
4. @method
5. @define
✅ 정답: 2. @classmethod
해설:
- 클래스 메서드는 첫 번째 인자로
cls
를 받으며,@classmethod
를 사용합니다. @staticmethod
는 인스턴스나 클래스 정보 없이 동작@property
는 속성처럼 사용하는 메서드에 사용
36. 다음 중 모듈을 직접 실행할 때만 동작하는 코드를 감싸는 조건문은?
1. if run == "\_\_main\_\_"
2. if \_\_main\_\_ == \_\_name\_\_
3. if \_\_name\_\_ == "\_\_main\_\_"
4. if self.name == "\_\_main\_\_"
5. if \_\_file\_\_ == "\_\_main\_\_"
✅ 정답: 3. if __name__ == "__main__"
해설:
- 해당 조건은 모듈이 직접 실행될 때만
True
가 됩니다. - 다른 보기들은 조건문의 구조 또는 변수명이 잘못되었습니다.
37. 다음 중 타입 힌트가 올바르게 적용된 함수는?
- def add(a: int, b: int) -> int: return a + b
- def add(a int, b int) -> int: return a + b
- def add(int a, int b): return a + b
- add = lambda a:int, b:int: a + b
- def add(int a, int b) -> int: return a + b
✅ 정답: 1. def add(a: int, b: int) -> int: return a + b
해설:
- 타입 힌트 문법:
변수명: 타입
,-> 반환타입
- 나머지 보기들은 문법 오류 또는 타입 힌트의 잘못된 사용
38. 다음 중 **딕셔너리의 모든 키-값 쌍을 순회(iterate)**하는 메서드는?
- keys()
- values()
- items()
- pairs()
- entries()
✅ 정답: 3. items()
해설:
dict.items()
는(key, value)
형태의 튜플을 반환하며, 모든 쌍을 순회할 수 있습니다.keys()
는 키만,values()
는 값만 반환- 4, 5는 존재하지 않는 메서드
39. try-except-finally 구문에서 finally의 역할은?
a. 오류가 발생할 경우에만 실행된다
b. 오류가 없을 때만 실행된다
c. 무조건 마지막에 실행된다
d. 예외를 던진다
e. 예외 메시지를 반환한다
✅ 정답: 3. 무조건 마지막에 실행된다
해설:
finally
블록은 오류 발생 여부와 관계없이 항상 실행됩니다.- 자원 해제 등 마무리 작업에 주로 사용
40. 다음 중 set() 자료형에 적용할 수 있는 연산자는?
1. +
2. -
3. \*
4. /
5. %
✅ 정답: 2. -
해설:
set
은-
연산자를 통해 차집합 연산이 가능합니다.- 예:
{1, 2, 3} - {2}
→{1, 3}
+
,*
,/
,%
는 set 자료형에는 지원되지 않습니다
🔹 파이썬 프로그래밍 객관식 문제 41~50
41. 다음 중 불변(immutable) 자료형으로만 구성된 것은?
1. list, dict, set
2. str, tuple, int
3. list, str, float
4. dict, int, str
5. set, tuple, list
✅정답: 2. str, tuple, int
해설:
- 불변 자료형:
int
,float
,str
,tuple
,frozenset
등 - 가변 자료형:
list
,dict
,set
등 - b번만 모두 불변 자료형으로 구성되어 있음.
42. text = "Python" 일 때, text[1:4]의 결과는?
1. "Pyt"
2. "yth"
3. "ytho"
4. "Pyt"
5. "ytho"
✅정답: 2. "yth"
해설:
- 슬라이싱은
[start:end]
로,start
는 포함하고end
는 제외. text[1:4]
→"Python"
에서 인덱스 1~3까지 →'y'
,'t'
,'h'
→"yth"
43. 다음 중 클래스 상속에 대한 설명으로 올바른 것은?
1. super() 는 부모 클래스의 인스턴스를 복제한다
2. 파이썬에서는 다중 상속이 불가능하다
3. class Sub(Base):는 상속의 기본 문법이다
4. 하위 클래스는 부모 클래스의 private 속성을 직접 접근할 수 있다
5. 클래스는 반드시 상속을 사용해야만 정의할 수 있다
✅정답: 3. class Sub(Base):
는 상속의 기본 문법이다
해설:
class Sub(Base):
→ Base 클래스를 상속받는 Sub 클래스 정의super()
는 부모 클래스의 메서드 호출에 사용, 인스턴스를 복제하지 않음- 파이썬은 다중 상속 지원
- 하위 클래스는 private 속성 직접 접근 불가
- 클래스는 상속 없이도 정의 가능
44. 다음 중 패키지 구조에서 __init__.py 파일의 역할은?
1. CSS 파일을 포함하는 데 사용된다
2. 패키지 디렉토리임을 인식시킨다
3. 가상 환경을 초기화한다
4. 웹 프레임워크의 루트를 정의한다
5. 의존성 파일을 저장한다
✅정답: 2. 패키지 디렉토리임을 인식시킨다
해설:
__init__.py
는 해당 디렉토리를 파이썬 패키지로 인식시키는 역할- 다른 선택지는 패키지와 관련 없음
45. 다음 중 가변 위치 인자를 사용하는 함수 정의는?
1. def func(a=1, b=2):
2. def func(\*args):
3. def func(\*\*kwargs):
4. def func(a, b, /):
5. def func[a, b]:
✅정답: 2. def func(*args):
해설:
*args
→ 위치 인자를 튜플로 받아들임**kwargs
는 키워드 인자용 (가변 키워드 인자)- 나머지 선택지는 일반 매개변수 또는 문법 오류
46. 다음 중 두 리스트 a = [1, 2, 3] , b = [1, 2, 3]에 대해 a is b의 결과는?
1. True
2. False
3. 예외 발생
4. 메모리 주소를 비교하지 않는다
5. 두 값이 같으면 항상 True
✅정답: 2. False
해설:
is
는 객체의 정체성(메모리 주소) 비교a
와b
는 내용이 같지만 서로 다른 객체 →a is b
는False
47. 다음 중 심볼 테이블(Symbol Table)에 저장되는 항목은?
1. 실행 중의 에러 로그
2. 외부 라이브러리 정보
3. 현재 코드에서 정의된 변수명
4. 네트워크 통신 상태
5. HTML 렌더링 구조
✅정답: 3. 현재 코드에서 정의된 변수명
해설:
- 심볼 테이블은 변수명, 함수명 등 식별자 이름과 매핑되는 정보 저장
- 에러 로그, 네트워크 상태 등은 무관
48. 다음 중 논리 연산자가 아닌 것은?
1. and
2. or
3. not
4. is
5. xor
✅정답: 4. is
해설:
- 논리 연산자:
and
,or
,not
is
는 동일성 비교 연산자 (객체가 같은지 확인)xor
는 파이썬의 기본 연산자가 아님 (비트 연산자^
는 존재)
49. sorted(['dog', 'apple', 'Banana'])의 결과로 가장 적절한 것은?
1. ['Banana', 'apple', 'dog']
2. ['dog', 'apple', 'Banana']
3. ['apple', 'Banana', 'dog']
4. ['Banana', 'dog', 'apple']
5. ['apple', 'dog', 'Banana']
✅정답: 1. ['Banana', 'apple', 'dog']
해설:
sorted()
는 대소문자를 구분해 정렬 (대문자가 소문자보다 앞)- 따라서
"Banana"
가"apple"
보다 먼저 옴
50. 다음 중 내장 함수가 아닌 것은?
- min()
- open()
- dir()
- count()
- eval()
✅정답: 4. count()
해설:
min()
,open()
,dir()
,eval()
→ 모두 파이썬 내장 함수count()
는 문자열, 리스트 등의 메서드로 존재할 뿐 내장 함수는 아님