ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 50 - 함수, 매개변수 기본
    study with Q - 파이썬 2024. 6. 2. 18:15

    # 외워...!

     

    ~기본적인 함수~

    def p_3_ts():
      print("hey")
      print("hey")
      print("hey")
    
    # 그리고 함수를 호출(call)하면
    p_3_ts()
    >>>
    hey
    hey
    hey

     

    # 파이썬에서 매개변수 

    : 함수의 괄호 안에 넣는 변수

     

    def f_str(str):
      print(str)
      print(str)
      print(str)
    
    f_str("seven")
    >>>
    seven
    seven
    seven

     

    # parameter(매개변수) : 함수 정의 때 넣은 변수 (위에서 str)

    # argument(인수) : 함수 호출 때 넣은 값 (위에서 seven)

     

    # 문자열과 횟수도 넣을 수 있어요

    # parameter
    def prt(str, times):
      for i in range(times) :
        print(str)
    
    # argument
    prt("독도는 한국 땅",5)
    >>>
    독도는 한국 땅
    독도는 한국 땅
    독도는 한국 땅
    독도는 한국 땅
    독도는 한국 땅

     

    # 매개변수와 관련된 오류

    : (1) #함수를 만들 때 넣은 매개변수 != #함수를 호출할 때 넣은 매개변수 수

     

    1-1) #parameter > #argument

    → TypeError: prt() missing 1 required positional argument: 'times'

     

    1-2) #parameter < #argument

    → TypeError: prt() takes 2 positional arguments but 3 were given

     

    : (2) 적합하지 않은 자료형을 넣었을 때

     

    1-2) 횟수에 문자열을 넣으면

    → range 부분에서 오류 발생

    # parameter
    def prt(str, times):
      for i in range(times) :
        print(str)
    
    # argument
    prt("독도는 한국 땅","3")
    >>>
    TypeError: 'str' object cannot be interpreted as an integer

     

    함수를 설계하는 사람과 사용하는 사람이 다른 경우가 많으므로...

    # 함수 설계시에는

    : (1) 함수의 설명서 aka 문서(documentation)을 잘 작성해두어야 하고

    : (2) 예외처리를 해두는 것이 좋다 (방어 코드 같은 건가)

    # 예외처리 코드를 심으면 이렇습니다요
    def prt(stri, tms):
      if type(stri) != str:
        print("첫 번째 매개변수는 문자열로 입력하세요.")
    
      if type(tms) != int :
        print("두 번째 매개변수는 정수로 입력하세요.")
          
      for i in range(tms) :
        print(stri)
    
    
    prt("문자열","3")
    >>>
    두 번째 매개변수는 정수로 입력하세요.
    Traceback (most recent call last):
      File "/home/runner/function/main.py", line 41, in <module>
        prt("문자열","3")
      File "/home/runner/function/main.py", line 37, in prt
        for i in range(tms) :
    TypeError: 'str' object cannot be interpreted as an integer

     

     


    https://replit.com/@wh3308/function#main.py

Designed by Tistory.