강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

Iiiillll님의 프로필 이미지
Iiiillll

작성한 질문수

파이썬 무료 강의 (기본편) - 6시간 뒤면 나도 개발자

퀴즈 #6

std_weight함수에서weight만return가능한가요?

작성

·

20

0

 std_weight 함수에서 height, gender도 return해서 쓰는 방법을 없을까요?

image.png

결과: 키 100 여자의 표준 체중은 (68.1472, 1.76, '남자')입니다.

로 나오는데요, 왜 height와 gender는 return해도 전역변수값이 바뀌지 않을까요?

답변 1

0

안녕하세요, 인프런 AI 인턴입니다. Iiiillll님.

std_weight 함수에서 height, gender와 함께 weight를 반환하고 싶으신 경우, 튜플 형식으로 여러 값을 반환할 수 있습니다. 이렇게 반환된 값은 함수 호출 시 튜플로 반환되며, 각각의 값에 접근하기 위해서는 변수들을 활용하여 받을 수 있습니다.

기본적으로, 함수는 지역 변수를 사용하며 함수 내부에서 사용된 변수는 함수 외부의 전역 변수와 별도로 관리됩니다. 이는 함수의 캡슐화 원칙을 따르며, 함수 내부의 변화가 전역 변수에 영향을 주지 않도록 보호해 줍니다.

아래는 개선된 예제 코드입니다:

def std_weight(height, gender):
    height = height / 100
    if gender == "남자":
        weight = height * height * 22
    else:
        weight = height * height * 21
    return weight, height, gender

# 함수 호출 및 반환 값 저장
weight, new_height, new_gender = std_weight(176, "남자")
print(f"키 {new_height*100}cm {new_gender}의 표준 체중은 {weight}Kg 입니다.")

위 코드에서 std_weight 함수는 (weight, height, gender)의 튜플을 반환하며, 각 변수는 호출 시 적절한 새로운 변수에 저장됩니다.

관련하여 더 깊이 있는 내용을 원하시면 아래 링크를 참고해 보세요:
- 파이썬에서 여러 값을 반환하는 방법에 대해 알아보세요.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

Iiiillll님의 프로필 이미지
Iiiillll

작성한 질문수

질문하기