QCQA_1기

TIL_2W3D_데이터 분석 파이썬 종합반 4주차(함수)

story3395 2024. 12. 26. 13:57

[함수]

: 함수는 입력을 받아 원하는 처리를 한 후 출력을 내보내는 일련의 작업을 수행하는 코드 블록/ 프로그램 내에서 특정한 기능을 수행하기 위해 코드를 논리적으로 그룹화하여 재사용 가능한 형태로 정의

 

def 함수이름(매개변수1, 매개변수2, ...):
    # 함수 내부에서 수행할 작업
    return 결과값  # (선택적) 함수의 결과를 반환

 

  • def 를 이용하여 함수를 정의
  • 함수 이름 뒤 소괄호 안에 매개변수(입력 값)를 정의
  • 함수 내부에서 필요한 작업을 수행한 후, return을 사용하여 결과값을 반환
  • 함수를 호출할 때는 함수 이름을 적고, 소괄호 안에 인수(함수에 전달할 값)을 넣어 호출

예시)

# 함수 정의
def greet(name):
    message = "Hello, " + name + "!"
    return message

# 함수 호출
greeting = greet("Alice")
print(greeting)  # 출력: Hello, Alice!

 

-> 즉, def를 이용하여 함수를 만들고, 원하는 입력 값을 만들어진 함수에 넣어 결과값을 출력할 수 있다!

 

def , return을 이용한 예시

 

 

[함수] - 전역변수/지역변수

전역변수(Global Variables)

: 전역변수는 프로그램 전체에서 접근 가능한 변수로, 어디서든지 사용 가능

  • 프로그램이 시작될 때 생성, 프로그램 종료될 때까지 메모리에 유지
  • 프로그램의 어디서든지 접근 가능, 여러 함수에서 공통적으로 사용되는 값을 저장할 때 유용
  • 너무 많은 전역변수를 사용하면 코드의 가독성이 떨어지고 디버깅이 어려움

지역변수(Local Variables)

: 지역변수는 특정한 범위(예시: 함수 내부)에서만 접근 가능한 변수로, 해당 범위를 벗어나면 사용할 수 없음

  • 해당범위에서 생성, 범위를 벗어나면 메모리에서 사라짐
  • 함수 내에서 정의된 변수는 해당 함수 내에서만 사용 가능한 지역 변수
  • 함수 내에서만 사용되므로, 해당 함수에서만 유효
  • 함수가 실행될 때 생성, 함수가 종료되면 메모리에서 제거 -> 메모리 관리에 효율적

예시)

# 전역변수 예시
global_var = 10

def global_example():
    print("전역변수 접근:", global_var)

global_example()  # 출력: 전역변수 접근: 10

# 지역변수 예시
def local_example():
    local_var = 20
    print("지역변수 접근:", local_var)

local_example()  # 출력: 지역변수 접근: 20

 

 

[인수]

* 매개변수는 함수가 받아들이는 값을 지정하는 변수, 인수는 함수를 호출할 때 함수에 전달되는 값!!! (헷갈리지 말기)

def greet(name):  # 여기서 'name'은 매개변수
    print("Hello, " + name + "!")
    
# 함수 호출할 때 전달되는 값이 인수(argument)
greet("Alice")  # 함수 호출 시 "Alice"는 greet 함수의 매개변수 'name'에 전달됩니다.

 

위치 인수(Positional argument)

: 함수 정의에서 매개변수의 위치에 따라 전달되는 인수

키워드 인수(keyword argument)

: 함수 호출 시, 인수를 순서대로 전달하는 대신에 특정 매개변수에 값을 할당하여 전달

 

def greet(name, age):
    print("안녕하세요", name, "님! 나이는 ", age, "세입니다.")

위치 전달인자 사용
greet("철수", 30)  # 출력: 안녕하세요, 철수님! 나이는 30세입니다.

 

def greet(name, age):
    print("이름:", name)
    print("나이:", age)

키워드 인수를 사용하여 함수 호출
greet(name="Alice", age=30)

 

[데이터 함수]

def stadardization(data):
    # 데이터 표준화 함수
    scaled_data = (data - data.mean()) / data.std()
    return scaled_data

def impute_missing_values(data):
    # 결측치 처리 함수
    filled_data = data.fillna(data.mean())
    return filled_data

def nomalization(data):
    # 데이터 정규화 함수
    scaled_data = (data - data.min()) / (data.max() - data.min())
    return scaled_data

 

import matplotlib.pyplot as plt

def plot_histogram(data):
    # 히스토그램을 그리는 함수
    plt.hist(data, bins=20)
    plt.xlabel('Value')
    plt.ylabel('Frequency')
    plt.title('Histogram of Data')
    plt.show()

def plot_scatter(x, y):
    # 산점도를 그리는 함수
    plt.scatter(x, y)
    plt.xlabel('X')
    plt.ylabel('Y')
    plt.title('Scatter Plot')
    plt.show()

 

import numpy as np

def calculate_mean(data):
    # 평균을 계산하는 함수
    return np.mean(data)

def calculate_std(data):
    # 표준편차를 계산하는 함수
    return np.std(data)

def calculate_correlation(x, y):
    # 상관 관계를 계산하는 함수
    return np.corrcoef(x, y)

 

 

[Quiz]

1. 주어진 데이터셋의 평균을 계산하는 함수를 작성하고 함수의 결과를 출력해 보세요!

# 데이터는 이것을 사용하세요
data = [2, 4, 6, 8, 10]

 

답: