파이썬 인수

2021. 8. 22. 14:44·SW개발/Python
반응형

인수

  • 함수로 값을 전달했을 때 이를 저장하는 변수

  • 함수 내부에서 사용한다.


가변 인수

  • 인수의 수가 고정되지 않고 호출 시 원하는 만큼 인수를 지정할 수 있다.

    • 튜플로 받아서 처리한다.
  • 일반 인수보다 뒤에 위치해야 한다.

  • 함수 당 하나만 사용할 수 있다.

  • 예시

    • 인수명 앞에 * 를 붙여서 가변 인수임을 표시한다.

      def intsum(*ints):
          total = 0
          for num in ints:
              total += num
          return total
      print(intsum(1, 2, 3)) # ints = (1, 2, 3)
      print(intsum(5, 7, 9, 11, 13)) # ints = (5, 7, 9, 11, 13)
      print(intsum(8, 9, 6, 2, 9, 7, 5, 8))
      
      ''' stdout
      6
      45
      54
      '''
    • 아래의 scores 리스트를 인자로 넣을 경우 intsum(*scores) 처럼 * 를 붙이면 리스트가 펼쳐진다.

      def intsum(*ints):
          print(type(ints))
          print(ints)
      
          total = 0
          for num in ints:
              total += num
          return total
      
      scores = [20, 30, 40]
      # print(intsum(scores)) # 에러
      print(intsum(*scores)) # 펼침 : [20, 30, 40] -> 20, 30, 40
      print(*scores)
      
      ''' stdout
      <class 'tuple'>
      (20, 30, 40)
      90
      20 30 40
      '''

인수의 기본값

  • 함수 호출 시 인수가 지정되지 않았을 때 사용할 기본값이다.

  • 함수 정의 시 인수에 값을 대입하면 된다.

  • 인수에 값을 지정할 때는 띄어쓰기를 안하는게 암묵적 룰인 것 같다.

    def calcstep(begin, end=1, step=1):
        total = 0
        for num in range(begin, end + 1, step):
            total += num
        return total
    print(f"1 ~ 10 = {calcstep(1, 10, 2)}")
    print(f"1 ~ 100 = {calcstep(1, 100)}")
    print(f"-10 ~ 1 = {calcstep(-10)}")
    
    ''' stdout
    1 ~ 10 = 25
    1 ~ 100 = 5050
    -10 ~ 1 = -54
    '''

키워드 인수

  • 인수 명칭으로 변수를 매칭할 수 있다.

    def calcstep(begin, end, step):
        total = 0
        for num in range(begin, end + 1, step):
            total += num
        return total
    
    print(f"3 ~ 5 = {calcstep(3, 5, 1)}")
    print(f"3 ~ 5 = {calcstep(begin=3, end=5, step=1)}")
    print(f"3 ~ 5 = {calcstep(step=1, end=5, begin=3)}")
    print(f"3 ~ 5 = {calcstep(3, 5, step=1)}")
    print(f"3 ~ 5 = {calcstep(3, step=1, end=5)}")
    # print(f"3 ~ 5 = {calcstep(3, step=1, 5)}") # 에러
    
    ''' stdout
    3 ~ 5 = 12
    3 ~ 5 = 12
    3 ~ 5 = 12
    3 ~ 5 = 12
    3 ~ 5 = 12
    '''

키워드 가변 인수

  • 키워드 인수를 가변 개수로 전달할 때 사용한다.

  • 함수 정의 시 ** 기호를 인수 앞에 붙인다.

    • 사전(Dictionary)으로 받아서 처리한다.

      def calcstep(**args):
          print(type(args))
          print(args)
      
          begin = args.get('begin', 0)
          end = args['end']
          step = args['step']
          total = 0
          for num in range(begin, end + 1, step):
              total += num
          return total
      
      print("3 ~ 5 =", calcstep(begin=3, end=5, step=1), end='\n\n')
      print("3 ~ 5 =", calcstep(step=1, end=5, begin=3), end='\n\n')
      print(" ~ 5 =", calcstep(step=1, end=5))
      
      ''' stdout
      <class 'dict'>
      {'begin': 3, 'end': 5, 'step': 1}
      3 ~ 5 = 12
      
      <class 'dict'>
      {'step': 1, 'end': 5, 'begin': 3}
      3 ~ 5 = 12
      
      <class 'dict'>
      {'step': 1, 'end': 5}
      ~ 5 = 15
      '''
    • 사전도 펼칠 수 있다.

      def calcstep(**args):
          print(type(args))
          print(args)
      
          begin = args.get('begin', 0)
          end = args['end']
          step = args['step']
          total = 0
          for num in range(begin, end + 1, step):
              total += num
          return total
      
      dic = {
          'begin' : 1,
          'end' : 100,
          'step' : 2
      }
      
      # dict의 펼침 : **사전명
      print(calcstep(**dic))
      print(*dic)
      # print(**dic)
      
      ''' stdout
      <class 'dict'>
      {'begin': 1, 'end': 100, 'step': 2}
      2500
      begin end step
      '''
반응형
저작자표시 (새창열림)

'SW개발 > Python' 카테고리의 다른 글

파이썬 변수  (0) 2021.08.22
파이썬 문자열  (0) 2021.08.22
파이썬 입력 함수  (0) 2021.08.22
파이썬 출력 함수  (0) 2021.08.22
멀티캠퍼스 파이썬  (0) 2021.08.22
'SW개발/Python' 카테고리의 다른 글
  • 파이썬 변수
  • 파이썬 문자열
  • 파이썬 입력 함수
  • 파이썬 출력 함수
Caniro
Caniro
  • Caniro
    Minimalism
    Caniro
  • 전체
    오늘
    어제
    • 전체보기 (319)
      • SW개발 (268)
        • Java Spring (6)
        • C++ (186)
        • Python (21)
        • Linux (16)
        • 알고리즘 (13)
        • Git (4)
        • Embedded (1)
        • Raspberrypi (9)
        • React (3)
        • Web (2)
        • Windows Device Driver (6)
      • IT(개발아님) (46)
        • Windows (26)
        • MacOS (7)
        • Utility (11)
      • 챗봇 짬통 (0)
      • 일상 (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    시스템 복구
    제외
    스프링 프레임워크 핵심 기술
    SFC
    mspaint
    SunOS 5.1
    EXCLUDE
    vscode
    윈도우
    spring
    맥북 카카오톡 알림 안뜸
    citrix workspace
    MacOS
    Workspace
    스프링
    KakaoTalk
    logi options
    java
    dism
    windows
    알림
    윈도우 명령어
    Windows 11
    unix
    로지텍 마우스 제스처
    백기선
    Solaris 10
    그림판
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Caniro
파이썬 인수
상단으로

티스토리툴바