첫 번째 프로그램
학습 목표
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() 함수
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()은 사용자로부터 키보드 입력을 받는 함수입니다. 항상 **문자열(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가 발생합니다.
주석은 코드의 설명을 위한 메모로, 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 공백 공백을 권장, 혼용 금지 일관성 프로젝트 전체에서 동일한 방식 사용
실습: 간단한 프로그램 작성
지금까지 배운 내용을 조합하여 간단한 자기소개 프로그램을 만들어 봅시다.
코드 작성
# 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을 배워보세요! '}")
실행 및 확인
$ python3 intro.py
========================================
자기소개 프로그램
========================================
이름: 김철수
나이: 25
좋아하는 프로그래밍 언어: Python
안녕하세요! 김철수님 (25세)
좋아하는 언어는 Python이군요!
Python이 최고입니다! 🐍
Python 3을 사용하고 있는지 확인하세요. python --version으로 버전을 확인할 수 있습니다. Python 2에서는 print가 함수가 아닌 문(statement)이었습니다.
파일 인코딩이 UTF-8인지 확인하세요. 터미널의 인코딩 설정도 UTF-8이어야 합니다.
탭과 공백이 혼용되었을 수 있습니다. 에디터 설정에서 탭을 공백 4칸으로 자동 변환하도록 설정하세요.
체크리스트
다음 문서