파이썬 인수

2021. 8. 22. 14:44·Python/Syntax
목차
  1. 가변 인수
  2. 인수의 기본값
  3. 키워드 인수
  4. 키워드 가변 인수

인수

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

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


가변 인수

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

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

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

  • 예시

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

      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
      '''
저작자표시 (새창열림)

'Python > Syntax' 카테고리의 다른 글

파이썬 반복문  (0) 2021.08.22
파이썬 조건문  (0) 2021.08.22
파이썬 연산자  (0) 2021.08.22
파이썬 변수  (0) 2021.08.22
파이썬 문자열  (0) 2021.08.22
  1. 가변 인수
  2. 인수의 기본값
  3. 키워드 인수
  4. 키워드 가변 인수
'Python/Syntax' 카테고리의 다른 글
  • 파이썬 조건문
  • 파이썬 연산자
  • 파이썬 변수
  • 파이썬 문자열
Caniro
Caniro
  • Caniro
    Minimalism
    Caniro
  • 전체
    오늘
    어제
    • 분류 전체보기 (317)
      • Algorithm (13)
        • 알기 쉬운 알고리즘 (10)
        • Search (1)
        • Sort (2)
      • Arduino (0)
      • C++ (185)
        • Class (46)
        • Exception (6)
        • Library (51)
        • Overloading (10)
        • SmartPointer (5)
        • Syntax (33)
        • TBC++ (23)
        • Templates (9)
        • VisualStudio (2)
      • Embedded (1)
      • Git (4)
      • Java (5)
      • Linux (16)
        • Error (1)
        • Linux Structure (11)
      • MacOS (7)
      • OS (1)
        • Concurrency (1)
      • Python (21)
        • Class (1)
        • Function (2)
        • Syntax (17)
      • Raspberrypi (9)
      • Review (1)
      • Utility (12)
        • VSCode (5)
        • VirtualBox (3)
      • Web (8)
        • Nginx (1)
        • React (3)
        • Django (1)
      • Windows (20)
        • Registry (3)
        • WSL (1)
        • DeviceDriver (6)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

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

  • 최근 글

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

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.