리스트 컴프리헨션, 함수

지두의 개발자 도전기·2025년 3월 12일

Python

목록 보기
5/10
post-thumbnail

1. 리스트 컴프리헨션

1-1. 기본 개념

  • 리스트를 빠르고 간결하게 생성하는 방법.
  • 일반적인 for 문을 한 줄로 작성 가능.
  • 기본 구조:
[표현식 for 변수 in 반복가능한객체 if 조건]

1-2. 기본 예제

numbers = [x for x in range(5)]
print(numbers)  # 출력: [0, 1, 2, 3, 4]

1-3. 조건문 추가

even_numbers = [x for x in range(10) if x % 2 == 0]
print(even_numbers)  # 출력: [0, 2, 4, 6, 8]

1-4. 중첩 반복문 사용

pairs = [(x, y) for x in range(2) for y in range(3)]
print(pairs)  # 출력: [(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2)]

2. 함수

2-1. 함수 정의

  • 특정 작업을 수행하는 코드 블록.
  • def 키워드를 사용하여 정의.
def hello():
    print("안녕하세요!")
hello()  # 출력: 안녕하세요!

2-2. 전달값 (매개변수)

  • 함수를 호출할 때 값을 전달하여 동작을 조절할 수 있음.
def greet(name):
    print(f"안녕하세요, {name}님!")
greet("철수")  # 출력: 안녕하세요, 철수님!

2-3. 반환값

  • 함수에서 값을 돌려줄 때 return 사용.
def add(a, b):
    return a + b
result = add(3, 5)
print(result)  # 출력: 8

2-4. 기본값 설정

  • 매개변수에 기본값을 지정 가능.
def introduce(name, age=20):
    print(f"이름: {name}, 나이: {age}")
introduce("영희")  # 출력: 이름: 영희, 나이: 20
introduce("민수", 25)  # 출력: 이름: 민수, 나이: 25

2-5. 키워드 인자

  • 매개변수 이름을 명시적으로 지정하여 전달.
def describe_pet(animal, name):
    print(f"종: {animal}, 이름: {name}")
describe_pet(name="코코", animal="강아지")  # 출력: 종: 강아지, 이름: 코코

2-6. 가변 인자 (*args)

  • 여러 개의 값을 전달할 수 있음.
def sum_numbers(*numbers):
    return sum(numbers)
print(sum_numbers(1, 2, 3, 4, 5))  # 출력: 15

2-7. 지역변수와 전역변수

  • 지역변수: 함수 내부에서만 사용되는 변수.
  • 전역변수: 함수 바깥에서 선언된 변수로 함수 내부에서도 접근 가능.
global_var = "전역변수"

def example():
    local_var = "지역변수"
    print(global_var)  # 출력: 전역변수
    print(local_var)  # 출력: 지역변수

example()
print(global_var)  # 출력: 전역변수
# print(local_var)  # 오류 발생 (지역변수는 함수 밖에서 사용 불가)
message = "전역 변수입니다."  # 전역 변수

def example():
    message = "지역 변수입니다."  # 지역 변수 (함수 내부에서 새롭게 정의)
    print("함수 내부:", message)  # 출력: 함수 내부: 지역 변수입니다.

example()
print("함수 외부:", message)  # 출력: 함수 외부: 전역 변수입니다.
  • 설명

    • message라는 변수가 함수 바깥과 안에서 각각 정의됨.
    • 함수 내부에서 message = "지역 변수입니다."라고 하면, 이 변수는 함수 안에서만 존재하는 지역 변수가 됨.
    • example()을 호출하면 지역 변수가 사용되고, 함수 호출이 끝난 후에는 여전히 전역 변수 message가 유지됨.
  • global 키워드 사용

    함수 내부에서도 전역 변수 값을 변경할 수 있음.

count = 0

def increase():
    global count  # 전역 변수 수정
    count += 1
    print(count)

increase()  # 출력: 1
increase()  # 출력: 2

0개의 댓글