Skip to main content

첫 번째 프로그램

학습 목표

  • REPL과 스크립트 모드의 차이를 이해하고 사용할 수 있다
  • print()input() 함수로 기본 입출력을 구현할 수 있다
  • 주석과 들여쓰기 규칙을 올바르게 적용할 수 있다

왜 중요한가

모든 프로그래밍 학습은 “Hello, World!”에서 시작합니다. 이 단순한 프로그램을 통해 언어의 실행 환경을 확인하고, 코드가 어떻게 작동하는지 첫 경험을 합니다.

Python 실행 방식

Python 코드를 실행하는 방법은 크게 두 가지입니다.

REPL (Read-Eval-Print Loop)

REPL은 코드를 한 줄씩 입력하고 즉시 결과를 확인하는 대화형 모드입니다. 터미널에서 python 또는 python3을 입력하면 시작됩니다.
# 터미널에서 REPL 시작
# $ python3

>>> print("Hello, World!")
Hello, World!

>>> 2 + 3
5

>>> "Python" * 3
'PythonPythonPython'

# REPL 종료: exit() 또는 Ctrl+D
>>> exit()
REPL은 간단한 코드 테스트, 라이브러리 탐색, 계산에 유용합니다. 하지만 여러 줄의 프로그램을 작성할 때는 스크립트 모드를 사용하세요.

스크립트 모드

.py 확장자를 가진 파일에 코드를 작성하고 실행하는 방식입니다.
# hello.py
print("Hello, World!")
print("Python 프로그래밍을 시작합니다.")
# 터미널에서 실행
$ python3 hello.py
Hello, World!
Python 프로그래밍을 시작합니다.

두 방식의 비교

특성REPL스크립트
실행 방식한 줄씩 즉시파일 전체를 한 번에
결과 확인입력 즉시print() 필요
코드 저장불가.py 파일로 저장
용도테스트, 탐색프로그램 개발
print()는 화면에 값을 출력하는 내장 함수(Built-in Function)입니다.

기본 사용법

# 문자열 출력
print("안녕하세요")

# 숫자 출력
print(42)
print(3.14)

# 여러 값 출력 (쉼표로 구분, 공백으로 연결)
print("나이:", 25, "살")
# 출력: 나이: 25 살

# 빈 줄 출력
print()

구분자와 끝 문자

# sep: 값 사이의 구분자 (기본값: 공백)
print("2024", "01", "15", sep="-")
# 출력: 2024-01-15

print("A", "B", "C", sep=" -> ")
# 출력: A -> B -> C

# end: 출력 끝에 붙는 문자 (기본값: 줄바꿈 \n)
print("로딩 중", end="...")
print("완료!")
# 출력: 로딩 중...완료!

f-string을 활용한 출력

f-string(Formatted String Literal)은 문자열 안에 변수나 표현식을 삽입하는 방법입니다. Python 3.6부터 지원됩니다.
name = "김철수"
age = 25

# f-string 기본 사용
print(f"이름: {name}, 나이: {age}")
# 출력: 이름: 김철수, 나이: 25

# 표현식도 가능
print(f"내년 나이: {age + 1}")
# 출력: 내년 나이: 26

# 소수점 포매팅
pi = 3.141592653589793
print(f"원주율: {pi:.2f}")
# 출력: 원주율: 3.14

input() 함수

input()은 사용자로부터 키보드 입력을 받는 함수입니다. 항상 **문자열(str)**을 반환합니다.
# 기본 입력 받기
name = input("이름을 입력하세요: ")
print(f"안녕하세요, {name}님!")

# 숫자 입력 받기 (타입 변환 필요)
age_str = input("나이를 입력하세요: ")
age = int(age_str)  # 문자열 -> 정수 변환
print(f"{age}세이시군요. 내년이면 {age + 1}세입니다.")

# 한 줄로 줄이기
height = float(input("키를 입력하세요(cm): "))
print(f"키: {height}cm")
input()은 항상 문자열을 반환합니다. 숫자 연산이 필요하면 int() 또는 float()로 변환해야 합니다. 변환할 수 없는 값이 입력되면 ValueError가 발생합니다.

주석(Comment)

주석은 코드의 설명을 위한 메모로, Python 인터프리터가 무시합니다.
# 한 줄 주석: # 기호 뒤의 내용은 무시됩니다
x = 42  # 변수 x에 42 할당

# 여러 줄 주석: 각 줄 앞에 # 사용
# 아래 함수는 두 수의 합을 계산합니다.
# 반환값은 정수입니다.
def add(a, b):
    return a + b

# docstring: 함수/클래스 설명용 (주석과 다름)
def multiply(a, b):
    """두 수의 곱을 반환합니다.

    Args:
        a: 첫 번째 숫자
        b: 두 번째 숫자

    Returns:
        a와 b의 곱
    """
    return a * b
"""triple quotes"""는 주석이 아닌 docstring(문서화 문자열)입니다. 함수, 클래스, 모듈의 첫 문장으로 작성하면 help() 함수나 IDE에서 자동으로 표시됩니다.

들여쓰기 규칙

Python에서 들여쓰기는 문법의 일부입니다. 다른 언어에서는 가독성을 위한 선택이지만, Python에서는 코드 블록을 정의하는 필수 요소입니다.
# 올바른 들여쓰기 (공백 4칸 권장)
if True:
    print("조건이 참입니다")
    if True:
        print("중첩 블록")

# 잘못된 들여쓰기 -> IndentationError 발생
if True:
print("이 코드는 에러!")  # IndentationError

들여쓰기 규칙 요약

규칙설명
공백 4칸PEP 8 권장 표준
탭 vs 공백공백을 권장, 혼용 금지
일관성프로젝트 전체에서 동일한 방식 사용

실습: 간단한 프로그램 작성

지금까지 배운 내용을 조합하여 간단한 자기소개 프로그램을 만들어 봅시다.
1

파일 생성

intro.py 파일을 생성합니다.
2

코드 작성

# intro.py - 자기소개 프로그램

print("=" * 40)
print("  자기소개 프로그램")
print("=" * 40)

# 사용자 정보 입력
name = input("이름: ")
age = int(input("나이: "))
language = input("좋아하는 프로그래밍 언어: ")

# 결과 출력
print()
print(f"안녕하세요! {name}님 ({age}세)")
print(f"좋아하는 언어는 {language}이군요!")
print(f"{'Python'이 최고입니다! 🐍' if language == 'Python' else f'{language}도 좋지만, Python을 배워보세요!'}")
3

실행 및 확인

$ python3 intro.py
========================================
  자기소개 프로그램
========================================
이름: 김철수
나이: 25
좋아하는 프로그래밍 언어: Python

안녕하세요! 김철수님 (25세)
좋아하는 언어는 Python이군요!
Python이 최고입니다! 🐍
Python 3을 사용하고 있는지 확인하세요. python --version으로 버전을 확인할 수 있습니다. Python 2에서는 print가 함수가 아닌 문(statement)이었습니다.
파일 인코딩이 UTF-8인지 확인하세요. 터미널의 인코딩 설정도 UTF-8이어야 합니다.
탭과 공백이 혼용되었을 수 있습니다. 에디터 설정에서 탭을 공백 4칸으로 자동 변환하도록 설정하세요.

체크리스트

  • REPL에서 Python 코드를 실행할 수 있다
  • .py 파일을 작성하고 터미널에서 실행할 수 있다
  • print() 함수의 sep, end 매개변수를 활용할 수 있다
  • input()으로 사용자 입력을 받고 타입 변환을 할 수 있다
  • 주석과 docstring의 차이를 설명할 수 있다
  • 들여쓰기 규칙을 올바르게 적용할 수 있다

다음 문서