[혼공학습단 13기] 4주차 과제

양승빈·2025년 2월 9일
0

혼공학습단 13기

목록 보기
6/9

■ 끝내주게 숨쉬기
■ 간지나게 자기
■ 작살나게 밥먹기
■ 간드러지게 과제하기 (24시간 같은 48시간)


4주차 과제

  • 기본 과제: p.287[직접 해보는 손코딩: 범위 내부의 정수를 모두 더하는 함수] 실행 후 코드가 입력된 화면 및 실행 결과 화면 캡처하기
  • 추가 과제: 매개변수, 기본 매개변수, 가변 매개변수에 대해 정리하기

기본 과제

  1. 범수 내부의 정수를 모두 더하는 함수
  • (코드)
# (p.287)  범위 내부의 정수를 모두 더하는 함수
def sum_all(start, end): # 함수 선언 
    output = 0 # 변수 선언
    for i in range(start, end + 1): # 반복문 
        output += i 
    return output # 반환

# 함수 호출
print("0 to 100:", sum_all(0, 100))
print("0 to 100:", sum_all(0, 1000))
print("0 to 100:", sum_all(50, 100))
print("0 to 100:", sum_all(500, 1000))
  • (작성코드)

  • (구조)

  • (특이사항) 'sum_all' 함수 안에서 반복문이 돌아가는 구조. 매개변수에 해당하는 start와 end의 값을 지정해주면 해당 값이 함수 내부에서 작용하는 구조. (반복문이 계속 돌아가게 되...)

추가과제

■ 멋지게 과제 미루기 (대성공)

1. 함수 기본

  • (정의) 코드의 집합
  • (구조)
def 함수명(매개변수):
	변수 = 초깃값
    
    code 
    
    return 변수 
  • (예시)
# (p 275) 기본적인 함수
def put_off(): # 과제 미루기 함수 
    print('>>> 끝내주게 숨쉬기')
    print('>>> 간지나게 자기')
    print('>>> 작살나게 밥먹기')

put_off()
>>> 끝내주게 숨쉬기
>>> 간지나게 자기
>>> 작살나게 밥먹기

2. 매개 변수

  • (정의) 함수 내부에 전달되는 변수
  • (구조)
def 함수명(매개변수, 매개변수, ...)
	code 
  • (예시)
# (p 276) 매개변수 기본
def print_n_times(value, n):
    for i in range(n):
        print(value)

print_n_times('과제 미루는 법', 1)
put_off()
과제 미루는 법
>>> 끝내주게 숨쉬기
>>> 간지나게 자기
>>> 작살나게 밥먹기
  • (주의사항) 지정한 매개변수보다 입력하는 매개변수를 적거나 많게 입력하면 Type Error 발생
# 정해진 매개변수보다 적게 입력했을 때
def put_off(value, n): # 매개변수 2개
    for i in range(n):
        print(value)

put_off('과제 미루는 법') # 매개변수 n에 할당되는 자료가 없음 > Type Error
# 정해진 매개변수보다 많게 입력했을 때
def put_off(value, n):
    for i in range(n):
        print(value)

put_off('과제 미루는 법', '그딴 건 없다', 2) # 정해진 매개변수보다 할당하고자 하는 자료가 많음 > Type Error

3. 가변 매개변수

  • (정의) 매개변수를 원하는 만큼 받을 수 있도록 지원하는 함수의 형태
  • (구조)
def 함수명(매개변수, 매개변수, *가변 매개변수):
	code
  • (예시)
# (p 278) 가변 매개변수 함수
def put_off(n, *values): # 가변 매개변수 지정
    for i in range(n):
        for value in values:
            print(value)
        print()

put_off(2, '과제 미루는 법', '끝내주게 숨쉬기, 간지나게 자기, 작살나게 밥먹기') # 별도의 할당 없이 매개변수 할당 값 설정 
과제 미루는 법
끝내주게 숨쉬기, 간지나게 자기, 작살나게 밥먹기

과제 미루는 법
끝내주게 숨쉬기, 간지나게 자기, 작살나게 밥먹기

4. 기본 매개변수

  • (정의) 매개변수를 입력하지 않은 경우 매개변수에 들어가는 기본 값
  • (예시)
def put_off(value, n=2):
    for i in range(n):
        print(value)

put_off('과제 미루는 법이 궁금해?') # 기본 매개변수(n=2)
과제 미루는 법이 궁금해?
과제 미루는 법이 궁금해?

5. 키워드 매개변수

  • (정의) 매개변수의 이름을 지정해서 입력하는 매개변수
  • (특징)
    - 기본적으로 가변 매개변수는 기본 매개변수보다 앞에 위치함.
    - 키워드 매개변수는 이러한 원리가 적용된 기법임.
    - 입력 순서를 지키거나 일부 변수만 값을 적용하지 않아도 키워드 매개변수에 넣을 값을 작성한다면 문제 없음
  • (예시 1: 기본 형태)
# (p 283) 키워드 매개변수
def put_off(*values, n=2):
    for i in range(n):
        for value in values:
            print(value)
        print()

put_off('과제 미루는 법', '끝내주게 숨쉬기, 간지나게 자기, 작살나게 밥먹기', n=1) # 키워드 매개변수(n=1)
과제 미루는 법
끝내주게 숨쉬기, 간지나게 자기, 작살나게 밥먹기
  • (예시 2: 호출 형태 변형)
# (p 283) 여러 가지 함수 호출 형태
def test(a, b=10, c=100):
    print(a+b+c)

test(10, 20, 30) # 매개변수 미 지정, 변수 개수 충족
test(a=10, b=200, c=300) # 매개변수 지정, 변수 개수 충족
test(c=300, b=20, a=10) # 매개변수 순서 지정, 변수 개수 충족
test(10, c=30) # 매개변수 지정, 변수 개수 미 충족(헤당 경우는 b가 기본 매개변수로 지정되어 있어 실행에 문제가 되지 않음) 
60
510
330
50
  • (특이사항)
구조변수 지정순서 지정개수 충족
test(10, 20, 30)XOO
test(a=10, b=200, c=300)OOO
test(c=300, b=20, a=10)OXO
test(10, c=30)--X

  • 6. Retrun
  • (정의) 함수 산출 값을 반환하는 기능
  • (예시 1)
# (p 285) 자료 없이 리턴하기
def return_test():
    print('A 위치')
    return # return_test def는 해당 명령어에서 실행이 종료됨 
    print('B 위치')

return_test()
A 위치
  • (예시 2)
# (p 288) 기본 매개변수와 키워드 매개변수를 활용해 범위의 정수를 더하는 함수
def sum_all(start=0, end=100, step=1):
    output=0
    for i in range(start, end+1, step):
        output += i
    return output # for 최종 결과 반환

print('A:', sum_all(0, 100, 10))
print('B:', sum_all(end=100))
print('C:', sum_all(end=100, step=2))
A: 550
B: 5050
C: 2550
  • (예시 3)
# (p 291) 확인문제 2
# mul def 내 구조를 설계하여 전달된 값을 모두 리턴하는 가변 매개변수 함수를 만들 것
def mul(*values):
    output = 1 # 곱셈/나눗셈을 하는 경우 초기 값은 0을 가지면 안 됨 
    for i in values:
        output *= i
    return output # for 최종 결과 반환

print(mul(5, 7, 9, 10))
3150

실행자료: https://colab.research.google.com/drive/1ep0FIpTztQCU_7R1ajCgrUYZ48n1Zi-w?usp=sharing

0개의 댓글

관련 채용 정보