Python_ 함수 연습

12907 단어 practicepypractice
📝 다음 예제들의 출처는 파이썬 코딩도장입니다. 📝

몫과 나머지를 구하는 함수

😎 다음 소스 코드를 완성하여 x를 y로 나누었을 때의 몫과 나머지가 출력되게 만드세요.

x = 10
y = 3
 
 _______________________________________________                                
 _______________________________________________                                
 
quotient, remainder = get_quotient_remainder(x, y)
print('몫: {0}, 나머지: {1}'.format(quotient, remainder))

✅ answer

x = 10
y = 3
def get_quotient_remainder(a, b):
    return a // b, a % b
quotient, remainder = get_quotient_remainder(x, y)
print('몫: {0}, 나머지: {1}'.format(quotient, remainder))

📗 explanation

get_quotient_remainder 함수에 x와 y를 넣어서 몫과 나머지를 구하고 있습니다. 먼저 get_quotient_remainder 함수는 값을 두 개 받으므로 def get_quotient_remainder(a, b):와 같이 만들어줍니다. 그리고 함수 안에서 return으로 a를 b로 나누었을 때 몫과 나머지를 반환해주면 됩니다.

여기서 몫은 정수로 나와야 하므로 버림 나눗셈 연산자 //을 사용하고, 나머지는 나머지 연산자 %를 사용해야 합니다. 또는, int(a / b)와 같이 나눗셈 연산자 /를 사용한 뒤에 int로 변환해도 됩니다. 특히 return으로 값을 두 개 반환해야 하므로 각 반환값은 콤마로 구분해줍니다.

사칙 연산 함수

😎 표준 입력으로 숫자 두 개가 입력됩니다. 다음 소스 코드를 완성하여 두 숫자의 덧셈, 뺄셈, 곱셈, 나눗셈의 결과가 출력되게 만드세요. 이때 나눗셈의 결과는 실수여야 합니다.

✅ answer

x, y = map(int, input().split())

def calc(a,b):
	return a+b, a-b, a*b, a/b

a, s, m, d = calc(x, y)
print('덧셈: {0}, 뺄셈: {1}, 곱셈: {2}, 나눗셈: {3}'.format(a, s, m, d))

calc 함수에 x와 y를 넣어서 두 수의 덧셈, 뺄셈, 곱셈, 나눗셈을 구하고 있습니다. 먼저 calc 함수는 값을 두 개를 받으므로 def calc(a, b):와 같이 만들어준다.

함수 안에서 return으로 a를 b로 더한 값, a에서 b를 뺀 값, a와 b를 곱한 값, a에서 b를 나눈 값을 반환한다.

여기서 나눗셈의 결과는 실수가 나와야 하므로 나눗셈 연산자 /를 사용해야 합니다. 특히 return으로 값을 네 개 반환해야 하므로 각 반환값은 콤마로 구분해준다.

가장 높은 점수를 구하는 함수

✅ answer

korean, english, mathematics, science = 100, 86, 81, 91

def get_max_score(*args):
    return max(args)

max_score = get_max_score(korean, english, mathematics, science)
print('높은 점수:', max_score)
max_score = get_max_score(english, science)
print('높은 점수:', max_score)

📗 explanation

get_max_score 함수는 호출할 때마다 인수의 개수가 달라지고 있으므로 가변 인수 함수로 만들어야 한다. 특히 get_max_score(korean, english, mathematics, science)처럼 인수를 위치 인수로 넣고 있으므로 def get_max_score(*args):로 작성한다.

함수 안에서는 max를 사용해서 args에서 가장 큰 수를 구한 뒤 return으로 반환한다.

가장 낮은 점수, 높은 점수와 평균 점수를 구하는 함수

😎 표준 입력으로 국어, 영어, 수학, 과학 점수가 입력됩니다. 다음 소스 코드를 완성하여 가장 높은 점수, 가장 낮은 점수, 평균 점수가 출력되게 만드세요. 평균 점수는 실수로 출력되어야 합니다.

✅ answer

korean, english, mathematics, science = map(int, input().split())

def get_min_max_score(*scrs):
	return min(*scrs), max(*scrs)
def get_average(**kyscrs):
	return sum(kyscrs.values())/len(kyscrs)


min_score, max_score = get_min_max_score(korean, english, mathematics, science)
average_score = get_average(korean=korean, english=english,
                            mathematics=mathematics, science=science)
print('낮은 점수: {0:.2f}, 높은 점수: {1:.2f}, 평균 점수: {2:.2f}'
      .format(min_score, max_score, average_score))
 
min_score, max_score = get_min_max_score(english, science)
average_score = get_average(english=english, science=science)
print('낮은 점수: {0:.2f}, 높은 점수: {1:.2f}, 평균 점수: {2:.2f}'
      .format(min_score, max_score, average_score))

📗 explanation

get_min_max_score 함수를 사용해서 가장 낮은 점수와 가장 높은 점수를 구하고, get_average 함수를 평균 점수를 구하고 있습니다. 따라서 함수를 두 개 만들어야 합니다. 또한, 함수를 호출할 때마다 인수의 개수가 달라지고 있으므로 가변 인수 함수로 만들어야 합니다.

먼저 get_min_max_score 함수는 get_min_max_score(korean, english, mathematics, science)처럼 인수를 위치 인수로 넣고 있으므로 def get_min_max_score(*args):와 같이 만들어줍니다. 함수 안에서는 min을 사용해서 args에서 가장 작은 수를 구하고, max를 사용해서 args에서 가장 큰 수를 구한 뒤 return으로 반환하면 됩니다. 특히 return으로 반환값을 여러 개 반환할 때는 각 반환값을 콤마로 구분해줍니다.

get_average 함수는 get_average(korean=korean, english=english, mathematics=mathematics, science=science)처럼 인수를 키워드 인수로 넣고 있으므로 def get_average(**kwargs):와 같이 만들어줍니다. 함수 안에서는 평균을 구해야 하는데 먼저 sum(kwargs.values())처럼 values로 딕셔너리의 값만 가져온 뒤 sum으로 합계를 구합니다. 그리고 합계를 키의 개수로 나눠준 뒤 return으로 반환하면 됩니다(평균 점수는 실수로 출력되어야 하므로 나눗셈 연산자 /를 사용해야 합니다). 키의 개수는 len(kwargs)처럼 len으로 구할 수 있습니다.

좋은 웹페이지 즐겨찾기