파이썬을 제외한 다른 프로그래밍 언어에서는 함수가 항상 하나의 값만을 반환해야 합니다.
따라서 여러 개의 값을 반환하는 것이 필요한 함수는 다른 방법을 생각해야 했습니다.
파이썬에서는 함수가 하나 이상의 값도 반환할 수 있습니다.
def sub():
return 1, 2, 3
a, b, c = sub()
print(a, b, c)
<실행 결과>
1 2 3
위의 코드를 보면 sub() 함수는 (1, 2, 3)을 반환합니다. 즉 3개의 정수를 반환하고 있는 것입니다.
반환된 3개의 정수(1, 2, 3)는 문장 a, b, c = sub() 에서 변수 a, b, c로 저장됩니다. 마지막 문장에서 a, b, c를 출력해보면 1 2 3 이 출력되는 것을 확인할 수 있습니다.
파이썬에서는 어떻게 여러 개의 값을 동시에 반환할 수 있을까요? return 1, 2, 3은 return (1, 2, 3) 과 같습니다.
즉 1, 2, 3은 변하지 않는 리스트인 튜플 (1, 2, 3)과 마찬가지입니다. 즉 튜플 1개가 반환되고 이 튜플을 받아 변수 a, b, c에 값을 풀어 저장하는 방식입니다.
1. 봉민이는 두 점을 지나는 직선의 기울기와 y절편을 반환하는 함수를 작성해보고 싶어졌습니다.
두 점 (1, 1), (4, 12) 를 지나는 직선을 위에서 작성한 함수를 통해 기울기와 y절편을 구해봅시다.
<실행 결과>
x1 = 1
y1 = 1
x2 = 4
y2 = 10
기울기 = 3, y절편 = -2
2. 사용자로부터 3개의 정수를 받아 크기가 작은 순으로 반환하는 함수를 작성하고 테스트 해봅시다.
<실행 결과>
정수 3개를 입력하세요 : 30 10 20
작은 순서대로 출력한 결과 : 10 20 30