파이리너로정했다
10
2021-05-04 22:23:59 작성 2021-05-04 22:24:42 수정됨
3
91

파이썬 None 출력 문제


안녕하세요.

VScode 사용중이며 파이썬 버전은 3.9.4 입니다.

아래와 같은 코드를 돌리면 person1, person2 가 빨간 줄이 그어지고  아래와 같은 메세지가 뜹니다.

"assighning function call, where the function has no return"

구글링해보니 그냥 pylint? 경고라고 무시해도 된다고하는데. 출력하면 None이라는 의도하지 않은 결과가 함께 출력됩니다. people() 함수는 수정하지 않고 문제를 해결할 수 있는 방법이 있을까요?


def introduce(agesex):
    if sex == "남자":
        print(f"안녕. 나이는 {age}이고 {sex}야.")
    elif sex == "여자":
        print(f"안녕. 나이는 {age}이고 {sex}야.")

def people():
  person1 = introduce(30'남자')
  person2 = introduce(30'여자')
  print(person1)
  print(person2)

people()


출력 결과 :

안녕. 나이는 30이고 남자야.

안녕. 나이는 30이고 여자야.

None

None

0
  • 답변 3

  • cathei
    308
    2021-05-04 23:16:38

    리턴값이 없는 함수를 호출하고 person1, person2 에 할당했는데요

    의도는 모르겠지만 introduce에 리턴값을 부여해주시면 되겠죠.

  • 하루히즘
    344
    2021-05-05 00:00:38

    다른 언어였다면 리턴값이 없는 void 함수의 결과값을 변수에 할당하려는 것이기 때문에 문제가 발생하겠지만 파이썬은 기본적으로 None을 반환하기 때문에 문법상으로는 문제가 없습니다.

    아마 의도하신 부분은 함수에서 문자열을 반환해야 하는게 아닐까 생각됩니다. print 함수는 콘솔 출력 용도라서요.

  • 파이리너로정했다
    10
    2021-05-05 00:06:57

    와 선생님 감사합니다. introduce에서 print가 아니라 return을써서 return값을 주도록하니 해결됬네요! 이걸 몰라서 한참 헤맸네요ㅠㅠ

  • 로그인을 하시면 답변을 등록할 수 있습니다.