# 함수 def — 코드 덩어리에 이름 붙여 두고 불러 쓰기

def 인사(이름):
    print("안녕하세요,", 이름, "님")

인사("김서연")
인사("이준호")

# return 은 값을 돌려주고, print 는 보여주기만 합니다. 이게 제일 헷갈립니다.
def 더하기_보여주기(a, b):
    print(a + b)           # 화면에 보여줄 뿐

def 더하기(a, b):
    return a + b           # 값을 넘겨줍니다

결과1 = 더하기_보여주기(3, 4)   # 화면엔 7 이 뜨지만
print("돌려받은 값:", 결과1)     # None  ← return 이 없어서
결과2 = 더하기(3, 4)
print("돌려받은 값:", 결과2)     # 7     ← 다른 계산에 쓸 수 있습니다
print("두 배:", 더하기(3, 4) * 2)

# 기본값을 주면 부를 때 생략할 수 있습니다
def 할인가(정가, 할인율=0.1):
    return int(정가 * (1 - 할인율))

print(할인가(20000))         # 18000  (기본 10%)
print(할인가(20000, 0.3))    # 14000

# return 을 만나면 함수는 그 자리에서 끝납니다
def 학점(점수):
    if 점수 >= 90:
        return "A"           # 여기서 끝. 아래는 안 봅니다.
    if 점수 >= 80:
        return "B"
    return "F"

print(학점(95), 학점(85), 학점(20))

# 값을 두 개 이상 돌려주기
def 통계(목록):
    return sum(목록), sum(목록) / len(목록)

합, 평균 = 통계([90, 80, 70])
print("합:", 합, "/ 평균:", 평균)

# 함수 안에서 만든 변수는 밖에서 안 보입니다
def 시험():
    안쪽값 = 123
    return 안쪽값

print(시험())
# print(안쪽값)   ← 이 줄의 주석을 풀면 NameError 가 납니다
