다음은 Python 기초 학습에 관련된 객관식 문제와 프로그래밍 예제입니다.
객관식 문제
- Guido van Rossum이 Python을 공식 발표한 연도는 언제입니까?
- Python 코드에서 "들여쓰기"에 대한 설명으로 올바른 것은 무엇입니까?
- 들여쓰기는 모든 문장에서 동일한 길이로 강제 사용됩니다.
- 들여쓰기는 모든 문장 뒤에 사용하여 문장 간의 포함 관계를 나타낼 수 있습니다.
- 들여쓰기는 선택 사항이며 코드 가독성 향상을 위해서만 사용됩니다.
- 들여쓰기는 4개의 공백으로 통일되어야 합니다.
정답: (Python의 들여쓰기는 통일성만 유지되면 되며, 반드시 4개의 공백일 필요는 없습니다. 다만 4개의 공백이 관례적으로 널리 사용됩니다.)
- 다음 중 IPO 모델(Input, Process, Output)에 해당하지 않는 것은 무엇입니까?
- Program
- Output
- Input
- Process
정답: Program
- 문자열 시퀀스 `s`가 주어졌을 때, 오른쪽에서 왼쪽으로 세 번째 문자를 나타내는 표현은 무엇입니까?
- Python에서 유효하지 않은 이름(명명 규칙 위반)은 무엇입니까?
- Python에서 사용자 입력을 받는 함수는 무엇입니까?
- 다음 중 Python 예약어가 아닌 것은 무엇입니까?
- 다음 중 Python의 데이터 타입이 아닌 것은 무엇입니까?
- 다음 중 분기 구조를 직접적으로 나타내지 않는 예약어는 무엇입니까?
- `print()` 함수의 서식 지정 기능을 사용하여 소수점 이하 두 자리까지 부동 소수점 수를 출력하는 데 사용되는 형식 지정자는 무엇입니까?
프로그래밍 예제
Hello World 조건부 출력
사용자로부터 정수를 입력받아, 입력된 값에 따라 "Hello World"를 다르게 출력하는 프로그램입니다.
- 입력값이 0이면 "Hello World"를 그대로 출력합니다.
- 입력값이 0보다 크면 "Hello World"를 두 문자씩 줄을 바꾸어 출력합니다. (공백 포함)
- 입력값이 0보다 작으면 "Hello World"를 세로로 한 글자씩 출력합니다.
input_value = int(input("정수를 입력하세요: "))
message = "Hello World"
if input_value == 0:
print(message)
elif input_value > 0:
for i in range(0, len(message), 2):
print(message[i:i+2])
else:
for char in message:
print(char)
수치 연산
사용자로부터 "M OP N" 형식의 문자열을 입력받습니다. 여기서 M과 N은 숫자이고, OP는 '+', '-', '\*', '/' 중 하나의 연산자를 나타냅니다. 입력된 연산에 따라 M OP N의 결과를 계산하고, 결과를 소수점 이하 둘째 자리까지 표시합니다. 입력 형식 오류는 고려하지 않습니다.
import re
expression_str = input("계산식을 입력하세요 (예: 10 + 5): ")
# 정규 표현식을 사용하여 숫자와 연산자 분리 (다양한 공백 처리)
match = re.match(r"^\s*(-?\d+(?:\.\d+)?)\s*([+\-*/])\s*(-?\d+(?:\.\d+)?)\s*$", expression_str)
if match:
num_m = float(match.group(1))
operator = match.group(2)
num_n = float(match.group(3))
result = 0
if operator == '+':
result = num_m + num_n
elif operator == '-':
result = num_m - num_n
elif operator == '*':
result = num_m * num_n
elif operator == '/':
if num_n != 0:
result = num_m / num_n
else:
result = "Error: Division by zero"
if isinstance(result, str):
print(result)
else:
print(f"{result:.2f}")
else:
print("잘못된 입력 형식입니다.")