if문
if문은 다음과 같은 구조를 가집니다.
if 조건문:
문장
elif 조건문:
문장
else:
문장
# 문장이 한 줄인 경우
if 조건문: 문장
elif 조건문: 문장
else: 문장
중요) if문뿐만 아니라 파이썬의 모든 문법에는 다른 언어와 달리 중괄호{} 가 사용되지 않고 콜론(:)과 들여쓰기(indentation)를 기준으로 구분하기 때문에 들여쓰기를 하지 않거나 그 깊이(depth)를 맞추지 않으면 에러가 납니다.
조건문 연산자
1. 비교 연산자

2. 논리 연산자

조건부 표현식
파이썬의 조건부 표현식(conditional expression)을 사용하면 다음과 같이 간단하게 표현도 가능합니다.
변수 = 참일때 값 if 조건문 else 거짓일때 값
message = "success" if score >= 60 else "failure"
while문
while문은 다음과 같은 구조를 가집니다.
while 조건문:
문장1
문장2
문장3
# 무한 루프
while True:
문장1
문장2
문장3
반복문 안에서 반복문을 즉시 종료하고 빠져나가는 break와 해당 반복 회차를 건너뛰고 다음 반복을 진행하는 continue 키워드를 사용하여 흐름을 제어할 수 있습니다.
for문
for문은 다음과 같은 구조를 가집니다.
for 변수 in 반복 가능한 객체:
문장1
문장2
for문도 동일하게 반복문 안에서 반복문을 즉시 종료하고 빠져나가는 break와 해당 반복 회차를 건너뛰고 다음 반복을 진행하는 continue 키워드를 사용하여 흐름을 제어할 수 있습니다.
range()
range() 함수는 숫자 시퀀스를 생성하는 파이썬 내장 함수로 주로 for 반복문에서 많이 사용됩니다.
range(시작, 끝, 간격) # 시작 <= x < 끝
a = range(5) # 0, 1, 2, 3, 4
range(1, 3) # 1, 2
range(1, 9, 2) # 1, 3, 5, 7
list(a) # [0, 1, 2, 3, 4]
다양한 for문
a = [(1, 2), (3, 4), (5, 6)]
for (start, end) in a:
print(start + end)
for i in range(2, 10):
for j in range(1, 10):
print(i*j)
리스트 컴프리헨션
리스트 컴프리헨션(List Comprehension)은 파이썬에서 리스트를 간결하고 직관적인 방식으로 생성할 수 있는 문법입니다. 반복문과 조건문을 한 줄로 표현할 수 있어 코드가 짧고 읽기 쉬워집니다.
[표현식 for 항목 in 반복가능한객체]
[표현식 for 항목 in 반복가능한객체 if 조건문]
a = [1, 2, 3, 4]
result = [num*3 for num in a if num%2 == 0]
함수
파이썬에서 함수는 다음과 같이 정의합니다.
def 함수명(매개변수):
문장1
문장2
매개변수와 인수
매개변수와 인수는 혼용해서 사용되기 쉬운 용어입니다. 매개변수는 함수에 입력으로 전달된 값을 받는 변수, 인수는 함수를 호출할 때 전달하는 입력값을 의미합니다.
def add(a, b): # a, b는 매개변수
return a + b;
print(add(3, 4)) # 3, 4는 인수
함수 호출
add(3, 4)
add(a = 3, b = 4)
가변 위치 인자(*)
입력값이 여러 개일 경우에는 가변 위치 인자(*)를 사용해서 튜플로 받을 수 있습니다.
def add_many(*args):
result = 0
for i in args:
result += i
return result
# 호출
add_many(1, 2, 3, 4, 5)
가변 키워드 인자(**)
입력값이 여러 개인 경우에 가변 키워드 인자(**)를 사용해서 딕셔너리로 받을 수 있습니다.
def print_kwargs(**kwargs):
print(kwargs)
# 호출
print_kwargs(name = "jin", age = 30) # {name: "jin", age: 30}
함수의 리턴값
파이썬에서 함수의 리턴값은 하나만 가능합니다.
def add_and_mul(a, b):
return a+b, a*b
result = add_and_mul(3, 4) # (7, 12)
위 코드와 같이 함수에서 여러 개의 값을 리턴하는 경우 해당 값들을 가지는 튜플의 형태로 반환을 하게 됩니다.
매개변수 초깃값
다음과 같이 함수의 매개변수에 초깃값을 지정할 수 있습니다.
def say_myself(name, age, man=True):
if man:
print("남자: %s (%d)" % (name, age))
else:
print("여자: %s (%d)" % (name, age))
초깃값이 없는 매개변수는 초깃값이 있는 매개변수 뒤에 사용할 수 없기 때문에, 초기화하고 싶은 매개변수는 항상 제일 마지막에 선언해야합니다.
함수 내 변수의 스코프
기본적으로 함수 안에서 선언한 지역변수는 함수 안에서만 유효하기 때문에 함수 밖의 변수의 값을 변경하기 위해서는 아래와 같이 해야 합니다.
a = 1
def vartest(a):
return a += 1
a = vartest(a)
아래와 같이 global 명령어를 사용하여 함수 밖의 변수를 직접 사용할 수도 있지만, 외부 변수에 종속적인 함수는 좋지 않기 때문에 권장되지 않습니다.
a = 1
def vartest():
global a
a += 1
vartest()
lambda
파이썬에서 lambda 키워드는 익명 함수(anonymous function)를 정의할 때 사용됩니다. lambda 함수는 이름이 없고, 주로 간단한 연산을 수행할 때 유용합니다.
변수명 = lambda arguments: expression
# example
add = lambda a, b: a + b
입출력
표준 입출력
input()
input() 함수는 사용자로부터 문자열 형태의 입력을 받습니다.
number = input("숫자를 입력하세요: ")
위 코드와 같이 사용할 수 있으며 주의해야할 점은 input()은 입력되는 모든 것을 문자열로 취급하기 때문에 숫자를 입력해도 타입은 문자열이라는 것입니다.
print()
print() 함수는 값을 콘솔에 출력합니다.
a = [1, 2, 3]
print(a) # [1, 2, 3]
print("life" "is" "too short") # lifeistoo short
print("life" + "is" + "too short") # lifeistoo short
print("life", "is", "too short") # life is too short
end 키워드는 출력 후 자동으로 붙는 문자열을 지정하는 데 사용되며, 기본값은 줄바꿈 문자 '\n'입니다.
print("Hello", end=" ")
print("World")
# Hello World
파일 입출력
파일 생성
f = open("newFile.txt", "w")
f.close()
파일은 위와 같이 생성할 수 있습니다. 첫 번째 인자는 파일명이고, 두 번째 인자는 파일의 열기 모드입니다.

파이썬 코드에서는 파일 경로를 표시할 때 슬래시(/)를 사용하며, 역슬래시(\)를 사용한다면 다른 이스케이프 문자로 인식되지 않도록 역슬래시를 두 번(\\) 해줘야 합니다.
파일 쓰기 (w)
파일 쓰기는 다음과 같이 할 수 있습니다.
f = open("C:/python/newFile.txt", "w")
for i in range(1, 11):
data = "%d번째 줄입니다.\n" % i
f.write(data)
f.close
파일 읽기 (r)
파이썬에서는 여러 가지 파일 읽는 방법을 제공합니다.
1. readline()
- readline()은 더이상 읽을 줄이 없을 경우, 빈 문자열("")을 반환합니다.
f = open("C/python/newFile.txt", "r")
while True:
line = f.readline()
if not line: break
print(line)
f.close()
2. readlines()
- readlines()는 파일의 모든 줄을 읽어서 각각의 줄을 요소로 가지는 리스트를 반환합니다.
f = open("C:/python/newFile.txt", "r")
lines = f.readlines()
for line in lines:
print(line)
f.colse
또한 줄바꿈 문자를 제거하고 싶으면 공백 문자 전반(스페이스, 탭, 줄바꿈 등)을 제거하는 strip() 메서드를 사용하면 됩니다.
3. read()
- read()는 파일 내용 전체를 한 번에 문자열로 반환합니다.
f = open("C:/python/newFile.txt", "r")
data = f.read()
print(data)
f.close
4. 파일 객체
- 파일 객체는 기본적으로 아래와 같이 for 문과 함께 사용하여 파일을 줄 단위로 읽을 수 있습니다.
f = open("C:/python/newFile.txt", "r")
for line in f:
print(line)
f.close()
내용 추가 (a)
쓰기 모드('w')로 파일을 열 때 이미 존재하는 파일을 열면 그 파일의 내용이 모두 사라지게 됩니다. 하지만 원래 있던 값을 유지하면서 단지 새로운 값만 추가해야할 경우 추가 모드('a')로 열면 됩니다.
f = open("C:/python/newFile.txt", "a")
for i in range(11, 20):
data = "%d번째 줄입니다.\n" & i
f.write(data)
f.close()
자동 자원 해제 (with)
파일은 열면 항상 닫아주어야 합니다. 그런데 아래와 같이 with 키워드를 사용하면 파이썬이 자동으로 파일 객체를 닫아줍니다.
with open("foo.txt", "w") as f:
f.write("Python")
프로그램 입출력
파이썬에서는 sys 모듈을 사용하여 프로그램에 인수를 전달할 수 있습니다.(command-line arguments)
#sys1.py
import sys
args = sys.argv[1:]
for i in args:
print(i)
c:>python sys1.py aaa bbb ccc
# aaa
# bbb
# ccc
위와 같이 코드를 작성하고 명령 프롬프트에서 실행하면 위와 같이 출력됩니다. 기본적으로 명령줄 인자는 리스트의 형태로 첫 번째 인덱스는 파일명, 그 뒤로 입력된 인수들을 요소로 갖습니다.
'Lang > Python' 카테고리의 다른 글
| Python (4) - 내장 함수, 표준 라이브러리, 외부 라이브러리 (2) | 2025.05.18 |
|---|---|
| Python (3) - 클래스, 모듈, 패키지, 예외 처리 (0) | 2025.05.13 |
| Python (1) - 자료형 (2) | 2025.04.30 |