반응형

초보자를 위한 파이썬 내장함수 완벽 가이드

여러분 혹시,
abs, len, map, filter 이런 단어들 들어본 적 있으신가요?
이 짧고 강력한 단어들이 바로,
파이썬 내장함수의 세계로 가는 열쇠입니다!

 

 

안녕하세요! 파이썬을 배우고 계신 모든 초보자분들께 꼭 필요한 꿀정보를 전해드릴 시간이에요 😊
프로그래밍을 하다 보면 ‘반복되는 계산’이나 ‘데이터 필터링’ 같은 작업을 자주 하게 되죠.

이때마다 코드를 길게 써야 한다면 너무 비효율적이겠죠?

하지만 걱정 마세요! 파이썬에는 이미 잘 만들어진 내장 함수(built-in functions)가 있어서, 개발자가 직접 함수를 만들 필요 없이 아주 간단하게 원하는 작업을 처리할 수 있어요.

이번 글에서는 자주 쓰이는 파이썬 내장 함수들을 실전 예제와 함께 하나씩 짚어보며 소개할게요.
코딩을 처음 시작하신 분도, 파이썬을 어느 정도 만져보신 분도 모두 이해할 수 있도록 아주 친절하게 준비했습니다.

끝까지 함께 해보세요! 🚀

1. 🧠 파이썬 내장함수란 무엇인가요?

파이썬을 처음 접할 때 가장 매력적인 부분 중 하나가 바로 “내장 함수”입니다.

별다른 설정 없이도 바로 쓸 수 있고, 작업을 빠르게 처리할 수 있어요.

그럼 ‘내장함수’가 정확히 뭘까요?

✔️ 내장함수(built-in function)의 정의

파이썬 내장함수란 파이썬 인터프리터에 기본으로 포함되어 있어서 import 없이 사용할 수 있는 함수입니다. 쉽게 말해, 파이썬을 설치하면 자동으로 따라오는 “기본 도구함”이라고 생각하면 돼요.

이 함수들은 기본적인 연산(예: 절댓값 계산, 합계 구하기), 자료형 변환(예: 리스트로 바꾸기),

조건 판단(예: 값이 모두 참인지 확인) 등 우리가 자주 사용하는 작업들을 아주 짧고 간단하게 처리할 수 있게 도와줘요.

📋 대표적인 내장함수 예시

함수명 설명 예시
abs(x) 숫자의 절댓값 반환 abs(-10) → 10
len(x) 시퀀스 자료형의 길이 반환 len("hello") → 5
max(x) 최댓값 반환 max([1, 3, 2]) → 3
sum(x) 전체 합계 반환 sum([1, 2, 3]) → 6
sorted(x) 정렬된 리스트 반환 sorted([3, 1, 2]) → [1, 2, 3]

💡 왜 내장함수를 꼭 알아야 할까요?

  • 코드가 간결해져요. 복잡한 연산을 단 한 줄로 처리할 수 있어요!
  • 에러가 줄어들어요. 이미 검증된 함수라 안정성이 높아요.
  • 학습과 유지보수가 쉬워요. 코드 구조가 깔끔해서 협업에도 좋아요.

앞으로 여러분이 어떤 프로젝트를 하더라도 내장 함수는 꼭 만나게 될 거예요.

그러니까, 지금 확실히 익혀두는 게 정말 중요합니다!

 

 

2. 🔢 숫자 다루기: abs, round, divmod

프로그래밍을 하다 보면 숫자를 다루는 일이 정말 많죠.

예를 들어

절댓값을 구하거나, 소수를 반올림하거나, 몫과 나머지를 구해야 할 때 말이에요.

이런 상황에서 파이썬 내장함수 abs, round, divmod를 잘 활용하면 코드가 훨씬 간단해지고 실수도 줄일 수 있어요!

🧮 abs(x): 절댓값 구하기

abs() 함수는 숫자를 입력받아 그 숫자의 절댓값을 반환해요.

음수든 양수든 상관없이 항상 양수 결과를 주죠.

x = -42
print(abs(x))  # 출력: 42

🟰 round(x[, ndigits]): 반올림

round() 함수는 소수점을 가까운 정수로 반올림해 줍니다.

ndigits를 지정하면 소수 몇 번째 자리까지 반올림할지 선택할 수 있어요.

print(round(3.14159))        # 출력: 3
print(round(3.14159, 2))     # 출력: 3.14
print(round(5.5))            # 출력: 6 (파이썬의 반올림 규칙 적용)

 

💡 참고: 파이썬은 정확히 .5인 경우 짝수 쪽으로 반올림하는 ‘은행가 반올림’을 적용해요.

              그래서 round(4.5)는 4, round(5.5)는 6이 됩니다!

➗ divmod(a, b): 몫과 나머지 한 번에

divmod(a, b)는 두 숫자를 나누어서 몫과 나머지를 한꺼번에 튜플로 반환해줘요.

사실상 a // ba % b를 동시에 계산하는 함수예요.

result = divmod(10, 3)
print(result)         # 출력: (3, 1)
몫, 나머지 = result
print(몫)             # 출력: 3
print(나머지)         # 출력: 1

📌 이 함수들은 언제 쓰면 좋을까요?

  • abs: 게임에서 점수 차이 계산할 때
  • round: 가격을 반올림해서 보여줄 때
  • divmod: 페이지네이션 구현 시 (총 페이지 계산 등)

이제 숫자를 다루는 기본 내장함수는 꽤 익숙해졌죠?

다음 섹션에서는 데이터 타입과 변환을 위한 함수들을 알아볼 거예요.

파이썬에서 데이터를 확인하고 다루는 데 아주 중요한 친구들이랍니다!

 

 

3. 🔍 데이터 확인과 변환: len, type, list, tuple

프로그래밍을 하면서 가장 많이 하는 작업 중 하나는 데이터의 형태 확인과 변환입니다.

파이썬에서는 len(), type(), list(), tuple() 같은 내장함수를 통해 아주 쉽게 처리할 수 있어요.

이 함수들은 특히 초보자가 자료형 개념을 잡는 데 큰 도움이 됩니다.

📏 len(x): 데이터의 길이 확인

len() 함수는 리스트, 문자열, 튜플 등 시퀀스 자료형의 길이를 반환합니다.

즉, 몇 개의 요소가 들어 있는지 알려주는 함수예요.

print(len("hello"))     # 출력: 5
print(len([1, 2, 3]))    # 출력: 3
print(len((10, 20)))     # 출력: 2

🏷️ type(x): 자료형 확인

type() 함수는 어떤 자료형인지 확인할 수 있는 함수예요.

코드를 디버깅하거나, 입력된 값이 어떤 타입인지 헷갈릴 때 정말 유용합니다.

print(type("안녕"))       # 출력: <class 'str'>
print(type([1, 2, 3]))     # 출력: <class 'list'>
print(type(123))          # 출력: <class 'int'>

🔁 list(x), tuple(x): 자료형 변환

list()tuple() 함수는 각각 데이터를 리스트와 튜플로 바꿔주는 역할을 합니다.

예를 들어

문자열을 문자 하나하나로 쪼개 리스트로 만들거나, 리스트를 튜플로 변환할 수 있어요.

print(list("abc"))          # 출력: ['a', 'b', 'c']
print(tuple([1, 2, 3]))      # 출력: (1, 2, 3)
print(list((10, 20)))        # 출력: [10, 20]

📌 언제 써야 할까요?

  • len(): 사용자 입력이나 리스트 길이를 검사할 때
  • type(): 디버깅 시 변수의 타입을 확인할 때
  • list()/tuple(): 타입을 변경해서 원하는 메서드를 사용하거나, 자료의 변형이 필요할 때

이제 데이터의 모양과 형식을 자유자재로 다룰 수 있는 준비가 된 거예요.

다음 장에서는 조건 판단과 반복에 자주 쓰이는 고급 내장함수들(map, filter, all, any)을 파헤쳐볼게요!

 

 

4. 🔁 반복과 조건을 위한 고급 함수: map, filter, all, any

반복문과 조건문을 자주 쓰다 보면 “이거 한 줄로 못 줄일까?” 하는 생각이 들 때가 있어요.

바로 그럴 때 유용한 것이 map(), filter(), all(), any() 같은 고급 내장함수입니다.

이 함수들은 코드를 훨씬 짧고 깔끔하게 만들어주는 파이썬만의 강력한 도구예요.

🧰 map(func, iterable): 반복하며 함수 적용

map()은 반복 가능한 데이터(iterable)의 요소 각각에 함수를 적용해서 새로운 값을 만들어주는 함수예요.

for문 없이 반복 작업을 처리할 수 있어서 매우 효율적입니다.

numbers = [1, 2, 3, 4]
result = list(map(lambda x: x * 2, numbers))
print(result)  # 출력: [2, 4, 6, 8]

🚿 filter(func, iterable): 조건에 맞는 것만 필터링

filter()조건을 만족하는 값들만 걸러내는 함수입니다.

조건은 함수로 표현하고, 그 함수의 결과가 True인 값만 남겨둡니다.

numbers = [1, 2, 3, 4, 5]
even = list(filter(lambda x: x % 2 == 0, numbers))
print(even)  # 출력: [2, 4]

✅ all(iterable): 모두 참이면 True

all() 함수는 반복 가능한 객체의 요소가 모두 참이면 True를 반환하고, 하나라도 거짓이면 False를 반환해요.

values = [True, True, True]
print(all(values))  # 출력: True

values = [True, False, True]
print(all(values))  # 출력: False

☝️ any(iterable): 하나라도 참이면 True

any() 함수는 하나라도 참이면 True를 반환합니다.

조건 검색, 유효성 검사 등에 자주 쓰이죠.

values = [False, False, True]
print(any(values))  # 출력: True

values = [False, False, False]
print(any(values))  # 출력: False

💡 map vs filter vs all vs any 요약

함수 역할 결과
map() 모든 요소에 함수 적용 리스트 등 반복 가능한 결과
filter() 조건에 맞는 값만 추출 필터링된 리스트
all() 모두 True면 True 불리언 값
any() 하나라도 True면 True 불리언 값

이 함수들을 잘만 쓰면, 복잡했던 코드를 단 1~2줄로 줄일 수 있어요.

특히 데이터 처리나 조건 검사가 많은 작업에서는 진가를 발휘하죠!

이제 조건과 반복에 대한 이해도가 훨씬 높아졌을 거예요.

 

다음 장에서는 정렬과 탐색에 유용한 내장함수들을 살펴보겠습니다. 준비되셨죠? 😎

 

 

5. 📊 정렬과 탐색: max, min, sum, sorted, enumerate

데이터를 다루다 보면 자연스럽게

“가장 큰 값은 뭐지?”, “총합은 얼마일까?”, “정렬이 필요해!” 같은 생각이 들게 돼요.

그럴 때 파이썬 내장함수들이 진가를 발휘합니다.

지금부터 소개할 max(), min(), sum(), sorted(), enumerate()는 데이터 탐색의 핵심 도구예요!

🏆 max(x), min(x): 최대/최소 값 찾기

max() 함수는 가장 큰 값을, min() 함수는 가장 작은 값을 반환합니다.

숫자뿐 아니라 문자열 리스트에서도 적용할 수 있어요.

numbers = [3, 5, 1, 9, 2]
print(max(numbers))  # 출력: 9
print(min(numbers))  # 출력: 1

➕ sum(x): 총합 구하기

sum() 함수는 리스트나 튜플 등 숫자 시퀀스의 합을 간단히 구해주는 함수예요.

루프를 돌며 하나하나 더할 필요 없이 단번에 계산됩니다.

scores = [70, 80, 90]
total = sum(scores)
print(total)  # 출력: 240

🔃 sorted(x): 정렬된 리스트 반환

sorted() 함수는 리스트의 요소들을 오름차순(기본값) 또는 내림차순으로 정렬해 줍니다.

원본 데이터를 바꾸지 않고 새로운 정렬된 리스트를 반환해요.

nums = [4, 1, 7, 3]
asc = sorted(nums)
desc = sorted(nums, reverse=True)
print(asc)   # 출력: [1, 3, 4, 7]
print(desc)  # 출력: [7, 4, 3, 1]

🔢 enumerate(x): 인덱스와 함께 반복

enumerate() 함수는 반복 가능한 객체를 순회하면서 인덱스와 값을 동시에 반환해줍니다.

보통 for문에서 인덱스가 필요한 경우 유용하게 쓰여요.

fruits = ['apple', 'banana', 'cherry']
for idx, val in enumerate(fruits):
    print(idx, val)
# 출력:
# 0 apple
# 1 banana
# 2 cherry

💡 실무에서 이런 식으로 사용돼요

  • max/min: 최고 점수, 최저 온도 찾기
  • sum: 쇼핑몰 장바구니 총합 계산
  • sorted: 이름순/날짜순 정렬
  • enumerate: 번호 매기기, 순위 매기기

여기까지 오셨다면 이제 여러분은 파이썬 내장함수를 실전에 활용할 수 있는 레벨에 도달한 셈이에요!

하지만 아직 끝이 아니죠!

다음 단계에서는 지금까지 배운 내용을 활용해 실전 예제로 정리해보겠습니다.  😊

 

 

6. 🧪 꼭 써봐야 할 실전 예제 모음

지금까지 소개한 파이썬 내장함수들, 이론만 봐서는 감이 잘 안 올 수 있어요.

그래서 준비했습니다! 💡

🎯 예제 1: 짝수만 골라 2배 만들기

nums = [1, 2, 3, 4, 5, 6]
result = list(map(lambda x: x * 2, filter(lambda x: x % 2 == 0, nums)))
print(result)  # 출력: [4, 8, 12]

📘 예제 2: 학생 점수 분석기

scores = [85, 90, 78, 92, 66]
print("총합:", sum(scores))
print("최고점:", max(scores))
print("최저점:", min(scores))
print("평균:", round(sum(scores) / len(scores), 2))

🗂️ 예제 3: 데이터 정렬 및 인덱스 출력

items = ["pear", "apple", "banana"]
sorted_items = sorted(items)
for i, item in enumerate(sorted_items):
    print(f"{i + 1}위: {item}")

✅ 예제 4: 조건 모두 만족 확인하기

conditions = [True, True, True]
if all(conditions):
    print("모든 조건이 충족되었습니다.")
else:
    print("하나 이상의 조건이 미충족입니다.")

🧭 예제 5: 사용자 입력 데이터 변환

user_input = "1,2,3,4,5"
numbers = list(map(int, user_input.split(",")))
print(numbers)  # 출력: [1, 2, 3, 4, 5]

🎉 마무리하며

어떠셨나요?

이렇게나 많은 파이썬 내장함수가 우리의 코드를 더 쉽고 강력하게 만들어줄 수 있다는 사실,

이제 실감 나시죠?

오늘 배운 함수들은 단순히 외워야 할 개념이 아니라 실제 코딩의 효율성과 품질을 높여주는 도구입니다.

이제 여러분은 초보자에서 한 발짝 더 나아간 파이썬 사용자예요.

앞으로는 직접 코딩하면서 이런 함수들을 자연스럽게 활용해보세요!

익숙해질수록 더 창의적인 프로그램을 만들 수 있을 거예요 😄

반응형
반응형

파이썬 사용자 정의 함수 완전 정복 💡

반복되는 코드를 줄이고, 유지보수까지 쉬워지는 마법 같은 도구!
파이썬 사용자 정의 함수로 코딩 효율을 극대화해보세요.

 

 

안녕하세요, 여러분 😊

오늘은 파이썬을 조금 더 "파이썬답게" 쓸 수 있는 핵심 기능 중 하나인 사용자 정의 함수에 대해 이야기해보려 해요.

함수는 처음엔 좀 어려워 보이지만, 실제로는 우리가 매일 사용하는 믹서기나 커피 머신처럼 입력하면 정해진 출력이 나오는 구조랍니다.

실제로 코딩을 하다 보면 "아, 이 부분 계속 반복되는데?" 하는 순간이 있죠.

그럴 때 한번 정의해두고 편하게 불러 쓰는 함수가 바로 답이에요!

이번 글에서는 초보자도 부담 없이 따라할 수 있도록 사용자 정의 함수의 기본 개념부터 실전 활용 예제까지 친절하게 안내해드릴게요. 그럼 같이 시작해볼까요?

1. 함수란 무엇인가요? 🧠

함수(function)라는 말을 들으면 어렵게 느껴질 수 있어요.

하지만 여러분이 매일 사용하는 믹서기나 자동판매기를 떠올려보세요.

과일을 넣고 버튼을 누르면 주스가 나오듯, 입력(Input)을 주면 출력(Output)이 나오는 시스템, 그게 바로 함수예요!

파이썬에서는 자주 반복되는 코드 덩어리를 함수로 만들어두면, 필요할 때 간단히 함수 이름만 불러서 사용할 수 있어요.

이게 바로 유지보수와 생산성 향상의 핵심입니다.

🍹 함수 개념을 믹서기에 비유해보자

  • 입력(Input) = 과일, 얼음, 우유
  • 처리 과정 = 믹서기 작동 (코드 실행)
  • 출력(Output) = 완성된 주스 (결과값 반환)

📌 함수의 장점은 무엇일까요?

  1. 중복 코드를 줄여 코드의 재사용성을 높여줍니다.
  2. 코드의 가독성과 구조를 개선해 유지보수를 쉽게 만듭니다.
  3. 복잡한 문제를 작은 단위로 나눠서 관리할 수 있어요.

👀 실전 예제로 개념 정리하기

# 간단한 사용자 정의 함수 예시
def say_hello():
    print("안녕하세요! 함수에 오신 걸 환영해요 :)")

say_hello()

위 코드에서 say_hello()는 아무 입력값도 필요 없지만, 호출하면 언제든 같은 인사를 출력해 줍니다.

이처럼 코드를 간단하게 묶어 이름을 붙여두는 것이 함수의 기본이에요.

아직 어렵게 느껴지시나요? 걱정 마세요.

 

다음 단계에서는 함수를 직접 만드는 법과 그 구조를 차근차근 설명드릴게요!

 

 

2. 함수의 기본 구조와 사용법 📐

파이썬에서 함수를 만들 때는 반드시 지켜야 할 기본 구조가 있어요.

어렵지 않으니 구조만 확실히 익혀두면 코딩할 때 쓱쓱 써먹을 수 있습니다.

🔧 함수의 기본 구조

def 함수이름(매개변수):
    수행할 문장
    return 반환값

여기서 def는 "define"의 약자로, 함수를 정의할 때 꼭 써야 해요.

함수 이름은 자유롭게 정할 수 있지만 숫자로 시작하면 안 되고, 예약어는 사용 금지입니다.

📍 함수 예제: 덧셈 기능 만들기

def add(a, b):
    result = a + b
    return result

print(add(3, 5))

위 함수는 두 숫자를 입력받아 더한 결과를 반환해줍니다.

return이 없으면 값을 돌려주지 않고 내부에서 끝나버리니, 결과가 필요한 경우엔 반드시 써야 해요!

💡 꼭 기억해야 할 함수 규칙

  • 함수 정의는 반드시 들여쓰기로 내부 코드를 구분해야 해요.
  • 함수를 정의한 후에 반드시 호출해야 실행됩니다.
  • 매개변수와 인수의 수가 맞지 않으면 오류가 발생합니다.

📘 함수 정의 vs 함수 호출

구분 설명 예시
정의 함수의 내용을 만드는 것 def hello():
호출 함수를 사용하는 것 hello()

이제 함수의 뼈대를 이해했으니,

다음으로는 매개변수와 인수의 종류를 살펴보며 조금 더 유연하게 함수를 다뤄볼 차례입니다! 😊

 

 

3. 매개변수와 인수의 종류 정리 🧺

함수에서 자주 혼동되는 개념이 바로 매개변수(Parameter)인수(Argument)입니다.

두 용어는 헷갈릴 수 있지만, 구분해서 알면 함수의 동작이 더 명확해져요!

🔍 매개변수 vs 인수

용어 의미 예시
매개변수 (parameter) 함수 정의 시 입력값을 받을 변수 def greet(name):
인수 (argument) 함수 호출 시 전달하는 실제 값 greet("철수")

🧩 다양한 매개변수 형태

파이썬에서는 다양한 상황을 고려해 매개변수의 형태도 유연하게 사용할 수 있어요.

아래 표로 정리해 볼게요!

유형 설명 예시
일반 매개변수 정해진 수의 값을 받음 def add(a, b):
기본값 매개변수 값을 넘기지 않으면 기본값 사용 def greet(name="익명"):
가변 인자 (*args) 여러 개의 인수를 튜플로 받음 def total(*nums):
키워드 인자 (**kwargs) 키워드와 값을 딕셔너리로 받음 def info(**data):

📦 실습 예제 - 다양한 매개변수 사용

def show_profile(name, age=18, *hobbies, **skills):
    print("이름:", name)
    print("나이:", age)
    print("취미:", hobbies)
    print("기술:", skills)

show_profile("영희", 20, "독서", "요리", python=3, html=2)

위 코드처럼 *args는 여러 개의 인수를 묶어주고, **kwargs는 키와 값을 가진 인수를 유연하게 처리해줍니다.

다양한 입력을 받는 함수가 필요할 땐 정말 유용해요!

이제 우리는 함수에서 어떻게 입력을 받고 활용하는지에 대해 탄탄하게 정리했어요.

 

그럼 다음은 반환값(return)에 대해 알아보러 가볼까요? 😊

 

 

4. 다양한 반환값과 리턴 활용법 🔁

함수는 어떤 "처리"를 하고 나면 그 결과를 돌려줄 수도 있고, 안 돌려줄 수도 있어요.

바로 그 결과를 돌려주는 역할을 하는 게 return 문입니다.

함수의 마무리를 맡고 있는 아주 중요한 녀석이죠!

📦 반환값의 유무에 따른 함수 유형

구분 설명 예시
입력값 O, 반환값 O 가장 일반적인 형태 def add(a, b): return a + b
입력값 X, 반환값 O 값은 안 받지만 무언가 돌려줌 def get_num(): return 5
입력값 O, 반환값 X 처리만 하고 끝냄 (출력만) def say(name): print(name)
입력값 X, 반환값 X 아무 것도 받지도, 주지도 않음 def hello(): print("hi")

🔁 여러 값을 동시에 반환할 수 있을까?

네! 파이썬에서는 return으로 여러 개의 값을 한꺼번에 반환할 수 있습니다.

반환되는 값들은 자동으로 튜플로 묶여요.

def divide(a, b):
    q = a // b
    r = a % b
    return q, r

quotient, remainder = divide(10, 3)
print("몫:", quotient, "나머지:", remainder)

이처럼 return q, r처럼 쉼표로 구분하면, 튜플 형태로 두 값이 반환되고 이를 한 줄로 각각의 변수에 담을 수 있어요.

아주 깔끔하고 편하죠?

🧯 리턴이 없는 함수는 어떤 값을 돌려줄까?

리턴 문이 없는 함수는 자동으로 None이라는 값을 반환합니다. 이것은 파이썬에서 ‘아무 것도 없음’을 나타내는 특수한 자료형이에요.

def nothing():
    pass

result = nothing()
print(result)  # 출력 결과: None

📌 리턴은 함수를 끝내는 역할도 한다!

return은 단지 결과를 돌려주는 것뿐만 아니라 함수의 실행을 종료시키는 역할도 합니다.

return 아래의 코드는 실행되지 않으니 주의하세요!

def stop_here():
    print("여기까지 실행됩니다.")
    return
    print("이 코드는 실행되지 않아요!")

함수를 설계할 때 어떤 값을 돌려줄지, 어디서 종료할지 잘 설계하는 것이 중요해요.

함수의 핵심은 결국 입력과 출력의 흐름을 설계하는 것이니까요!

 

 

5. 변수의 범위와 global 키워드 🌍

파이썬에서는 변수가 선언된 위치에 따라 사용할 수 있는 범위가 달라요.

바로 이걸 변수의 스코프(Scope)라고 부르죠.

코드를 작성할 때 예상치 못한 오류를 피하려면 꼭 알아야 해요!

📍 지역 변수 vs 전역 변수

구분 설명 예시
지역 변수 (local) 함수 내부에서만 사용 가능 def func(): a = 10
전역 변수 (global) 파일 전체에서 사용 가능 a = 10 (함수 밖)

🔒 함수 안에서 전역 변수 사용하기

a = 100

def show():
    a = 200
    print("함수 안:", a)

show()
print("함수 밖:", a)

위 코드에서 함수 안의 a는 지역 변수이기 때문에, 전역 변수 a = 100과는 전혀 다른 존재예요!

즉, 함수 안에서 같은 이름의 변수를 새로 만든 셈이죠.

🌐 전역 변수 사용을 강제하려면? - global 키워드

함수 안에서도 전역 변수 값을 변경하고 싶다면 global 키워드를 사용해야 해요.

아래 예제를 봐요:

money = 1000

def buy():
    global money
    money -= 300
    print("구매 후 남은 돈:", money)

buy()
print("전역 money:", money)

global money를 선언하면 함수 안에서도 전역 변수인 money를 직접 수정할 수 있어요.

하지만 너무 자주 사용하면 프로그램이 꼬일 수 있으니, global 키워드는 정말 필요할 때만! 쓰는 게 좋아요.

📌 정리하자면!

  • 지역 변수는 함수 내부에서만 사용 가능!
  • 전역 변수를 함수 안에서 수정하려면 global 키워드를 꼭 선언!
  • 전역 변수는 가급적 함수 밖에서만 관리하는 것이 베스트!

이제 변수의 범위에 대한 개념도 확실히 정리했어요!

 

마지막으로, 함수의 세계에서 가장 간결하면서도 강력한 무기, 바로 lambda 함수에 대해 알아보러 가볼까요? 🚀

 

 

6. 한 줄로 끝내는 람다(lambda) 함수 ✍️

여러 줄 짜기 귀찮을 때, 정말 간단한 계산만 하고 싶을 때 쓰는 게 바로 lambda 함수입니다.

이름 없는 익명 함수라고도 불려요.

심플하게 쓰고, 빠르게 처리할 수 있다는 장점이 있죠!

🔧 lambda 기본 구조

lambda 매개변수: 표현식

이렇게 간단하게 선언하고, 바로 결과를 반환해요.

return도 필요 없습니다!

아래처럼 변수에 담아 사용할 수도 있고, 다른 함수에 인자로 넘길 수도 있죠.

add = lambda x, y: x + y
print(add(3, 4))  # 결과: 7

📌 언제 lambda를 쓰면 좋을까?

  • 함수 이름 없이 바로 실행하고 싶을 때
  • map(), filter() 같은 함수에 간단한 계산식을 넣고 싶을 때
  • 코드가 너무 길어지는 걸 피하고 싶을 때!

🎯 마무리

자, 이제 파이썬의 사용자 정의 함수에 대해 정말 많은 걸 배웠어요!

함수는 단순한 반복 제거 도구가 아니라, 코드를 체계적으로 관리하고 가독성을 높여주는 핵심 요소랍니다.

이제 여러분은 함수를 자유자재로 만들고, 매개변수도 다양하게 쓰고, 필요한 값만 쏙쏙 리턴하는 똑똑한 코드를 작성할 수 있을 거예요.

그리고 때로는 한 줄로 끝내는 람다 함수까지 사용할 수 있다면... 오, 그건 진짜 실력자죠! 😉

 

반응형
반응형

파이썬 프로그램의 흐름제어 - for 문 완전 정복

여러분,
파이썬에서 반복 작업을 효율적으로 처리하는 방법이 궁금하지 않으셨나요?
바로 그 해답은 for 문에 있습니다!

 

 

안녕하세요,  여러분 😊
오늘은 파이썬에서 정말 많이 쓰이고 중요한 문법 중 하나인 for 문에 대해 아주 쉽게 풀어서 알려드릴게요.

조건문(if)과 반복문(while)도 중요하지만, 데이터를 다루거나 뭔가를 반복해서 처리할 때는 역시 for 문이 최고죠.

특히 range 함수, continue 문, 그리고 리스트 컴프리헨션 같이 for 문과 찰떡인 기능들도 함께 알아볼 거예요.

예제도 하나하나 실습하면서 따라올 수 있게 구성했으니, 파이썬이 처음이신 분들도 걱정하지 마세요! 👶🐍

1. for 문의 기본 구조 🧱

프로그래밍을 시작하면서 반복적으로 어떤 작업을 수행해야 할 때가 많죠.

이럴 때 쓰는 게 바로 for 문입니다.

파이썬의 for 문은 반복 가능한(iterable) 객체의 요소를 하나씩 꺼내서 사용하는 반복문이에요.

문법도 아주 간단하고 직관적이죠.

기본 문법 📐

for 변수 in 반복가능한객체:
    반복할 코드

 

예를 들어, 리스트 안의 숫자들을 하나씩 출력하려면 아래처럼 작성할 수 있어요.

numbers = [1, 2, 3, 4, 5]

for num in numbers:
    print(num)

 

위 코드를 실행하면 1부터 5까지 순서대로 출력돼요.
여기서 중요한 건 num이라는 변수에 리스트의 각 요소가 순서대로 들어간다는 거죠.

다양한 반복 가능 객체 활용 🧺

for 문은 리스트뿐 아니라 문자열, 튜플, 딕셔너리 등에도 사용이 가능해요.

# 문자열 예시
for ch in "hello":
    print(ch)

# 튜플 예시
for item in ("apple", "banana", "cherry"):
    print(item)

 

for 문은 반복 가능한 객체라면 종류에 상관없이 쓸 수 있어서 활용도가 엄청 높습니다.

📋 for 문의 구성요소 정리

요소 설명
변수 반복할 때마다 바뀌는 요소 하나를 담는 그릇
반복가능한 객체 리스트, 튜플, 문자열, 딕셔너리 등
코드 블록 들여쓰기 된 코드가 반복적으로 실행됨

📌 꼭 기억해요!

  • for 변수 in 객체: 뒤에는 반드시 콜론(:)을 붙여야 해요.
  • 반복할 코드는 반드시 들여쓰기가 되어야 해요!

이제 for 문의 기본적인 구조를 익혔으니, 다음은 실전 예제를 통해 한층 더 실력을 업그레이드해볼까요?

 

바로 다음 STEP에서 실습을 해볼게요! 😉

 

 

2. 실전 예제로 배우는 for 문 사용법 💻

이론만 알아서는 부족하죠!

실제로 손으로 코드를 써보며 감을 잡는 것이 중요합니다.

이번에는 for 문을 활용한 다양한 예제를 통해 반복문의 구조와 활용법을 몸에 익혀보도록 할게요. 🧠

예제 1: 리스트 요소 출력하기

fruits = ['사과', '바나나', '포도', '딸기']

for fruit in fruits:
    print(fruit)

 

위 예제는 리스트에 있는 과일 이름을 하나씩 출력합니다.

파이썬의 for 문이 얼마나 간결한지 다시 한 번 느껴지죠?

예제 2: 시험 점수에 따른 합격/불합격 판단

scores = [90, 45, 67, 38, 80]

for score in scores:
    if score >= 60:
        print("합격입니다.")
    else:
        print("불합격입니다.")

 

이 코드는 점수 리스트를 순회하며 각 점수가 60점 이상이면 합격, 그렇지 않으면 불합격이라고 출력합니다. 실제 학교 성적 처리 로직에도 많이 활용돼요.

예제 3: 인덱스와 함께 출력하고 싶을 땐?

students = ['홍길동', '이순신', '강감찬']

for i in range(len(students)):
    print(f"{i + 1}번 학생: {students[i]}")

 

range(len(...))를 사용하면 리스트의 인덱스를 활용할 수 있어요.

이렇게 번호를 매길 때 자주 쓰이는 패턴입니다.

하지만 더 좋은 방법이 있답니다... 👉 enumerate!

예제 4: enumerate를 활용한 반복

for idx, student in enumerate(students):
    print(f"{idx + 1}번 학생: {student}")

 

enumerate()를 사용하면 코드가 훨씬 깔끔해져요.

인덱스와 값을 동시에 다룰 때는 꼭 기억해두세요.

for 문 활용 요약 🧾

활용 예 설명
리스트 요소 출력 각 항목을 순서대로 출력
조건에 따라 출력 if 문과 결합하여 판단
인덱스 출력 range 또는 enumerate 사용

이처럼 for 문은 실전에서도 정말 다양하게 활용돼요.

이제 다음 단계에서는 range() 함수를 활용해서 반복 범위를 자유자재로 다루는 법을 알려드릴게요. 🧙‍♂️

 

 

3. range 함수로 숫자 다루기 🎯

앞에서 본 것처럼 리스트나 문자열을 대상으로 for 문을 쓰는 것도 좋지만, 숫자를 반복하고 싶을 땐 range() 함수를 이용합니다!

이 함수는 숫자 범위를 손쉽게 만들어주고, 반복문과 정말 궁합이 잘 맞는 친구입니다. 🎯

range 함수 기본 사용법

# 기본 형식: range(끝)
for i in range(5):
    print(i)

 

이 코드는 0부터 4까지, 총 5번 반복해요.

range(n)은 기본적으로 0부터 n-1까지 반복한다는 점을 꼭 기억하세요!

range 응용법: 시작, 끝, 간격

# 형식: range(시작, 끝, 간격)
for i in range(1, 10, 2):
    print(i)

 

이렇게 쓰면 1부터 9까지 2씩 증가하면서 반복돼요.
즉, 결과는 1, 3, 5, 7, 9가 됩니다. 😎

range 함수 파라미터 정리

형식 설명
range(n) 0부터 n-1까지 반복
range(start, end) start부터 end-1까지 반복
range(start, end, step) step 간격으로 반복

range로 합계 구하기

total = 0
for i in range(1, 11):
    total += i

print("1부터 10까지의 합:", total)

 

1부터 10까지의 숫자를 반복하면서 모두 더한 후, 총합을 출력합니다.

이런 계산도 range와 for 문 조합만 있으면 끝!

💡 기억할 것!

  • range()는 메모리를 아끼는 range 객체를 리턴한다는 점도 참고!
  • 범위에 끝 숫자는 포함되지 않는다는 점 주의!

이제 숫자를 다루는 반복문은 문제없겠죠? 😎

 

다음 단계에서는 continue 문을 활용해 반복 중 일부 조건만 건너뛰는 방법을 배워볼게요!

 

 

4. continue 문과 for 문의 조합 💡

for 문을 쓸 때, 어떤 조건일 때는 그 순간의 반복만 건너뛰고 싶을 때가 있어요.

그럴 때 사용하는 게 바로 continue 문입니다.

이 문법을 잘 활용하면 프로그램의 흐름을 좀 더 유연하고 깔끔하게 만들 수 있답니다.

예제를 통해 바로 알아볼게요! 🔄

예제: 60점 이상인 학생에게만 메시지 출력

scores = [90, 45, 67, 38, 80]

for score in scores:
    if score < 60:
        continue
    print("축하합니다! 합격입니다.")

 

이 코드에서는 score가 60점 미만이면 continue를 만나 반복을 건너뛰고 다음으로 넘어갑니다.

그래서 합격한 사람에게만 축하 메시지가 출력돼요. 🎉

⛳ continue 문을 사용할 때 주의할 점

  • continue는 반복문의 맨 처음으로 돌아가게 합니다.
  • 조건에 따라 특정 상황만 제외 처리할 수 있어요.

예제: 홀수만 출력하기

for i in range(1, 11):
    if i % 2 == 0:
        continue
    print(i)

 

i % 2 == 0 조건은 짝수일 때만 참이 되니까 continue가 실행되고, 결과적으로 홀수만 출력되죠.

이렇게 하면 리스트나 범위에서 특정 조건만 필터링할 수 있어요. 😎

📝 정리하면!

문법 기능
continue 해당 반복을 건너뛰고 다음 반복으로 이동
if 조건: continue 조건을 만족할 경우 실행 중단

continue 문은 불필요한 연산을 줄이거나, 깔끔하게 예외 처리를 할 때 유용합니다.

이제 다음 단계에서는 중첩 for 문을 활용한 구구단 만들기를 직접 해볼 거예요.

재밌는 수학 놀이 준비되셨죠? 😆

 

 

5. 중첩 for 문으로 구구단 만들기 🧮

파이썬의 반복문은 반복 안에 또 다른 반복을 넣을 수 있어요.

이걸 중첩 반복문이라고 부르는데요, 가장 대표적인 예가 바로 구구단입니다!

프로그래밍 입문자라면 꼭 한 번 만들어보는 예제죠.

함께 만들어보면서 반복문에 대한 이해를 단단히 다져봅시다! 💪

예제: 구구단 2단부터 9단까지 출력하기

for i in range(2, 10):        # 2단부터 9단까지
    for j in range(1, 10):    # 1부터 9까지 곱함
        print(f"{i} x {j} = {i * j}")
    print("")  # 단 사이에 줄바꿈

 

이 코드는 바깥 for 문이 단을 반복하고, 안쪽 for 문이 각 단에 곱해질 수를 반복합니다.

즉, 2 x 1 ~ 2 x 9 부터 9 x 1 ~ 9 x 9까지 출력해주는 구조예요.

이렇게 반복문 안에 또 다른 반복문을 넣으면 다양한 형태의 반복 처리가 가능하죠!

🧠 중첩 반복문 동작 방식

바깥 for 문 안쪽 for 문 결과
i = 2 j = 1~9 2단 출력
i = 3 j = 1~9 3단 출력

도전! 구구단을 세로가 아닌 가로로 출력해보기

for j in range(1, 10):
    for i in range(2, 10):
        print(f"{i}x{j}={i*j}", end="\t")
    print()

 

end="\t"를 활용해서 가로로 정렬된 구구단을 출력해봤어요.

이런 방식은 표 형태로 데이터를 출력하고 싶을 때도 활용돼요.

응용력만 키우면 반복문은 정말 강력한 도구가 됩니다!

📌 중첩 반복문 팁!

  • 바깥 반복문 한 번 → 안쪽 반복문 전부 실행 → 바깥 반복 다음으로 넘어감!
  • print 안에 end= 옵션을 활용하면 출력 형식을 자유롭게 바꿀 수 있어요.

이제 중첩 for 문까지 마스터했어요!

마지막으로 반복문을 더 간결하게 만들어주는 리스트 컴프리헨션을 알아보러 가볼까요? 🔁

6. 리스트 컴프리헨션 완전 정복 🔁

여러분, 반복문으로 리스트를 만들어 본 적 있죠?

그런데 그걸 한 줄로 작성할 수 있다면 얼마나 깔끔할까요?

그걸 가능하게 해주는 게 바로 리스트 컴프리헨션입니다.

파이썬의 대표적인 파워 기능 중 하나죠! 🦾

기본 리스트 컴프리헨션 구조

# 일반적인 방법
result = []
for i in range(1, 6):
    result.append(i * 3)

# 리스트 컴프리헨션
result = [i * 3 for i in range(1, 6)]

 

같은 결과를 훨씬 간단하고 보기 좋게 만들 수 있죠?

이런 게 바로 파이썬이 사랑받는 이유 중 하나예요. 😍

💡 조건도 넣을 수 있어요!

# 짝수에만 3을 곱하고 싶다면?
result = [i * 3 for i in range(1, 6) if i % 2 == 0]

 

if 조건도 함께 넣을 수 있어서 필터링 + 계산을 동시에 할 수 있어요.

자바스크립트의 filter + map 조합과 비슷한 느낌입니다.

2중 for문도 사용 가능!

# 구구단 결과만 모으기
gugudan = [i * j for i in range(2, 10) for j in range(1, 10)]

 

무려 2중 반복문도 한 줄에 담을 수 있어요.

가독성만 잘 신경 쓰면 아주 강력한 도구가 될 수 있죠.

📚 리스트 컴프리헨션 vs 일반 for 문

항목 일반 for 문 리스트 컴프리헨션
가독성 긴 코드로 명확 간결하고 직관적
성능 느릴 수 있음 빠르고 효율적
조건 처리 if 별도 작성 한 줄에 if 포함 가능

이제 여러분도 반복문 마스터!

for 문 + range + continue + 중첩 for + 리스트 컴프리헨션까지 완벽하게 익히셨습니다.

진짜 실전에서는 이 조합만 잘 써도 웬만한 자동화 작업이나 로직 처리는 다 가능해요. 😎

 

 

🎯 마무리

오늘은 파이썬의 반복문 중에서도 for 문을 중심으로 실습을 해봤습니다.

처음에는 다소 헷갈릴 수 있지만, 코드를 직접 써보고, 실행해보는 과정에서 자연스럽게 익혀집니다.

다양한 예제를 반복해서 연습하면서 손에 익히는 게 가장 좋아요.

무작정 외우기보다는, 왜 이렇게 쓰는지 이해하면서 응용력을 키워보세요.

 

이제 조건문과 반복문의 조합으로 나만의 간단한 프로그램도 만들 수 있을 거예요!

다음 강의에서는 사용자 정의 함수와 내장 함수들을 통해 한층 더 실용적인 파이썬 코딩을 배워볼게요.

기대해주세요!

반응형

+ Recent posts